#!/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)
+ db = database.dbLoad(config.dbname)
+ 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,
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}]
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 "<tr>"
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="")
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()