Merge branch 'ipv6'
[nodemanager.git] / plugins / vsys_privs.py
index 3484a38..01ab283 100755 (executable)
@@ -6,20 +6,28 @@ node for the reference of vsys scripts.
 
 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']:
@@ -74,7 +82,7 @@ def write_privs(cur_privs,privs):
         # 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
@@ -85,9 +93,9 @@ def write_privs(cur_privs,privs):
                 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]
@@ -95,19 +103,19 @@ def write_privs(cur_privs,privs):
 
         # 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'},