mbox series

[v3,0/4] add library to check if device is a valid path

Message ID 1603316366-28735-1-git-send-email-bmarzins@redhat.com (mailing list archive)
Headers show
Series add library to check if device is a valid path | expand

Message

Benjamin Marzinski Oct. 21, 2020, 9:39 p.m. UTC
The main part of the this patchset is the first patch, which adds a
new library interface to check whether devices are valid paths. This
was designed for use in the Storage Instantiation Daemon (SID).

https://github.com/sid-project

The seconds patch adds unit tests for this library. The third patch adds
get_uid fallback code for dasd devices. The fourth patch just changes
the get_uid log level for devices configured with uid_attribute "". This
is because it is currently necessary to configure multipath with

overrides {
        uid_attribute ""
}

to claim multipath devices with SID (instead of using multipath.rules),
since SID doesn't currently get the UID information itself, and it is
called by udev before this information is added to the udev database.

changes from v1 to v2
---------------------
0001: This patch is now rebased on top of, and makes use of Martin's
patches that provide a default *_multipath_config, udev, and logsink.
Because of this, mpathvalid_init() now has a parameter used to set
logsink. There is also a new API function, mpathvalid_reload_config().

0003: This is completely new, since Martin pointed out that adding a new
config option to always use the fallback getuid code was unnecessary. It
just makes a uid_attribute of "" log at normal levels.

changes from v2 to v3
---------------------
0001:   rebased on top of Martin's latest patches, fixed some small bugs
        and added documentation to mpath_valid.h
0002:   New
0004:   was 0003. Untangled the logic, at Martin's suggestion.

Benjamin Marzinski (4):
  multipath: add libmpathvalid library
  multipath-tools tests: and unit tests for libmpathvalid
  libmultipath: add uid failback for dasd devices
  libmultipath: change log level for null uid_attribute

 Makefile                            |   3 +-
 Makefile.inc                        |   1 +
 libmpathvalid/Makefile              |  39 +++
 libmpathvalid/libmpathvalid.version |  10 +
 libmpathvalid/mpath_valid.c         | 202 ++++++++++++
 libmpathvalid/mpath_valid.h         | 155 +++++++++
 libmultipath/defaults.h             |   1 +
 libmultipath/discovery.c            |  45 ++-
 libmultipath/libmultipath.version   |   6 +
 tests/Makefile                      |   5 +-
 tests/mpathvalid.c                  | 467 ++++++++++++++++++++++++++++
 11 files changed, 929 insertions(+), 5 deletions(-)
 create mode 100644 libmpathvalid/Makefile
 create mode 100644 libmpathvalid/libmpathvalid.version
 create mode 100644 libmpathvalid/mpath_valid.c
 create mode 100644 libmpathvalid/mpath_valid.h
 create mode 100644 tests/mpathvalid.c

Comments

Martin Wilck Nov. 1, 2020, 9:33 p.m. UTC | #1
On Wed, 2020-10-21 at 16:39 -0500, Benjamin Marzinski wrote:
> The main part of the this patchset is the first patch, which adds a
> new library interface to check whether devices are valid paths. This
> was designed for use in the Storage Instantiation Daemon (SID).
> 
> https://github.com/sid-project
> 
> The seconds patch adds unit tests for this library. The third patch
> adds
> get_uid fallback code for dasd devices. The fourth patch just changes
> the get_uid log level for devices configured with uid_attribute "".
> This
> is because it is currently necessary to configure multipath with
> 
> overrides {
>         uid_attribute ""
> }
> 
> to claim multipath devices with SID (instead of using
> multipath.rules),
> since SID doesn't currently get the UID information itself, and it is
> called by udev before this information is added to the udev database.
> 
> changes from v1 to v2
> ---------------------
> 0001: This patch is now rebased on top of, and makes use of Martin's
> patches that provide a default *_multipath_config, udev, and logsink.
> Because of this, mpathvalid_init() now has a parameter used to set
> logsink. There is also a new API function,
> mpathvalid_reload_config().
> 
> 0003: This is completely new, since Martin pointed out that adding a
> new
> config option to always use the fallback getuid code was unnecessary.
> It
> just makes a uid_attribute of "" log at normal levels.
> 
> changes from v2 to v3
> ---------------------
> 0001:   rebased on top of Martin's latest patches, fixed some small
> bugs
>         and added documentation to mpath_valid.h
> 0002:   New
> 0004:   was 0003. Untangled the logic, at Martin's suggestion.
> 
> Benjamin Marzinski (4):
>   multipath: add libmpathvalid library
>   multipath-tools tests: and unit tests for libmpathvalid
>   libmultipath: add uid failback for dasd devices
>   libmultipath: change log level for null uid_attribute
> 
>  Makefile                            |   3 +-
>  Makefile.inc                        |   1 +
>  libmpathvalid/Makefile              |  39 +++
>  libmpathvalid/libmpathvalid.version |  10 +
>  libmpathvalid/mpath_valid.c         | 202 ++++++++++++
>  libmpathvalid/mpath_valid.h         | 155 +++++++++
>  libmultipath/defaults.h             |   1 +
>  libmultipath/discovery.c            |  45 ++-
>  libmultipath/libmultipath.version   |   6 +
>  tests/Makefile                      |   5 +-
>  tests/mpathvalid.c                  | 467
> ++++++++++++++++++++++++++++
>  11 files changed, 929 insertions(+), 5 deletions(-)
>  create mode 100644 libmpathvalid/Makefile
>  create mode 100644 libmpathvalid/libmpathvalid.version
>  create mode 100644 libmpathvalid/mpath_valid.c
>  create mode 100644 libmpathvalid/mpath_valid.h
>  create mode 100644 tests/mpathvalid.c

