git://git.onelab.eu
/
nodemanager.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix coresched locating cgroup and reduce verbosity
[nodemanager.git]
/
plugins
/
rawdisk.py
diff --git
a/plugins/rawdisk.py
b/plugins/rawdisk.py
index
ad84761
..
f64affe
100644
(file)
--- a/
plugins/rawdisk.py
+++ b/
plugins/rawdisk.py
@@
-1,9
+1,6
@@
#!/usr/bin/python -tt
# vim:set ts=4 sw=4 expandtab:
#
#!/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
# NodeManager plugin to support mapping unused raw disks into a slice
# that has the rawdisk sliver tag
@@
-21,8
+18,8
@@
import re
import logger
import tools
import logger
import tools
-def start(
options, config
):
- logger.log("rawdisk plugin starting up...")
+def start():
+ logger.log("rawdisk
:
plugin starting up...")
def get_unused_devices():
devices = []
def get_unused_devices():
devices = []
@@
-33,7
+30,8
@@
def get_unused_devices():
for i in os.listdir("/sys/block"):
if not i.startswith("dm-"):
continue
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+")
# Read the list of partitions
partitions = file("/proc/partitions", "r")
pat = re.compile("\s+")
@@
-44,20
+42,22
@@
def get_unused_devices():
buf = buf.strip()
fields = re.split(pat, buf)
dev = fields[-1]
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
def GetSlivers(data, config=None, plc=None):
devices.append("/dev/%s" % dev)
partitions.close()
return devices
def GetSlivers(data, config=None, plc=None):
- if 'slivers' not in data:
- logger.log
("sliverauth: getslivers data lack's sliver information. IGNORING!"
)
+ if 'slivers' not in data:
+ logger.log
_missing_data("rawdisk.GetSlivers",'slivers'
)
return
devices = get_unused_devices()
for sliver in data['slivers']:
for attribute in sliver['attributes']:
return
devices = get_unused_devices()
for sliver in data['slivers']:
for attribute in sliver['attributes']:
- name = attribute.get('tagname',attribute.get('name',''))
+
name = attribute.get('tagname',attribute.get('name',''))
if name == 'rawdisk':
for i in devices:
st = os.stat(i)
if name == 'rawdisk':
for i in devices:
st = os.stat(i)
@@
-65,11
+65,15
@@
def GetSlivers(data, config=None, plc=None):
if os.path.exists(path):
# should check whether its the proper type of device
continue
if os.path.exists(path):
# should check whether its the proper type of device
continue
-
- logger.log("Copying %s to %s" % (i, path))
+
+ logger.log("
rawdisk:
Copying %s to %s" % (i, path))
try:
if os.path.exists(path):
os.unlink(path)
except:
pass
try:
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)
os.mknod(path, st.st_mode, st.st_rdev)