X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=monitor%2Fwrapper%2Fplc.py;h=5e6fb7fcd4c34bc3836da14e0a7bc629cd1100b5;hb=db84a19276e861081756a7daec54aba8a1507abe;hp=8c3e0c61400e47342f8fdd2f34d71dcc6f13fcef;hpb=e9c0ede93fd45d4de5d0b4bcd3ec81a55f9b5ffa;p=monitor.git diff --git a/monitor/wrapper/plc.py b/monitor/wrapper/plc.py index 8c3e0c6..5e6fb7f 100644 --- a/monitor/wrapper/plc.py +++ b/monitor/wrapper/plc.py @@ -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: