import logger
import os
-from sets import Set
VSYS_PRIV_DIR = "/etc/planetlab/vsys-attributes"
-def start(options, conf):
- logger.log("vsys_privs plugin v0.1")
+def start():
+ logger.log("vsys_privs: plugin starting")
if (not os.path.exists(VSYS_PRIV_DIR)):
os.makedirs(VSYS_PRIV_DIR)
- logger.log("Created vsys attributes dir")
+ logger.log("vsys_privs: Created vsys attributes dir")
def GetSlivers(data, config=None, plc=None):
+
+ if 'slivers' not in data:
+ logger.log_missing_data("vsys_privs.GetSlivers",'slivers')
+ return
+
+
privs = {}
# Parse attributes and update dict of scripts
+ if 'slivers' not in data:
+ logger.log_missing_data("vsys_privs.GetSlivers",'slivers')
+ return
for sliver in data['slivers']:
slice = sliver['name']
for attribute in sliver['attributes']:
# Add values that do not exist
for k in variables.keys():
v = variables[k]
- if (cur_privs.has_key(slice)
+ if (cur_privs.has_key(slice)
and cur_privs[slice].has_key(k)
and cur_privs[slice][k] == v):
# The binding has not changed
data = '\n'.join(v)
f.write(data)
f.close()
- logger.log("Added vsys attribute %s for %s"%(k,slice))
+ logger.log("vsys_privs: added vsys attribute %s for %s"%(k,slice))
- # Remove files and directories
+ # Remove files and directories
# that are invalid
for slice in cur_privs.keys():
variables = cur_privs[slice]
# Add values that do not exist
for k in variables.keys():
- if (privs.has_key(slice)
+ if (privs.has_key(slice)
and cur_privs[slice].has_key(k)):
# ok, spare this tag
- print "Sparing %s, %s "%(slice,k)
+ print "Sparing %s, %s "%(slice,k)
else:
v_file = os.path.join(slice_dir, k)
- os.remove(v_file)
+ os.remove(v_file)
if (not privs.has_key(slice)):
os.rmdir(slice_dir)
-if __name__ == "__main__":
+if __name__ == "__main__":
test_slivers = {'slivers':[
{'name':'foo','attributes':[
{'tagname':'vsys_m','value':'2'},