expects the 'interfaces' key in GetSlivers - review logs to always mention module
[nodemanager.git] / plugins / sliverauth.py
index ad813b8..ce17b0c 100644 (file)
@@ -22,7 +22,7 @@ import logger
 import tools
 
 def start(options, conf):
-    logger.log("sliverauth plugin starting up...")
+    logger.log("sliverauth: plugin starting up...")
 
 def SetSliverTag(plc, slice, tagname, value):
     node_id = tools.node_id()
@@ -33,7 +33,7 @@ def SetSliverTag(plc, slice, tagname, value):
         try:
             slivertag_id=plc.AddSliceTag(slice,tagname,value,node_id)
         except:
-            logger.log ("SetSliverTag - CAUGHT exception for (probably delegated) slice=%(slice)s tag=%(tagname)s node_id=%(node_id)d"%locals())
+            logger.log ("sliverauth: SetSliverTag - CAUGHT exception for (probably delegated) slice=%(slice)s tag=%(tagname)s node_id=%(node_id)d"%locals())
             pass
     else:
         slivertag_id=slivertags[0]['slice_tag_id']
@@ -46,10 +46,18 @@ def GetSlivers(data, config, plc):
             return
 
     if 'slivers' not in data:
-        logger.log("sliverauth: getslivers data lack's sliver information. IGNORING!")
+        logger.log_missing_data("sliverauth.GetSlivers", 'slivers')
         return
 
     for sliver in data['slivers']:
+        path = '/vservers/%s' % sliver['name']
+        if not os.path.exists(path):
+            # ignore all non-plc-instantiated slivers
+            instantiation = sliver.get('instantiation','')
+            if instantiation == 'plc-instantiated':
+                logger.log("sliverauth: plc-instantiated slice %s does not yet exist. IGNORING!" % sliver['name'])
+            continue
+        
         found_hmac = False
         for attribute in sliver['attributes']:
             name = attribute.get('tagname',attribute.get('name',''))
@@ -64,7 +72,7 @@ def GetSlivers(data, config, plc):
             d = [random.choice(string.letters) for x in xrange(32)]
             hmac = "".join(d)
             SetSliverTag(plc,sliver['name'],'hmac',hmac)
-            logger.log("sliverauth setting %s hmac" % sliver['name'])
+            logger.log("sliverauth: setting %s hmac" % sliver['name'])
 
         path = '/vservers/%s/etc/planetlab' % sliver['name']
         if os.path.exists(path):
@@ -83,7 +91,7 @@ def GetSlivers(data, config, plc):
                 if os.path.exists(keyfile):
                     os.unlink(keyfile)
                 os.rename(name,keyfile)
-                logger.log("sliverauth writing hmac to %s " % keyfile)
+                logger.log("sliverauth: writing hmac to %s " % keyfile)
 
             os.chmod(keyfile,0400)