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+")
break
buf = buf.strip()
fields = re.split(pat, buf)
- print fields
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
-def GetSlivers(plc, data, conf):
+def GetSlivers(data, config=None, plc=None):
if 'slivers' not in data:
logger.log("sliverauth: getslivers data lack's sliver information. IGNORING!")
return
for i in devices:
st = os.stat(i)
path = "/vservers/%s%s" % (sliver['name'], i)
+ if os.path.exists(path):
+ # should check whether its the proper type of device
+ continue
+
logger.log("Copying %s to %s" % (i, path))
try:
- os.unlink(path)
+ if os.path.exists(path):
+ os.unlink(path)
+ except:
+ pass
+ try:
+ os.makedirs(os.path.dirname(path), 0755)
except:
pass
os.mknod(path, st.st_mode, st.st_rdev)