X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nm.py;h=83a78f2fa57d69971a2605bb1f0279a2b587fa2a;hb=b994d0a94352d9c4f3fc430c317f7a37dd3414d4;hp=e9ca6d6f7e0905fa8e58605c0043eba03bd15b98;hpb=737532f28237ed08d3895b5912866476f909e04f;p=nodemanager.git diff --git a/nm.py b/nm.py index e9ca6d6..83a78f2 100755 --- a/nm.py +++ b/nm.py @@ -24,7 +24,6 @@ import tools from config import Config from plcapi import PLCAPI import random -import net id="$Id$" savedargv = sys.argv[:] @@ -55,22 +54,18 @@ def GetSlivers(plc, config): try: logger.log("Syncing w/ PLC") data = plc.GetSlivers() - getPLCDefaults(data, config) if (options.verbose): logger.log_slivers(data) + getPLCDefaults(data, config) except: logger.log_exc() # XXX So some modules can at least boostrap. logger.log("nm: Can't contact PLC to GetSlivers(). Continuing.") data = {} - # Set i2 ip list for nodes in I2 nodegroup - # and init network interfaces (unless overridden) - try: net.GetSlivers(plc, data, config) # TODO - num of args needs to be unified across mods. - except: logger.log_exc() - # All other callback modules + # Invoke GetSlivers() functions from the callback modules for module in modules: try: callback = getattr(module, 'GetSlivers') - callback(data) + callback(plc, data, config) except: logger.log_exc() @@ -81,7 +76,7 @@ def getPLCDefaults(data, config): for slice in data.get('slivers'): if slice['name'] == config.PLC_SLICE_PREFIX+"_default": attr_dict = {} - for attr in slice.get('attributes'): attr_dict[attr['name']] = attr['value'] + for attr in slice.get('attributes'): attr_dict[attr['tagname']] = attr['value'] if len(attr_dict): logger.verbose("Found default slice overrides.\n %s" % attr_dict) config.OVERRIDES = attr_dict @@ -127,7 +122,7 @@ def run(): if os.path.exists(options.session): session = file(options.session).read().strip() else: - session = options.session + session = None # Initialize XML-RPC client iperiod=int(options.period)