[blivet:master 08/11] Add a udev_device_get_md_metadata() method to udev and use it.

Vratislav Podzimek vpodzime at redhat.com
Fri Jul 4 07:03:14 UTC 2014


On Thu, 2014-07-03 at 11:19 -0400, mulhern wrote:
> Signed-off-by: mulhern <amulhern at redhat.com>
> ---
>  blivet/devicetree.py |  6 ++++--
>  blivet/udev.py       | 12 ++++++++++++
>  2 files changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/blivet/devicetree.py b/blivet/devicetree.py
> index aaa287c..64aa5ac 100644
> --- a/blivet/devicetree.py
> +++ b/blivet/devicetree.py
> @@ -1602,7 +1602,7 @@ class DeviceTree(object):
>  
>                  if dev_uuid == md_uuid and dev_level == md_level:
>                      md_name = udev.udev_device_get_md_name(dev)
> -                    md_metadata = dev.get("MD_METADATA")
> +                    md_metadata = udev.udev_device_get_md_metadata(dev)
>                      if not md_name:
>                          # containers don't typically have names and they also
>                          # don't have a symlink in /dev/md
> @@ -1616,7 +1616,9 @@ class DeviceTree(object):
>  
>              # mdexamine yields MD_METADATA only for metadata version > 0.90
>              # if MD_METADATA is missing, assume metadata version is 0.90
> -            md_metadata = md_metadata or info.get("MD_METADATA", "0.90")
> +            md_metadata = md_metadata or \
> +               udev.udev_device_get_md_metadata(info) or \
> +               "0.90"
>  
>              if not md_name:
>                  md_path = info.get("DEVICE", "")
> diff --git a/blivet/udev.py b/blivet/udev.py
> index bc4e21f..d3a8259 100644
> --- a/blivet/udev.py
> +++ b/blivet/udev.py
> @@ -434,6 +434,18 @@ def udev_device_get_md_name(info):
>      #  * No known metadata versions for mdraid/mdadm
>      return info.get("MD_DEVNAME")
>  
> +def udev_device_get_md_metadata(info):
> +    """ Return the metadata version number.
> +
> +        :param dict info: dictionary of name-value pairs as strings
> +        :returns: the metadata version number of the md array
> +        :rtype: str or NoneType
> +    """
> +    # Value for MD_METADATA known to be obtained from:
> +    #  * pyudev/libudev
> +    #  * mdraid/mdadm (not version numbers < 1)
> +    return info.get("MD_METADATA")
> +
>  def udev_device_get_vg_name(info):
>      return info['LVM2_VG_NAME']
A similar note here inspired by a new udev_ function added to the udev
module -- could we remove the 'udev_' prefix from all those functions?
It made sense when there were * imports from the module, but it's just
pain now.

-- 
Vratislav Podzimek

Anaconda Rider | RHCE | Red Hat, Inc. | Brno - Czech Republic




More information about the anaconda-patches mailing list