[dm-devel] [PATCH 00/28] multipath-tools: improve config file handling
Benjamin Marzinski
bmarzins at redhat.com
Mon Jun 18 21:20:46 UTC 2018
On Fri, Jun 08, 2018 at 12:20:13PM +0200, Martin Wilck wrote:
Thanks for cleaning this up.
ACK for the whole series 00-30
-Ben
> This patch series fixes a number of small but important issues in
> the way multipath-tools handle configuration files, in particular the
> handling of multiple "device" and "blacklist" sections matching the
> same device. Besides eliminating inconsistencies, the goal of the series is
> to be able to use "multipath -t" or "multipathd show config" ouput as
> configuration for multipath-tools, and obtain exactly the same results
> as with the original configuration.
>
> Late in the series, two new commands "multipath -T" and "multipath show config
> local" are added, which avoid the lengthyness of the full configuration
> dump and produce output more suitable as a local configuration template.
>
> By far the largest part of the series is a new unit test (hwtable.c) for
> configuration file handling. The commit message of the patch introducing
> this unit test ("tests/hwtable: tests for config file handling and hwentry
> merging") explains the problems / inconsistencies that the series is supposed
> to fix. Tests that fail in the first place are marked with the BROKEN macro.
> While reviewing the 2000 LOC of the new unit test is certainly a pain, I'd
> like to ask reviewers to *pay special attention to the tests marked BROKEN*,
> because that's where follow-up patches will change the behavior of
> multipath-tools in user-noticeable ways. I believe it's for the better, but
> I'd like to make sure we all agree. For the rest of the unit test, reviewers
> might appreciate the fact that tests succeed for the current code, and are
> intended as regeression tests for the follow-up patches.
>
> Patch 01-07 are just simple fixes and, as usual, "const" additions.
> Patch 08-10 introduce the new unit test.
> Patch 11-17 fix some basic problems which need to be fixed for dump/reload.
> Patch 18-24 add the ability for dumping the configuration, using the output
> as new configuration input ("reload"), and testing / comparing the results.
> Patch 23-24 implement "multipathd show config local" and "multipath -T" on these
> grounds.
> Patch 23-27 fix more problems that surfaced in the dump/reload test.
> Patch 28 clarifies the documentation of multipath.conf.
>
> Martin Wilck (28):
> kpartx: no need to use FREE_CONST
> libmultipath: fix memory leak in process_config_dir()
> libmultipath: remove superfluous conditionals in load_config()
> libmultipath/structs.c: constify some functions
> libmultipath: some const usage in hwentry handling
> libmultipath: change prototypes of hwe_regmatch() and find_hwe()
> libmultipath/prio: constify simple getters
> tests/Makefile: autogenerate list of symbols to be wrapped
> tests/test-lib: cmocka helpers to simulate path and map discovery
> tests/hwtable: tests for config file handling and hwentry merging
> libmultipath: add debug messages to hwentry lookup/merging code
> libmultipath: use vector for for pp->hwe and mp->hwe
> libmultipath: allow more than one hwentry
> libmultipath: don't merge hwentries by regex
> libmultipath: merge hwentries inside a conf file
> libmultipath/hwtable: remove inherited props from ONTAP NVMe
> libmultipath: don't merge by regex in setup_default_blist()
> multipath, multipathd: consolidate config dumping
> tests/hwtable: implement configuration dump + reload test
> libmultipath: allow dumping only "local" hwtable in snprint_config
> tests/hwtable: add test for local configuration dump
> libmultipath: allow printing local maps in snprint_config
> multipathd: implement "show config local"
> multipath: implement "multipath -T"
> libmultipath: merge "multipath" config sections by wwid
> libmultipath: implement and use blacklist merging
> libmultipath: escape '"' chars while dumping config
> multipath.conf(5): various corrections and clarifications
>
> kpartx/devmapper.c | 10 +-
> libmultipath/blacklist.c | 125 ++-
> libmultipath/blacklist.h | 2 +
> libmultipath/config.c | 208 +++--
> libmultipath/config.h | 5 +-
> libmultipath/dict.c | 40 +-
> libmultipath/discovery.c | 10 +-
> libmultipath/hwtable.c | 3 -
> libmultipath/print.c | 128 ++-
> libmultipath/print.h | 9 +-
> libmultipath/prio.c | 8 +-
> libmultipath/prio.h | 8 +-
> libmultipath/propsel.c | 53 +-
> libmultipath/structs.c | 26 +-
> libmultipath/structs.h | 24 +-
> libmultipath/structs_vec.c | 19 +
> libmultipath/structs_vec.h | 1 +
> libmultipath/vector.c | 12 +
> libmultipath/vector.h | 1 +
> multipath/main.c | 92 +-
> multipath/multipath.8 | 8 +-
> multipath/multipath.conf.5 | 174 ++--
> multipathd/cli.c | 2 +
> multipathd/cli.h | 2 +
> multipathd/cli_handlers.c | 80 +-
> multipathd/cli_handlers.h | 1 +
> multipathd/main.c | 1 +
> multipathd/multipathd.8 | 5 +
> tests/Makefile | 36 +-
> tests/hwtable.c | 1707 ++++++++++++++++++++++++++++++++++++
> tests/test-lib.c | 359 ++++++++
> tests/test-lib.h | 67 ++
> 32 files changed, 2892 insertions(+), 334 deletions(-)
> create mode 100644 tests/hwtable.c
> create mode 100644 tests/test-lib.c
> create mode 100644 tests/test-lib.h
>
> --
> 2.17.0
More information about the dm-devel
mailing list