From 0e2d60004baabe471ee0bbb47a43eababeaecdc4 Mon Sep 17 00:00:00 2001 From: David Lehman Date: Mon, 2 Nov 2009 16:29:22 -0600 Subject: Fix status for and consolidate handling of '-' in vg/lv names. (#527302) --- storage/devices.py | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/storage/devices.py b/storage/devices.py index 643e74e61..0bf9c6c69 100644 --- a/storage/devices.py +++ b/storage/devices.py @@ -1336,11 +1336,16 @@ class DMDevice(StorageDevice): """ Return the device specifier for use in /etc/fstab. """ return self.path + @property + def mapName(self): + """ This device's device-mapper map name """ + return self.name + @property def status(self): _status = False for map in block.dm.maps(): - if map.name == self.name: + if map.name == self.mapName: _status = map.live_table and not map.suspended break @@ -1608,20 +1613,24 @@ class LVMVolumeGroupDevice(DMDevice): if not self.exists: raise DeviceError("device has not been created", self.name) + @property + def mapName(self): + """ This device's device-mapper map name """ + # Thank you lvm for this lovely hack. + return self.name.replace("-","--") + @property def path(self): """ Device node representing this device. """ - # Thank you lvm for this lovely hack. - return "%s/%s" % (self._devDir, self.name.replace("-","--")) + return "%s/%s" % (self._devDir, self.mapName) def getDMNode(self): """ Return the dm-X (eg: dm-0) device node for this device. """ - # Thank you lvm for this lovely hack. log_method_call(self, self.name, status=self.status) if not self.exists: raise DeviceError("device has not been created", self.name) - return dm.dm_node_from_name(self.name.replace("-","--")) + return dm.dm_node_from_name(self.mapName) @property def status(self): @@ -2031,22 +2040,24 @@ class LVMLogicalVolumeDevice(DMDevice): """ This Logical Volume's Volume Group. """ return self.parents[0] + @property + def mapName(self): + """ This device's device-mapper map name """ + # Thank you lvm for this lovely hack. + return "%s-%s" % (self.vg.mapName, self._name.replace("-","--")) + @property def path(self): """ Device node representing this device. """ - # Thank you lvm for this lovely hack. - return "%s/%s-%s" % (self._devDir, self.vg.name.replace("-","--"), - self._name.replace("-","--")) + return "%s/%s" % (self._devDir, self.mapName) def getDMNode(self): """ Return the dm-X (eg: dm-0) device node for this device. """ - # Thank you lvm for this lovely hack. log_method_call(self, self.name, status=self.status) if not self.exists: raise DeviceError("device has not been created", self.name) - return dm.dm_node_from_name("%s-%s" % (self.vg.name.replace("-","--"), \ - self._name.replace("-","--"))) + return dm.dm_node_from_name(self.mapName) @property def name(self): -- cgit