As you probably saw, all acked. However there's a small problem with
the rebase on my recent patches. They aren't all acked yet, and Xose's
report about uclibc made me realize that there are more issues with
uclibc in my series. I don't think this will require major changes,
but e.g. on_exit() is unavailable in uclibc. I'd like to rework those.

Also, I'd wish that Christophe tags a new libmultipath version before
applying the "library version" series and everything thereafter.

Martin
Benjamin Marzinski Nov. 2, 2020, 8:22 p.m. UTC | #2
On Sun, Nov 01, 2020 at 09:33:09PM +0000, Martin Wilck wrote:
> On Wed, 2020-10-21 at 16:39 -0500, Benjamin Marzinski wrote:
> > The main part of the this patchset is the first patch, which adds a
> > new library interface to check whether devices are valid paths. This
> > was designed for use in the Storage Instantiation Daemon (SID).
> > 
> > https://github.com/sid-project
> > 
> > The seconds patch adds unit tests for this library. The third patch
> > adds
> > get_uid fallback code for dasd devices. The fourth patch just changes
> > the get_uid log level for devices configured with uid_attribute "".
> > This
> > is because it is currently necessary to configure multipath with
> > 
> > overrides {
> >         uid_attribute ""
> > }
> > 
> > to claim multipath devices with SID (instead of using
> > multipath.rules),
> > since SID doesn't currently get the UID information itself, and it is
> > called by udev before this information is added to the udev database.
> > 
> > changes from v1 to v2
> > ---------------------
> > 0001: This patch is now rebased on top of, and makes use of Martin's
> > patches that provide a default *_multipath_config, udev, and logsink.
> > Because of this, mpathvalid_init() now has a parameter used to set
> > logsink. There is also a new API function,
> > mpathvalid_reload_config().
> > 
> > 0003: This is completely new, since Martin pointed out that adding a
> > new
> > config option to always use the fallback getuid code was unnecessary.
> > It
> > just makes a uid_attribute of "" log at normal levels.
> > 
> > changes from v2 to v3
> > ---------------------
> > 0001:   rebased on top of Martin's latest patches, fixed some small
> > bugs
> >         and added documentation to mpath_valid.h
> > 0002:   New
> > 0004:   was 0003. Untangled the logic, at Martin's suggestion.
> > 
> > Benjamin Marzinski (4):
> >   multipath: add libmpathvalid library
> >   multipath-tools tests: and unit tests for libmpathvalid
> >   libmultipath: add uid failback for dasd devices
> >   libmultipath: change log level for null uid_attribute
> > 
> >  Makefile                            |   3 +-
> >  Makefile.inc                        |   1 +
> >  libmpathvalid/Makefile              |  39 +++
> >  libmpathvalid/libmpathvalid.version |  10 +
> >  libmpathvalid/mpath_valid.c         | 202 ++++++++++++
> >  libmpathvalid/mpath_valid.h         | 155 +++++++++
> >  libmultipath/defaults.h             |   1 +
> >  libmultipath/discovery.c            |  45 ++-
> >  libmultipath/libmultipath.version   |   6 +
> >  tests/Makefile                      |   5 +-
> >  tests/mpathvalid.c                  | 467
> > ++++++++++++++++++++++++++++
> >  11 files changed, 929 insertions(+), 5 deletions(-)
> >  create mode 100644 libmpathvalid/Makefile
> >  create mode 100644 libmpathvalid/libmpathvalid.version
> >  create mode 100644 libmpathvalid/mpath_valid.c
> >  create mode 100644 libmpathvalid/mpath_valid.h
> >  create mode 100644 tests/mpathvalid.c
> 
> As you probably saw, all acked. However there's a small problem with
> the rebase on my recent patches. They aren't all acked yet, and Xose's
> report about uclibc made me realize that there are more issues with
> uclibc in my series. I don't think this will require major changes,
> but e.g. on_exit() is unavailable in uclibc. I'd like to rework those.
> 
> Also, I'd wish that Christophe tags a new libmultipath version before
> applying the "library version" series and everything thereafter.

