fixed typo on logger name for exceptions.
[monitor.git] / monitor / wrapper / plc.py
index 8c3e0c6..5e6fb7f 100644 (file)
@@ -248,7 +248,11 @@ Returns dict of PCU info of a given node.
 def getpcu(nodename):
        api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
        anon = {'AuthMethod': "anonymous"}
-       nodeinfo = api.GetNodes(auth.auth, {"hostname": nodename}, ["pcu_ids", "ports"])[0]
+        try:
+                nodeinfo = api.GetNodes(auth.auth, {"hostname": nodename}, ["pcu_ids", "ports"])[0]
+        except IndexError:
+                logger.info("Can not find node: %s" % nodename)
+                return False
        if nodeinfo['pcu_ids']:
                print nodeinfo
                sitepcu = api.GetPCUs(auth.auth, nodeinfo['pcu_ids'])[0]
@@ -336,7 +340,7 @@ def isPendingSite(loginbase):
         try:
                 site = api.GetSites(auth.auth, loginbase)[0]
         except Exception, exc:
-                login.info("ERROR: No site %s" % loginbase)
+                logger.info("ERROR: No site %s" % loginbase)
                 return False
 
         if not site['enabled'] and site['ext_consortium_id'] == PENDING_CONSORTIUM_ID:
@@ -379,7 +383,7 @@ Freeze all site slices.
 '''
 def suspendSiteSlices(loginbase):
         if isPendingSite(loginbase):
-                msg = "INFO: enableSiteSlices: Pending Site (%s)" % loginbase
+                msg = "INFO: suspendSiteSlices: Pending Site (%s)" % loginbase
                 print msg
                 logger.info(msg)
                 return
@@ -402,11 +406,11 @@ def suspendSlices(nodename):
 
 
 def enableSiteSlices(loginbase):
-        if isPendingSite(loginbase):
-                msg = "INFO: enableSiteSlices: Pending Site (%s)" % loginbase
-                print msg
-                logger.info(msg)
-                return
+       if isPendingSite(loginbase):
+               msg = "INFO: enableSiteSlices: Pending Site (%s)" % loginbase
+               print msg
+               logger.info(msg)
+               return
 
        api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
        for slice in slices(loginbase):
@@ -442,18 +446,20 @@ def enableSlices(nodename):
 #              api.SliceAttributeAdd(auth.auth, slice, "plc_slice_state", {"state" : "suspended"})
 #
 def enableSiteSliceCreation(loginbase):
-        if isPendingSite(loginbase):
-                msg = "INFO: enableSiteSliceCreation: Pending Site (%s)" % loginbase
-                print msg
-                logger.info(msg)
-                return
+       if isPendingSite(loginbase):
+               msg = "INFO: enableSiteSliceCreation: Pending Site (%s)" % loginbase
+               print msg
+               logger.info(msg)
+               return
 
        api = xmlrpclib.Server(auth.server, verbose=False, allow_none=True)
        try:
                logger.info("Enabling slice creation for site %s" % loginbase)
                if not debug:
-                       logger.info("\tcalling UpdateSite(%s, enabled=True)" % loginbase)
-                       api.UpdateSite(auth.auth, loginbase, {'enabled': True})
+                       site = api.GetSites(auth.auth, loginbase)[0]
+                       if site['enabled'] == False:
+                               logger.info("\tcalling UpdateSite(%s, enabled=True)" % loginbase)
+                               api.UpdateSite(auth.auth, loginbase, {'enabled': True})
        except Exception, exc:
                print "ERROR: enableSiteSliceCreation:  %s" % exc
                logger.info("ERROR: enableSiteSliceCreation:  %s" % exc)
@@ -466,13 +472,13 @@ def enableSliceCreation(nodename):
 Removes site's ability to create slices. Returns previous max_slices
 '''
 def removeSiteSliceCreation(loginbase):
-        print "removeSiteSliceCreation(%s)" % loginbase
+       print "removeSiteSliceCreation(%s)" % loginbase
 
-        if isPendingSite(loginbase):
-                msg = "INFO: removeSiteSliceCreation: Pending Site (%s)" % loginbase
-                print msg
-                logger.info(msg)
-                return
+       if isPendingSite(loginbase):
+               msg = "INFO: removeSiteSliceCreation: Pending Site (%s)" % loginbase
+               print msg
+               logger.info(msg)
+               return
 
        api = xmlrpclib.Server(auth.server, verbose=False)
        try: