X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plnet.py;h=2c06d0690f67a77260ebaabe88a59130058cb17a;hb=433060307ffbaefe96d816c780908c05bce89355;hp=ee3d253f280aa097f5b0762edd9edcd62686acbc;hpb=0a2a241036253ece582def099b5440e893d83014;p=pyplnet.git diff --git a/plnet.py b/plnet.py index ee3d253..2c06d06 100755 --- a/plnet.py +++ b/plnet.py @@ -10,7 +10,12 @@ import errno import sioc import modprobe +global version +version = 4.3 + def InitInterfaces(logger, plc, data, root="", files_only=False, program="NodeManager"): + global version + sysconfig = "%s/etc/sysconfig/network-scripts" % root try: os.makedirs(sysconfig) @@ -77,10 +82,25 @@ def InitInterfaces(logger, plc, data, root="", files_only=False, program="NodeMa if not network['is_primary']: inter['DHCLIENTARGS'] = "-R subnet-mask" - if len(network['interface_tag_ids']) > 0: + try: + plc.GetInterfaceTags() + version = 4.3 + except AttributeError: + version = 4.2 + + if version == 4.3: + interface_tag_ids = "interface_tag_ids" + interface_tag_id = "interface_tag_id" + else: + interface_tag_ids = "nodenetwork_setting_ids" + interface_tag_id = "nodenetwork_setting_id" + + if len(network[interface_tag_ids]) > 0: try: - settings = plc.GetInterfaceTags({'interface_tag_id': - network['interface_tag_ids']}) + if version == 4.3: + settings = plc.GetInterfaceTags({interface_tag_id:network[interface_tag_ids]}) + else: + settings = plc.GetNodeNetworkSettings({interface_tag_id:network[interface_tag_ids]}) except: logger.log("net:InitInterfaces FATAL: failed call GetInterfaceTags({'interface_tag_id':{%s})"% \ network['interface_tag_ids']) @@ -141,7 +161,7 @@ def InitInterfaces(logger, plc, data, root="", files_only=False, program="NodeMa m = modprobe.Modprobe() try: - m.input("%s/etc/modprobe.conf" % root, program) + m.input("%s/etc/modprobe.conf" % root) except: pass for (dev, inter) in interfaces.iteritems(): @@ -154,7 +174,7 @@ def InitInterfaces(logger, plc, data, root="", files_only=False, program="NodeMa options=" ".join(driver[1:]) if options <> '': m.optionsset(dev,options) - m.output("%s/etc/modprobe.conf" % root) + m.output("%s/etc/modprobe.conf" % root, program) # clean up after any ifcfg-$dev script that's no longer listed as # part of the NodeNetworks associated with this node @@ -325,7 +345,12 @@ if __name__ == "__main__": sys.exit(1) node = shell.GetNodes({'node_id': [int(args[0])]}) - networks = shell.GetInterfaces({'interface_id': node[0]['interface_ids']}) + try: + networks = shell.GetInterfaces({'interface_id': node[0]['interface_ids']}) + except AttributeError: + networks = shell.GetNodeNetworks({'nodenetwork_id':node[0]['nodenetwork_ids']}) + version = 4.2 + data = {'hostname': node[0]['hostname'], 'networks': networks} class logger: