X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=www%2Fprintbadnodes.py;h=3bfc7bdf8007a22ded4ae65158f59eafcfc43222;hb=944d143a6528c4157b71f51ed480aec806cbaa06;hp=0c94595f40b83fd6cada5f8c69a860323f05205f;hpb=8ed0efd101dc969d4d0218829a3c0f689607f0e2;p=monitor.git
diff --git a/www/printbadnodes.py b/www/printbadnodes.py
index 0c94595..3bfc7bd 100755
--- a/www/printbadnodes.py
+++ b/www/printbadnodes.py
@@ -1,13 +1,12 @@
#!/usr/bin/python
-import soltesz
-from config import config
-from optparse import OptionParser
+from monitor import database
+from monitor import config
import string
-
import sys
categories = {}
ssherror = False
+fb = {}
def sec2days(sec):
if sec == "null":
@@ -144,9 +143,32 @@ def ssh_error_to_str(str):
return ssh_error
+def pcu_state(pcu_id):
+ global fb
+
+ if 'nodes' in fb and "id_%s" % pcu_id in fb['nodes'] \
+ and 'values' in fb['nodes']["id_%s" % pcu_id]:
+ rec = fb['nodes']["id_%s" % pcu_id]['values']
+ if 'reboot' in rec:
+ rb = rec['reboot']
+ if rb == 0 or rb == "0":
+ return 0
+ elif "NetDown" == rb or "Not_Run" == rb:
+ return 1
+ else:
+ return -1
+ else:
+ return -1
+ else:
+ return -1
+
def fields_to_html(fields, vals):
global categories
global ssherror
+ pcu_colorMap = { -1 : 'indianred',
+ 0 : 'darkseagreen',
+ 1 : 'gold', }
+
colorMap = { 'PING' : 'darkseagreen',
'NOPING': 'darksalmon',
'SSH': 'darkseagreen',
@@ -199,6 +221,10 @@ def fields_to_html(fields, vals):
r_str += "
%s | " % (bgcolor, f)
elif f == 'PCU':
if len(vals['plcnode']['pcu_ids']) > 0:
+ #print "pcu_id: %s
" % vals['plcnode']['pcu_ids'][0]
+ #print "state: %s
" % pcu_state(vals['plcnode']['pcu_ids'][0])
+ #print "color: %s
" % pcu_colorMap[pcu_state(vals['plcnode']['pcu_ids'][0])]
+ bgcolor = "bgcolor='%s'" % pcu_colorMap[pcu_state(vals['plcnode']['pcu_ids'][0])]
url = "PCU" % vals['plcnode']['pcu_ids'][0]
r_str += "%s | " % (bgcolor, url)
else:
@@ -211,7 +237,10 @@ def fields_to_html(fields, vals):
def main(sitefilter, catfilter, statefilter, comonfilter, nodeonlyfilter):
- db = soltesz.dbLoad(config.dbname)
+ global fb
+
+ db = database.dbLoad(config.dbname)
+ fb = database.dbLoad("findbadpcus")
## Field widths used for printing
maxFieldLengths = { 'nodename' : -45,
@@ -465,30 +494,16 @@ if __name__ == '__main__':
else:
mynodeonly = None
- parser = OptionParser()
- parser.set_defaults(cmpdays=False,
- comon="sshstatus",
- fields="nodename,ping,ssh,pcu,category,state,comonstats,kernel,bootcd",
- dbname="findbad", # -070724-1",
- cmpping=False,
- cmpdns=False,
- cmploginbase=False,
- cmpssh=False,
- cmpcategory=False,
- cmpstate=False)
- parser.add_option("", "--fields", dest="fields", help="")
- parser.add_option("", "--dbname", dest="dbname", help="")
- parser.add_option("", "--days", dest="cmpdays", action="store_true", help="")
- parser.add_option("", "--ping", dest="cmpping", action="store_true", help="")
- parser.add_option("", "--dns", dest="cmpdns", action="store_true", help="")
- parser.add_option("", "--ssh", dest="cmpssh", action="store_true", help="")
- parser.add_option("", "--loginbase",dest="cmploginbase",action="store_true", help="")
- parser.add_option("", "--category", dest="cmpcategory", 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.cmpdays=False
+ config.comon="sshstatus"
+ config.fields="nodename,ping,ssh,pcu,category,state,comonstats,kernel,bootcd"
+ config.dbname="findbad"
+ config.cmpping=False
+ config.cmpdns=False
+ config.cmploginbase=False
+ config.cmpssh=False
+ config.cmpcategory=False
+
print "Content-Type: text/html\r\n"
if mynodeonly == None:
print "\n"