From: Stephen Soltesz Date: Fri, 26 Jun 2009 23:40:44 +0000 (+0000) Subject: add a link to both types of node history, status and data X-Git-Tag: Monitor-3.0-18~8 X-Git-Url: http://git.onelab.eu/?p=monitor.git;a=commitdiff_plain;h=71a60ab5d0fe772616f3520e3161bf602f8d5963 add a link to both types of node history, status and data add a quick search at the top of sitemenu for hostnames and loginbases --- diff --git a/web/MonitorWeb/monitorweb/controllers.py b/web/MonitorWeb/monitorweb/controllers.py index 60bdbcc..5fe87b1 100644 --- a/web/MonitorWeb/monitorweb/controllers.py +++ b/web/MonitorWeb/monitorweb/controllers.py @@ -108,11 +108,11 @@ def prep_pcu_for_display(pcu): class NodeWidget(widgets.Widget): pass -def prep_node_for_display(node, pcuhash=None): +def prep_node_for_display(node, pcuhash=None, preppcu=True, asofdate=None): agg = aggregate() agg.node = node - if node.plc_pcuid: + if node.plc_pcuid and preppcu: if pcuhash: pcu = pcuhash[node.plc_pcuid] else: @@ -145,6 +145,10 @@ def prep_node_for_display(node, pcuhash=None): if agg.loginbase: agg.site = HistorySiteRecord.by_loginbase(agg.loginbase) + + if asofdate: + agg.site = agg.site.get_as_of(asofdate) + if agg.site is None: # TODO: need a cleaner fix for this... agg.site = HistorySiteRecord.by_loginbase("pl") @@ -152,6 +156,8 @@ def prep_node_for_display(node, pcuhash=None): agg.site = HistorySiteRecord.by_loginbase("ple") agg.history = HistoryNodeRecord.by_hostname(node.hostname) + if asofdate: + agg.history = agg.history.get_as_of(asofdate) agg.ports = format_ports(node.port_status) @@ -172,29 +178,46 @@ class Root(controllers.RootController, MonitorXmlrpcServer): return dict(now=time.ctime()) @expose(template="monitorweb.templates.nodelist") - def node2(self, filter='boot'): - - fbquery = FindbadNodeRecord.get_all_latest() - fbpcus = FindbadPCURecord.get_all_latest() - def fbtohash(fbpculist): - h = {} - for p in fbpculist: - h[p.plc_pcuid] = p - - pcuhash = fbtohash(fbpcus) - + def node2(self, filter=None): + nhquery = HistoryNodeRecord.query.all() query = [] - for node in fbquery: - # NOTE: reformat some fields. - agg = prep_node_for_display(node, pcuhash) - - if not agg.history: - continue - - query.append(agg) + for nh in nhquery: + if filter: + if nh.status == filter: + query.append(nh) + else: + query.append(nh) + + rquery=[] + for q in query: + fb = FindbadNodeRecord.get_latest_by(hostname=q.hostname) + agg = prep_node_for_display(fb) + rquery.append(agg) + + #fbquery = FindbadNodeRecord.get_all_latest() + #fbpcus = FindbadPCURecord.get_all_latest() + #def fbtohash(fbpculist): + # h = {} + # for p in fbpculist: + # h[p.plc_pcuid] = p +# +# pcuhash = fbtohash(fbpcus) + +# query = [] +# for node in fbquery: +# # NOTE: reformat some fields. +# agg = prep_node_for_display(node, pcuhash) +# if not agg.history: +# continue +# +# if filter: +# if agg.history.status == filter: +# query.append(agg) +# else: +# query.append(agg) widget = NodeWidget(template='monitorweb.templates.node_template') - return dict(now=time.ctime(), query=query, nodewidget=widget) + return dict(now=time.ctime(), query=rquery, nodewidget=widget) @expose(template="monitorweb.templates.nodelist") def node(self, filter='boot'): @@ -314,10 +337,7 @@ class Root(controllers.RootController, MonitorXmlrpcServer): @expose(template="monitorweb.templates.pcuview") @exception_handler(nodeaction_handler,"isinstance(tg_exceptions,RuntimeError)") def pcuview(self, loginbase=None, pcuid=None, hostname=None, since=20, **data): - print "PCUVIEW------------------" - print "befor-len: ", len( [ i for i in session] ) session.flush(); session.clear() - print "after-len: ", len( [ i for i in session] ) sitequery=[] pcuquery=[] nodequery=[] @@ -336,6 +356,11 @@ class Root(controllers.RootController, MonitorXmlrpcServer): if 'exceptions' in data: exceptions = data['exceptions'] + if 'query' in data: + obj = data['query'] + if len(obj.split(".")) > 1: hostname = obj + else: loginbase=obj + if pcuid: print "pcuid: %s" % pcuid pcu = FindbadPCURecord.get_latest_by(plc_pcuid=pcuid) @@ -379,18 +404,26 @@ class Root(controllers.RootController, MonitorXmlrpcServer): return dict(query=query, pcu_id=pcu_id) + @expose(template="monitorweb.templates.nodescanhistory") + def nodescanhistory(self, hostname=None, length=10): + try: length = int(length) + except: length = 10 + + fbnode = FindbadNodeRecord.get_by(hostname=hostname) + # TODO: add links for earlier history if desired. + l = fbnode.versions[-length:] + l.reverse() + query=[] + for node in l: + agg = prep_node_for_display(node, pcuhash=None, preppcu=False, asofdate=node.timestamp) + query.append(agg) + + return dict(query=query, hostname=hostname) + @expose(template="monitorweb.templates.nodehistory") def nodehistory(self, hostname=None): query = [] if hostname: - #fbnode = FindbadNodeRecord.get_by(hostname=hostname) - ## TODO: add links for earlier history if desired. - #l = fbnode.versions[-100:] - #l.reverse() - #for node in l: - # prep_node_for_display(node) - # query.append(node) - fbnode = HistoryNodeRecord.get_by(hostname=hostname) l = fbnode.versions[-100:] l.reverse() diff --git a/web/MonitorWeb/monitorweb/templates/nodescanhistory.kid b/web/MonitorWeb/monitorweb/templates/nodescanhistory.kid new file mode 100644 index 0000000..7e99d9d --- /dev/null +++ b/web/MonitorWeb/monitorweb/templates/nodescanhistory.kid @@ -0,0 +1,76 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + reset visible size +
+
Date CheckedHostnamePingSSHStatkernelBootCDLast_contact
date_checked + your.host.orgpingsshboot
+ +
+ + diff --git a/web/MonitorWeb/monitorweb/templates/pcuview.kid b/web/MonitorWeb/monitorweb/templates/pcuview.kid index 685f18c..9390bb4 100644 --- a/web/MonitorWeb/monitorweb/templates/pcuview.kid +++ b/web/MonitorWeb/monitorweb/templates/pcuview.kid @@ -143,7 +143,7 @@ from links import * - History + History (scan) Hostname last_contact (cached) last_checked @@ -156,7 +156,8 @@ from links import * - history + status + (scan) history ${agg.node.hostname} diff --git a/web/MonitorWeb/monitorweb/templates/sitemenu.kid b/web/MonitorWeb/monitorweb/templates/sitemenu.kid index 9479293..0d0f5c6 100644 --- a/web/MonitorWeb/monitorweb/templates/sitemenu.kid +++ b/web/MonitorWeb/monitorweb/templates/sitemenu.kid @@ -26,9 +26,20 @@ - - + + + + - +
+
+ + + + + +
Quick Search:
+
+
@@ -50,7 +61,7 @@
diff --git a/web/MonitorWeb/monitorweb/templates/summary.kid b/web/MonitorWeb/monitorweb/templates/summary.kid index 27b888c..e3f7d5f 100644 --- a/web/MonitorWeb/monitorweb/templates/summary.kid +++ b/web/MonitorWeb/monitorweb/templates/summary.kid @@ -26,7 +26,10 @@ from links import * - + + +
+