X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plugins%2Frawdisk.py;h=f64affec3f8b2ee619993b94750abd9fa2c65778;hb=e57432c1dfdfeaa52cc32799e2abbc34b7704ce9;hp=89ba0522a9ae0e3205559b5ff70ffeb5bd07f563;hpb=a6ab38d1305ce8bf27c01c82c51413b76ac1b525;p=nodemanager.git diff --git a/plugins/rawdisk.py b/plugins/rawdisk.py index 89ba052..f64affe 100644 --- a/plugins/rawdisk.py +++ b/plugins/rawdisk.py @@ -1,9 +1,6 @@ #!/usr/bin/python -tt # vim:set ts=4 sw=4 expandtab: # -# $Id$ -# $URL$ -# # NodeManager plugin to support mapping unused raw disks into a slice # that has the rawdisk sliver tag @@ -33,7 +30,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 +42,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