X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=web%2FMonitorWeb%2Fmonitorweb%2Fcontrollers.py;h=aad1f21dffe68bbe950cbbcf81cbd3db4f7c26a8;hb=3f4df5945bbfb4592a164d929cf22c31d5fba50e;hp=45c2a08f354c743a17b7cb5b891faf9671abc10a;hpb=7039d7162f228e4c2312c0dd144c493337c0602e;p=monitor.git diff --git a/web/MonitorWeb/monitorweb/controllers.py b/web/MonitorWeb/monitorweb/controllers.py index 45c2a08..aad1f21 100644 --- a/web/MonitorWeb/monitorweb/controllers.py +++ b/web/MonitorWeb/monitorweb/controllers.py @@ -15,10 +15,9 @@ from monitor_xmlrpc import MonitorXmlrpcServer from monitor import reboot from monitor import scanapi +import time -from monitor.wrapper.plccache import plcdb_id2lb as site_id2lb from monitor.wrapper.plccache import plcdb_hn2lb as site_hn2lb -from monitor.wrapper.plccache import plcdb_lb2hn as site_lb2hn from monitorweb.templates.links import * @@ -79,7 +78,7 @@ def format_pcu_shortstatus(pcu): def prep_pcu_for_display(pcu): try: - pcu.loginbase = site_id2lb[pcu.plc_pcu_stats['site_id']] + pcu.loginbase = PlcSite.query.get(pcu.plc_pcu_stats['site_id']).plc_site_stats['login_base'] except: pcu.loginbase = "unknown" @@ -128,7 +127,7 @@ def prep_node_for_display(node): node.kernel = "" try: - node.loginbase = site_id2lb[node.plc_node_stats['site_id']] + node.loginbase = PlcSite.query.get(node.plc_node_stats['site_id']).plc_site_stats['login_base'] except: node.loginbase = "unknown" @@ -155,7 +154,6 @@ def prep_node_for_display(node): class Root(controllers.RootController, MonitorXmlrpcServer): @expose(template="monitorweb.templates.welcome") def index(self): - import time # log.debug("Happy TurboGears Controller Responding For Duty") flash("Your application is now running") return dict(now=time.ctime()) @@ -164,16 +162,19 @@ class Root(controllers.RootController, MonitorXmlrpcServer): def nodeview(self, hostname=None): nodequery=[] if hostname: - for node in FindbadNodeRecord.get_latest_by(hostname=hostname): - # NOTE: reformat some fields. - prep_node_for_display(node) - nodequery += [node] + node = FindbadNodeRecord.get_latest_by(hostname=hostname) + # NOTE: reformat some fields. + prep_node_for_display(node) + nodequery += [node] return self.pcuview(None, None, hostname) # dict(nodequery=nodequery) @expose(template="monitorweb.templates.nodelist") def node(self, filter='boot'): - import time + print "NODE------------------" + print "befor-len: ", len( [ i for i in session] ) + session.flush(); session.clear() + print "after-len: ", len( [ i for i in session] ) fbquery = FindbadNodeRecord.get_all_latest() query = [] filtercount = {'down' : 0, 'boot': 0, 'debug' : 0, 'diagnose' : 0, 'disabled': 0, @@ -183,7 +184,10 @@ class Root(controllers.RootController, MonitorXmlrpcServer): prep_node_for_display(node) #node.history.status - print node.hostname + #print node.hostname + + if not node.history: + continue if node.history.status in ['down', 'offline']: if node.plc_node_stats and node.plc_node_stats['last_contact'] != None: @@ -201,22 +205,6 @@ class Root(controllers.RootController, MonitorXmlrpcServer): if filtercount.has_key(node.history.status): filtercount[node.history.status] += 1 - ## NOTE: count filters - #if node.observed_status != 'DOWN': - # print node.hostname, node.observed_status - # if node.observed_status == 'DEBUG': - # if node.plc_node_stats['boot_state'] in ['debug', 'diagnose', 'disabled']: - # filtercount[node.plc_node_stats['boot_state']] += 1 - # else: - # filtercount['debug'] += 1 - # - # else: - # filtercount[node.observed_status] += 1 - #else: - # if node.plc_node_stats and node.plc_node_stats['last_contact'] != None: - # filtercount[node.observed_status] += 1 - # else: - # filtercount['neverboot'] += 1 # NOTE: apply filter if filter == "neverboot": @@ -229,22 +217,6 @@ class Root(controllers.RootController, MonitorXmlrpcServer): elif filter == 'boot': query.append(node) - #if filter == node.observed_status: - # if filter == "DOWN": - # if node.plc_node_stats['last_contact'] != None: - # query.append(node) - # else: - # query.append(node) - #elif filter == "neverboot": - # if not node.plc_node_stats or node.plc_node_stats['last_contact'] == None: - # query.append(node) - #elif filter == "pending": - # # TODO: look in message logs... - # pass - #elif filter == node.plc_node_stats['boot_state']: - # query.append(node) - #elif filter == "all": - # query.append(node) widget = NodeWidget(template='monitorweb.templates.node_template') return dict(now=time.ctime(), query=query, fc=filtercount, nodewidget=widget) @@ -347,8 +319,7 @@ class Root(controllers.RootController, MonitorXmlrpcServer): actions = [ a for a in actions ] sitequery = [HistorySiteRecord.by_loginbase(loginbase)] pcus = {} - for plcnode in site_lb2hn[loginbase]: - node = FindbadNodeRecord.get_latest_by(hostname=plcnode['hostname']) + for node in FindbadNodeRecord.query.filter_by(loginbase=loginbase): # NOTE: reformat some fields. prep_node_for_display(node) nodequery += [node] @@ -392,6 +363,19 @@ class Root(controllers.RootController, MonitorXmlrpcServer): return dict(sitequery=sitequery, pcuquery=pcuquery, nodequery=nodequery, actions=actions, exceptions=exceptions) + @expose(template="monitorweb.templates.pcuhistory") + def pcuhistory(self, pcu_id=None): + query = [] + if pcu_id: + fbnode = HistoryPCURecord.get_by(plc_pcuid=pcu_id) + l = fbnode.versions[-100:] + l.reverse() + for pcu in l: + #prep_node_for_display(node) + query.append(pcu) + + return dict(query=query, pcu_id=pcu_id) + @expose(template="monitorweb.templates.nodehistory") def nodehistory(self, hostname=None): query = [] @@ -428,7 +412,10 @@ class Root(controllers.RootController, MonitorXmlrpcServer): @expose(template="monitorweb.templates.pculist") def pcu(self, filter='all'): - import time + print "PCUVIEW------------------" + print "befor-len: ", len( [ i for i in session] ) + session.flush(); session.clear() + print "after-len: ", len( [ i for i in session] ) fbquery = FindbadPCURecord.get_all_latest() query = [] filtercount = {'ok' : 0, 'NetDown': 0, 'Not_Run' : 0, 'pending' : 0, 'all' : 0} @@ -466,15 +453,18 @@ class Root(controllers.RootController, MonitorXmlrpcServer): # get site query sitequery = [HistorySiteRecord.by_loginbase(loginbase)] nodequery = [] - for plcnode in site_lb2hn[loginbase]: - for node in FindbadNodeRecord.get_latest_by(hostname=plcnode['hostname']): - # NOTE: reformat some fields. - prep_node_for_display(node) - nodequery += [node] + for node in FindbadNodeRecord.query.filter_by(loginbase=loginbase): + # NOTE: reformat some fields. + prep_node_for_display(node) + nodequery += [node] return dict(sitequery=sitequery, nodequery=nodequery, fc={}) @expose(template="monitorweb.templates.sitelist") def site(self, filter='all'): + print "SITE------------------" + print "befor-len: ", len( [ i for i in session] ) + session.flush(); session.clear() + print "after-len: ", len( [ i for i in session] ) filtercount = {'good' : 0, 'down': 0, 'online':0, 'offline' : 0, 'new' : 0, 'pending' : 0, 'all' : 0} fbquery = HistorySiteRecord.query.all() query = []