[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[rhel6-branch 1/5] Use dm subsystem functions to identify dmraid, mpath partitions.
- From: Ales Kozumplik <akozumpl redhat com>
- To: anaconda-devel-list redhat com
- Subject: [rhel6-branch 1/5] Use dm subsystem functions to identify dmraid, mpath partitions.
- Date: Thu, 16 Jun 2011 15:39:43 +0200
From: David Lehman <dlehman redhat com>
Reimplements udev_device_is_dmraid_partition and
udev_device_is_multipath_partition so they no longer require a
DeviceTree instance.
Related: rhbz#709653
---
storage/devicetree.py | 8 ++++----
storage/udev.py | 43 ++++++++++---------------------------------
2 files changed, 14 insertions(+), 37 deletions(-)
diff --git a/storage/devicetree.py b/storage/devicetree.py
index 3cfab88..773667b 100644
--- a/storage/devicetree.py
+++ b/storage/devicetree.py
@@ -1027,12 +1027,12 @@ class DeviceTree(object):
device = self.getDeviceByName(name)
if device is None:
- if udev_device_is_multipath_partition(info, self):
- diskname = udev_device_get_multipath_partition_disk(info)
+ if udev_device_is_multipath_partition(info):
+ diskname = udev_device_get_dm_partition_disk(info)
disk = self.getDeviceByName(diskname)
return self.addUdevPartitionDevice(info, disk=disk)
- elif udev_device_is_dmraid_partition(info, self):
- diskname = udev_device_get_dmraid_partition_disk(info)
+ elif udev_device_is_dmraid_partition(info):
+ diskname = udev_device_get_dm_partition_disk(info)
disk = self.getDeviceByName(diskname)
return self.addUdevPartitionDevice(info, disk=disk)
diff --git a/storage/udev.py b/storage/udev.py
index b1383b5..de91c6d 100644
--- a/storage/udev.py
+++ b/storage/udev.py
@@ -457,7 +457,7 @@ def udev_device_is_biosraid(info):
return False
-def udev_device_get_dmraid_partition_disk(info):
+def udev_device_get_dm_partition_disk(info):
try:
p_index = info["DM_NAME"].rindex("p")
except (KeyError, AttributeError, ValueError):
@@ -468,43 +468,20 @@ def udev_device_get_dmraid_partition_disk(info):
return info["DM_NAME"][:p_index]
-def udev_device_is_dmraid_partition(info, devicetree):
- diskname = udev_device_get_dmraid_partition_disk(info)
- dmraid_devices = devicetree.getDevicesByType("dm-raid array")
-
- for device in dmraid_devices:
- if diskname == device.name:
- return True
-
- return False
-
-def udev_device_is_multipath_partition(info, devicetree):
- """ Return True if the device is a partition of a multipath device. """
- if not udev_device_is_dm(info):
- return False
- if not info["DM_NAME"].startswith("mpath"):
+def udev_device_is_dmraid_partition(info):
+ if not udev_device_is_dm_raid(info):
return False
- diskname = udev_device_get_dmraid_partition_disk(info)
- if diskname is None:
- return False
-
- # this is sort of a lame check, but basically, if diskname gave us "mpath0"
- # and we start with "mpath" but we're not "mpath0", then we must be
- # "mpath0" plus some non-numeric crap.
- if diskname != info["DM_NAME"]:
- return True
- return False
+ diskname = udev_device_get_dm_partition_disk(info)
+ return diskname not in ("", None)
-def udev_device_get_multipath_partition_disk(info):
+def udev_device_is_multipath_partition(info):
""" Return True if the device is a partition of a multipath device. """
- # XXX PJFIX This whole function is crap.
- if not udev_device_is_dm(info):
- return False
- if not info["DM_NAME"].startswith("mpath"):
+ if not udev_device_is_dm_mpath(info):
return False
- diskname = udev_device_get_dmraid_partition_disk(info)
- return diskname
+
+ diskname = udev_device_get_dm_partition_disk(info)
+ return diskname not in ("", None)
def udev_device_is_multipath_member(info):
""" Return True if the device is part of a multipath. """
--
1.7.5.2
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]