From: Thierry Parmentelat Date: Thu, 23 Sep 2010 10:45:38 +0000 (+0200) Subject: Merge branch 'master' of ssh://git.onelab.eu/git/nodemanager X-Git-Tag: nodemanager-2.0-19~2 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=6f3c475c348307db846d9b9675cefabf95416856;hp=a857692c3e16649aa536be13dd6979569bd74c46;p=nodemanager.git Merge branch 'master' of ssh://git.onelab.eu/git/nodemanager --- diff --git a/plugins/rawdisk.py b/plugins/rawdisk.py index b6f4708..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 @@ -72,4 +75,8 @@ def GetSlivers(data, config=None, plc=None): os.unlink(path) except: pass + try: + os.makedirs(os.path.dirname(path), 0755) + except: + pass os.mknod(path, st.st_mode, st.st_rdev)