expects the 'interfaces' key in GetSlivers - review logs to always mention module
[nodemanager.git] / plugins / vsys_privs.py
index 7012a59..1a3e4b2 100755 (executable)
@@ -1,3 +1,6 @@
+# $Id$
+# $URL$
+
 """
 vsys sub-configurator.  Maintains configuration parameters associated with vsys scripts.
 All slice attributes with the prefix vsys_ are written into configuration files on the
@@ -11,15 +14,24 @@ from sets import Set
 VSYS_PRIV_DIR = "/etc/planetlab/vsys-attributes"
 
 def start(options, conf):
-    logger.log("vsys_privs plugin v0.1")
+    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']:
@@ -85,7 +97,7 @@ 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 
     # that are invalid