X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=printbadcsv.py;h=efec3ca5c283747225292b9327ba5ed7715177f9;hb=refs%2Fheads%2F1.0;hp=0b04039c025224f25d70a2f5c503a9f6805f082b;hpb=6ade249e87b43384dea6d53f27bbe0d9996952e8;p=monitor.git diff --git a/printbadcsv.py b/printbadcsv.py index 0b04039..efec3ca 100755 --- a/printbadcsv.py +++ b/printbadcsv.py @@ -1,17 +1,21 @@ #!/usr/bin/python -import soltesz -from config import config -from optparse import OptionParser -from www.printbadnodes import * +from monitor import database +from monitor import config +import parser as parsermodule +from www.printbadnodes import * def main(): - db = soltesz.dbLoad(config.dbname) + global fb + db = database.dbLoad(config.dbname) + fb = database.dbLoad("findbadpcus") + act= database.dbLoad("act_all") ## Field widths used for printing maxFieldLengths = { 'nodename' : -45, 'ping' : 6, 'ssh' : 6, + 'rt' : 10, 'pcu' : 7, 'category' : 9, 'state' : 5, @@ -29,18 +33,10 @@ def main(): d_n = db['nodes'] - l_nodes = d_n.keys() - - # category by site - #bysite = {} - #for nodename in l_nodes: - # if 'plcsite' in d_n[nodename]['values'] and \ - # 'login_base' in d_n[nodename]['values']['plcsite']: - # loginbase = d_n[nodename]['values']['plcsite']['login_base'] - # if loginbase not in bysite: - # bysite[loginbase] = [] - # d_n[nodename]['values']['nodename'] = nodename - # bysite[loginbase].append(d_n[nodename]['values']) + if config.display: + l_nodes = sys.argv[2:] + else: + l_nodes = d_n.keys() # d2 was an array of [{node}, {}, ...] # the bysite is a loginbase dict of [{node}, {node}] @@ -97,35 +93,55 @@ def main(): vals['kernel'] = "" continue + if 'pcu' in vals and vals['pcu'] == "PCU": + # check the health of the pcu. + s = pcu_state(vals['plcnode']['pcu_ids'][0]) + if s == 0: + vals['pcu'] = "UP-PCU" + else: + vals['pcu'] = "DN-PCU" + + vals['rt'] = " -" + if vals['nodename'] in act: + if len(act[vals['nodename']]) > 0 and 'rt' in act[vals['nodename']][0]: + if 'Status' in act[vals['nodename']][0]['rt']: + vals['rt'] = "%s %s" % (act[vals['nodename']][0]['rt']['Status'], + act[vals['nodename']][0]['rt']['id']) + str = format % vals fields = str.split() #print "" s = fields_to_html(fields, vals) + s = "" + if config.display: + print str keys = categories.keys() - for cat in ['BOOT-ALPHA', 'BOOT-PROD', 'BOOT-OLDBOOTCD', 'DEBUG-ALPHA', - 'DEBUG-PROD', 'DEBUG-OLDBOOTCD', 'DOWN-ERROR']: + for cat in ['BOOT-PROD', 'BOOT-OLDPROD', 'BOOT-OLDBOOTCD', 'DEBUG-PROD', + 'DEBUG-OLDPROD', 'DEBUG-OLDBOOTCD', 'DOWN-ERROR']: if cat not in keys: categories[cat] = 0 keys = categories.keys() - for cat in ['BOOT-ALPHA', 'BOOT-PROD', 'BOOT-OLDBOOTCD', 'DEBUG-ALPHA', - 'DEBUG-PROD', 'DEBUG-OLDBOOTCD', 'DOWN-ERROR']: + for cat in ['BOOT-PROD', 'BOOT-OLDPROD', 'BOOT-OLDBOOTCD', 'DEBUG-PROD', + 'DEBUG-OLDPROD', 'DEBUG-OLDBOOTCD', 'DOWN-ERROR']: if cat in keys: print "%d," % categories[cat], print "" import cgi if __name__ == '__main__': - parser = OptionParser() + parser = parsermodule.getParser() parser.set_defaults(cmpdays=False, comon="sshstatus", - fields="nodename,ping,ssh,pcu,category,state,kernel,bootcd", + fields="nodename,ping,ssh,pcu,category,state,kernel,bootcd,rt", dbname="findbad", # -070724-1", + display=False, cmpping=False, cmpssh=False, cmpcategory=False, cmpstate=False) parser.add_option("", "--fields", dest="dbname", help="") parser.add_option("", "--dbname", dest="dbname", help="") + parser.add_option("", "--display", dest="display", action="store_true") parser.add_option("", "--days", dest="cmpdays", action="store_true", help="") parser.add_option("", "--ping", dest="cmpping", action="store_true", help="") parser.add_option("", "--ssh", dest="cmpssh", action="store_true", help="") @@ -133,6 +149,5 @@ if __name__ == '__main__': parser.add_option("", "--kernel", dest="cmpkernel", action="store_true", help="") parser.add_option("", "--state", dest="cmpstate", action="store_true", help="") parser.add_option("", "--comon", dest="comon", help="") - config = config(parser) - config.parse_args() + config = parsermodule.parse_args(parser) main()