X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nm.py;h=85c9004fedf6f606f42a09f894509974ed38dbeb;hb=c390a184ea29186aaab8f9fbd462757609983ff5;hp=3f8edbc5d97b29f8ef6b26a05fd5b7ae2b2a5fdf;hpb=f9232fc78868df2cd842fc3ccf9c6f804e58a60a;p=nodemanager.git diff --git a/nm.py b/nm.py index 3f8edbc..85c9004 100755 --- a/nm.py +++ b/nm.py @@ -54,7 +54,7 @@ if os.path.exists(options.path): modules = [] -def GetSlivers(plc, config): +def GetSlivers(config, plc): '''Run call backs defined in modules''' try: logger.log("Syncing w/ PLC") @@ -70,7 +70,7 @@ def GetSlivers(plc, config): for module in modules: try: callback = getattr(module, 'GetSlivers') - callback(plc, data, config) + callback(data, config, plc) except: logger.log_exc() @@ -85,8 +85,7 @@ def getPLCDefaults(data, config): if len(attr_dict): logger.verbose("Found default slice overrides.\n %s" % attr_dict) config.OVERRIDES = attr_dict - return - if 'OVERRIDES' not in dir(config): del config.OVERRIDES + elif 'OVERRIDES' in dir(config): del config.OVERRIDES def run(): @@ -134,10 +133,22 @@ def run(): irandom=int(options.random) plc = PLCAPI(config.plc_api_uri, config.cacert, session, timeout=iperiod/2) + #check auth + logger.log("Checking Auth.") + while plc.check_authentication() != True: + try: + plc.update_session() + logger.log("Authentication Failure. Retrying") + except: + logger.log("Retry Failed. Waiting") + time.sleep(iperiod) + logger.log("Authentication Succeeded!") + + while True: # Main NM Loop logger.verbose('mainloop - nm:getSlivers - period=%d random=%d'%(iperiod,irandom)) - GetSlivers(plc, config) + GetSlivers(config, plc) delay=iperiod + random.randrange(0,irandom) logger.verbose('mainloop - sleeping for %d s'%delay) time.sleep(delay)