X-Git-Url: http://git.onelab.eu/?p=monitor.git;a=blobdiff_plain;f=nodeinfo.py;h=30838f1a494eef81643da8fcaae307ad49fdcc2f;hp=84d8ae0009bb65b097be01cba27f485dcde8112e;hb=944d143a6528c4157b71f51ed480aec806cbaa06;hpb=94cd174f6ce0bb3b2c8bceda0346e332037c6d8a diff --git a/nodeinfo.py b/nodeinfo.py index 84d8ae0..30838f1 100755 --- a/nodeinfo.py +++ b/nodeinfo.py @@ -3,12 +3,14 @@ import plc api = plc.getAuthAPI() -import database +from monitor import * +#import database import reboot import time from model import * from nodecommon import * +from unified_model import node_end_record, PersistFlags import util.file @@ -43,12 +45,14 @@ def plc_print_nodeinfo(plcnode): diff_time(plcnode['last_contact']), plcnode['key']) def fb_print_nodeinfo(fbnode): + pf = PersistFlags(fbnode['hostname'], 1, db='node_persistflags') + fbnode['last_change'] = diff_time(pf.last_changed) print " Checked: ", if 'checked' in fbnode: print "%11.11s " % diff_time(fbnode['checked']) else: print "Unknown" - print "\t state | ssh | pcu | bootcd | category | kernel" + print "\t state | ssh | pcu | bootcd | category | last change | kernel" if fbnode['bootcd']: fbnode['bootcd'] = fbnode['bootcd'].split()[-1] else: @@ -59,7 +63,7 @@ def fb_print_nodeinfo(fbnode): fbnode['state'] = "none" if len(fbnode['kernel'].split()) > 2: fbnode['kernel'] = fbnode['kernel'].split()[2] - print "\t %(state)5s | %(ssh)5.5s | %(pcu)5.5s | %(bootcd)6.6s | %(category)8.8s | %(kernel)s" % fbnode + print "\t %(state)5s | %(ssh)5.5s | %(pcu)5.5s | %(bootcd)6.6s | %(category)8.8s | %(last_change)11s | %(kernel)s" % fbnode def act_print_nodeinfo(actnode, header): if header[0]: @@ -132,25 +136,25 @@ if config.findbad: util.file.setFileFromList(file, config.args) os.system("./findbad.py --cachenodes --debug=0 --dbname=findbad --increment --nodelist %s" % file) -fb = database.dbLoad("findbad") -try: - act_all = database.dbLoad("act_all") -except: - act_all = {} - for node in config.args: config.node = node + fb = database.dbLoad("findbad") plc_nodeinfo = api.GetNodes({'hostname': config.node}, None)[0] fb_nodeinfo = fb['nodes'][config.node]['values'] plc_print_nodeinfo(plc_nodeinfo) + fb_nodeinfo['hostname'] = node fb_print_nodeinfo(fb_nodeinfo) if fb_nodeinfo['pcu'] == "PCU": pcu = reboot.get_pcu_values(fb_nodeinfo['plcnode']['pcu_ids'][0]) if pcu: pcu_print_info(pcu, config.node) + try: + act_all = database.dbLoad("act_all") + except: + act_all = {} if config.node in act_all and len(act_all[config.node]) > 0: header = [True]