From 5dad438904d7941b114c74d3da6c65106b6f8af8 Mon Sep 17 00:00:00 2001 From: Stephen Soltesz Date: Wed, 24 Sep 2008 16:04:35 +0000 Subject: [PATCH] --- www/gadgets/gadget.php | 91 +++++++++++++++++++++++ www/gadgets/gadget.xml | 16 ++++ www/gadgets/regions.xml | 16 ++++ www/gadgets/sitemonitor.py | 143 ++++++++++++++++++++++++++++++++++++ www/gadgets/sitemonitor.xml | 22 ++++++ 5 files changed, 288 insertions(+) create mode 100644 www/gadgets/gadget.php create mode 100644 www/gadgets/gadget.xml create mode 100644 www/gadgets/regions.xml create mode 100755 www/gadgets/sitemonitor.py create mode 100644 www/gadgets/sitemonitor.xml diff --git a/www/gadgets/gadget.php b/www/gadgets/gadget.php new file mode 100644 index 0000000..391bab7 --- /dev/null +++ b/www/gadgets/gadget.php @@ -0,0 +1,91 @@ +0||sshstatus<0"); +#$unknown = abs($not_alive - $nossh); +#$time = date("D M j G:i:s"); +#$monday_csv_list= trim(file_get_contents("monday.txt")); +#$monday_array = split(",", $monday_csv_list); + +$bad_csv_list= trim(file_get_contents("badcsv.txt")); +$sarray = split(",", $bad_csv_list); # split on comma + +$alpha_running = $sarray[0]; +$prod_running = $sarray[1]; +$oldboot_running = $sarray[2]; +$alpha_debug = $sarray[3]; + +$prod_debug = $sarray[4]; +$oldboot_debug = $sarray[5]; +$down = $sarray[6]; +#$prod_since_monday = $alpha_running - $monday_array[0]; +#$oldboot_since_monday = $monday_array[1] - $oldboot_running; +$monitor_total = $prod_running + $prod_debug + $down +$oldboot_running + $oldboot_debug + $alpha_running + $alpha_debug; +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MONITORBootDebugDown
Production 4.2
Production 4.1----
Old BootCD--
Sums--
+Direct Link +
diff --git a/www/gadgets/gadget.xml b/www/gadgets/gadget.xml new file mode 100644 index 0000000..d860f0c --- /dev/null +++ b/www/gadgets/gadget.xml @@ -0,0 +1,16 @@ + + + + + + + +]]> + diff --git a/www/gadgets/regions.xml b/www/gadgets/regions.xml new file mode 100644 index 0000000..580207f --- /dev/null +++ b/www/gadgets/regions.xml @@ -0,0 +1,16 @@ + + + + + + + +]]> + diff --git a/www/gadgets/sitemonitor.py b/www/gadgets/sitemonitor.py new file mode 100755 index 0000000..e92a9cc --- /dev/null +++ b/www/gadgets/sitemonitor.py @@ -0,0 +1,143 @@ +#!/usr/bin/python + +import cgi +import cgitb +cgitb.enable() +print "Content-Type: text/html\r\n" + +import time +from unified_model import * +from monitor import database +from HyperText.HTML import A, BR, IMG, TABLE, TR, TH, TD, EM, quote_body, CENTER +from HyperText.Documents import Document + +form = cgi.FieldStorage() + +print """ + +""" + +def get(fb, path): + indexes = path.split("/") + values = fb + for index in indexes: + if index in values: + values = values[index] + else: + return None + return values + +def diff_time(timestamp, abstime=True): + import math + now = time.time() + if timestamp == None: + return "unknown" + if abstime: + diff = now - timestamp + else: + diff = timestamp + # return the number of seconds as a difference from current time. + t_str = "" + if diff < 60: # sec in min. + t = diff / 1 + t_str = "%s sec ago" % int(math.ceil(t)) + elif diff < 60*60: # sec in hour + t = diff / (60) + t_str = "%s min ago" % int(math.ceil(t)) + elif diff < 60*60*24: # sec in day + t = diff / (60*60) + t_str = "%s hrs ago" % int(math.ceil(t)) + elif diff < 60*60*24*14: # sec in week + t = diff / (60*60*24) + t_str = "%s days ago" % int(math.ceil(t)) + elif diff <= 60*60*24*30: # approx sec in month + t = diff / (60*60*24*7) + t_str = "%s weeks ago" % int(math.ceil(t)) + elif diff > 60*60*24*30: # approx sec in month + t = diff / (60*60*24*30) + t_str = "%s months ago" % int(t) + return t_str + +def get_value(val): + + if form.has_key(val): + retvalue = form.getvalue(val) + else: + retvalue = None + + return retvalue + +def state_to_color(state): + if state == "BOOT": + return "darkseagreen" + elif state == "DEBUG": + return "gold" + elif state == "DOWN": + return "indianred" + else: + return "lightgrey" + +def main(): + + if form.has_key('loginbase'): + loginbase = form.getvalue('loginbase') + else: + loginbase = "undefined" + + fb = database.dbLoad("findbad") + lb2hn = database.dbLoad("plcdb_lb2hn") + pf = database.dbLoad("node_persistflags") + + # SETUP header + t = TABLE(border="0", cellspacing="0", cellpadding="0") + r = TR() + + if loginbase not in lb2hn: + value = ("Select 'Edit settings' to enter your Site's loginbase.", "") + r = TR(TD(value[0])) + t.append(r) + else: + for value in ['Hostname', 'Since']: + r.append(TH(value)) + t.append(r) + nodes = lb2hn[loginbase] + hostnames = [ n['hostname'] for n in nodes ] + hostnames.sort() + + for host in hostnames: + r = TR() + color = state_to_color(fb['nodes'][host]['values']['state']) + url = 'http://www.planet-lab.org/db/nodes/index.php?nodepattern=%s' % host + td = TD(A(host, target='_blank', href=url), bgcolor=color) + r.append(td) + lc = pf[host].last_changed + td = TD(diff_time(lc)) + r.append(td) + t.append(r) + + #d = Document(t) + print CENTER(t) + +if __name__ == "__main__": + main() diff --git a/www/gadgets/sitemonitor.xml b/www/gadgets/sitemonitor.xml new file mode 100644 index 0000000..4eb2922 --- /dev/null +++ b/www/gadgets/sitemonitor.xml @@ -0,0 +1,22 @@ + + + + + + + + + +]]> + -- 2.47.0