From: Daniel Hokka Zakrisson <dhokka@cs.princeton.edu>
Date: Mon, 26 Jul 2010 19:31:51 +0000 (-0400)
Subject: cciss fix and cleaner way to reach the partition.
X-Git-Tag: nodemanager-2.0-19~2^2
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=3fc37a9ca8f74109667f18f2a87ca10c2731f2eb;p=nodemanager.git

cciss fix and cleaner way to reach the partition.
---

diff --git a/plugins/rawdisk.py b/plugins/rawdisk.py
index 89ba052..6d6e0f0 100644
--- a/plugins/rawdisk.py
+++ b/plugins/rawdisk.py
@@ -33,7 +33,8 @@ def get_unused_devices():
     for i in os.listdir("/sys/block"):
         if not i.startswith("dm-"):
             continue
-        in_vg.extend(os.listdir("/sys/block/%s/slaves" % i))
+        in_vg.extend(map(lambda x: x.replace("!", "/"),
+                         os.listdir("/sys/block/%s/slaves" % i)))
     # Read the list of partitions
     partitions = file("/proc/partitions", "r")
     pat = re.compile("\s+")
@@ -44,7 +45,9 @@ def get_unused_devices():
         buf = buf.strip()
         fields = re.split(pat, buf)
         dev = fields[-1]
-        if not dev.startswith("dm-") and dev.endswith("1") and dev not in in_vg:
+        if (not dev.startswith("dm-") and dev not in in_vg and
+            os.path.exists("/dev/%s" % dev) and
+            (os.minor(os.stat("/dev/%s" % dev).st_rdev) % 2) != 0):
             devices.append("/dev/%s" % dev)
     partitions.close()
     return devices