New patch submitted by Saggi Mizrahi (smizrahi(a)redhat.com)
You can review this change at:
http://gerrit.usersys.redhat.com/866
commit 8a883f5629c356e739ee0690a90f13db71c156a4
Author: Saggi Mizrahi <smizrahi(a)redhat.com>
Date: Tue Aug 30 11:41:34 2011 +0300
BZ#734136 - Stricter partition detection
Change-Id: Ibc242c7a3810efbc89083d0f0ea6fb193a63e331
diff --git a/vdsm/storage/devicemapper.py b/vdsm/storage/devicemapper.py
index 08cd533..8000928 100644
--- a/vdsm/storage/devicemapper.py
+++ b/vdsm/storage/devicemapper.py
@@ -29,6 +29,8 @@ from constants import EXT_DMSETUP
DMPATH_FORMAT = "/dev/mapper/%s"
+DM_PREFIX_PARTITION = "Part"
+
def getDmId(deviceMultipathName):
devlinkPath = DMPATH_FORMAT % deviceMultipathName
try:
@@ -99,8 +101,18 @@ def isBlockDevice(devName):
return False
def isPartitioned(devName):
- devName = resolveDevName(devName)
- return (len(getHolders(devName)) > 0)
+ dmName = resolveDevName(devName)
+ #Sometimes partitions are not managed by device mapper
+ possiblePartPath = os.path.join("/sys/block/", devName, devName +
"1")
+ if os.path.exists(possiblePartPath):
+ return True
+
+ mpathName = getDevName(dmName)
+ for holder in getHolders(dmName):
+ if getDevName(holder).startswith(mpathName):
+ return True
+
+ return False
def getAllSlaves():
deps = {}