I'll rebase it, and I'm fine with this going in after the the version bump.

-Ben

> 
> Martin
> 
> -- 
> Dr. Martin Wilck <mwilck@suse.com>, Tel. +49 (0)911 74053 2107
> SUSE  Software Solutions Germany GmbH
> HRB 36809, AG Nürnberg GF: Felix
> Imendörffer
> 

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Martin Wilck Dec. 16, 2020, 8:52 p.m. UTC | #3
Hi Ben:

On Wed, 2020-10-21 at 16:39 -0500, Benjamin Marzinski wrote:
> The main part of the this patchset is the first patch, which adds a
> new library interface to check whether devices are valid paths. This
> was designed for use in the Storage Instantiation Daemon (SID).
> 
> https://github.com/sid-project
> 
> The seconds patch adds unit tests for this library. The third patch
> adds
> get_uid fallback code for dasd devices. The fourth patch just changes
> the get_uid log level for devices configured with uid_attribute "".
> This
> is because it is currently necessary to configure multipath with
> 
> overrides {
>         uid_attribute ""
> }
> 
> to claim multipath devices with SID (instead of using
> multipath.rules),
> since SID doesn't currently get the UID information itself, and it is
> called by udev before this information is added to the udev database.
> 
> changes from v1 to v2
> ---------------------
> 0001: This patch is now rebased on top of, and makes use of Martin's
> patches that provide a default *_multipath_config, udev, and logsink.
> Because of this, mpathvalid_init() now has a parameter used to set
> logsink. There is also a new API function,
> mpathvalid_reload_config().
> 
> 0003: This is completely new, since Martin pointed out that adding a
> new
> config option to always use the fallback getuid code was unnecessary.
> It
> just makes a uid_attribute of "" log at normal levels.
> 
> changes from v2 to v3
> ---------------------
> 0001:   rebased on top of Martin's latest patches, fixed some small
> bugs
>         and added documentation to mpath_valid.h
> 0002:   New
> 0004:   was 0003. Untangled the logic, at Martin's suggestion.
> 
> Benjamin Marzinski (4):
>   multipath: add libmpathvalid library
>   multipath-tools tests: and unit tests for libmpathvalid
>   libmultipath: add uid failback for dasd devices
>   libmultipath: change log level for null uid_attribute
> 
>  Makefile                            |   3 +-
>  Makefile.inc                        |   1 +
>  libmpathvalid/Makefile              |  39 +++
>  libmpathvalid/libmpathvalid.version |  10 +
>  libmpathvalid/mpath_valid.c         | 202 ++++++++++++
>  libmpathvalid/mpath_valid.h         | 155 +++++++++
>  libmultipath/defaults.h             |   1 +
>  libmultipath/discovery.c            |  45 ++-
>  libmultipath/libmultipath.version   |   6 +
>  tests/Makefile                      |   5 +-
>  tests/mpathvalid.c                  | 467
> ++++++++++++++++++++++++++++
>  11 files changed, 929 insertions(+), 5 deletions(-)
>  create mode 100644 libmpathvalid/Makefile
>  create mode 100644 libmpathvalid/libmpathvalid.version
>  create mode 100644 libmpathvalid/mpath_valid.c
>  create mode 100644 libmpathvalid/mpath_valid.h
>  create mode 100644 tests/mpathvalid.c
> 

For the set:
Reviewed-by: Martin Wilck <mwilck@suse.com>

I have created a new branch 
https://github.com/openSUSE/multipath-tools/tree/upstream-tip

where this is series applied on my recently posted series
"libmultipath: improve cleanup on exit" (v3), in the hope that it will
pass review, too. It has to be this way around because your set
requires libmp_verbosity.

As soon as my series is finalized, this will be pushed to upstream-
queue.

Regards,
Martin