X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=nodeconfig.py;h=bb661762998acc0ac7386e87bf21715aa709036a;hb=16b7bc48471b0695e72320fbcf761db695af032e;hp=0b23c7b2f502f1dab79fe6e70870cfba7ec20e2a;hpb=9c0dba25a0b0f7aaef274baed17d674533141ea7;p=monitor.git diff --git a/nodeconfig.py b/nodeconfig.py index 0b23c7b..bb66176 100755 --- a/nodeconfig.py +++ b/nodeconfig.py @@ -1,21 +1,27 @@ #!/usr/bin/python -import plc -import auth -api = plc.PLC(auth.auth, auth.plc) +from monitor.wrapper import plc +api = plc.getAuthAPI() -from optparse import OptionParser +from monitor import parser as parsermodule from sets import Set -from nodecommon import * -import soltesz +from monitor.database.info.model import FindbadNodeRecord + +def network_config_to_str(net): + + str = "" + static_keys = ['method', 'ip', 'gateway', 'network', 'broadcast', 'netmask', 'dns1', 'dns2', 'mac', 'is_primary'] + for k in static_keys: + str += "%15s == %s\n" % (k, net[k]) + + return str + def main(): - from config import config - fb = soltesz.dbLoad("findbad") - parser = OptionParser() + parser = parsermodule.getParser() parser.set_defaults(nodelist=None, list=False, add=False, @@ -24,33 +30,35 @@ def main(): ) parser.add_option("", "--nodelist", dest="nodelist", metavar="list.txt", help="Use all nodes in the given file for operation.") - config = config(parser) - config.parse_args() + parser = parsermodule.getParser(['defaults'], parser) + config = parsermodule.parse_args(parser) # COLLECT nodegroups, nodes and node lists for node in config.args: try: n = api.GetNodes(node)[0] - print n - net = api.GetNodeNetworks(n['nodenetwork_ids'])[0] - print net + #print n + net = api.GetInterfaces(n['interface_ids'])[0] + #print net node_keys = ['boot_state', 'key', 'last_updated', 'last_contact'] for k in node_keys: if 'last' in k: - print "%15s == %s" % (k, diff_time(net[k])) + #print "%15s == %s" % (k, diff_time(n[k])) + print "%15s == %s" % (k, n[k]) else: - print "%15s == %s" % (k, net[k]) + print "%15s == %s" % (k, n[k]) - static_keys = ['method', 'ip', 'gateway', 'network', 'broadcast', 'netmask', 'dns1', 'dns2', 'mac', 'is_primary'] - for k in static_keys: - print "%15s == %s" % (k, net[k]) + print network_config_to_str(net) #for k in net.keys(): # print k, "==" , net[k] except: + #from monitor.common import email_exception print "Error with %s" % node + #email_exception() + import traceback; print traceback.print_exc() pass # commands: @@ -60,7 +68,8 @@ def main(): i = 1 for node in nodelist: print "%-2d" % i, - print nodegroup_display(node, fb) + fbdata = FindbadNodeRecord.get_latest_by(hostname=node['hostname']) + print nodegroup_display(node, fbdata.to_dict()) i += 1 elif config.add and config.nodegroup: