- use plekit tables
[monitor.git] / web / MonitorWeb / monitorweb / controllers.py
index 1c4efe9..68f9d6a 100644 (file)
@@ -8,9 +8,9 @@ import cherrypy
 # log = logging.getLogger("monitorweb.controllers")
 import re
 from monitor.database.info.model import *
-from monitor.database.zabbixapi.model import *
-from monitor.database.dborm import zab_session as session
-from monitor.database.dborm import zab_metadata as metadata
+#from monitor.database.zabbixapi.model import *
+#from monitor.database.dborm import zab_session as session
+#from monitor.database.dborm import zab_metadata as metadata
 from monitor_xmlrpc import MonitorXmlrpcServer
 
 from monitor import reboot
@@ -137,6 +137,8 @@ def prep_node_for_display(node):
                if node.site is None:
                        # TODO: need a cleaner fix for this...
                        node.site = HistorySiteRecord.by_loginbase("pl")
+                        if not node.site:
+                                node.site = HistorySiteRecord.by_loginbase("ple")
                        
 
        node.history = HistoryNodeRecord.by_hostname(node.hostname)
@@ -162,10 +164,10 @@ 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)
 
@@ -180,7 +182,8 @@ class Root(controllers.RootController, MonitorXmlrpcServer):
                        # NOTE: reformat some fields.
                        prep_node_for_display(node)
 
-                       node.history.status
+                       #node.history.status
+                       print node.hostname
 
                        if node.history.status in ['down', 'offline']:
                                if node.plc_node_stats and node.plc_node_stats['last_contact'] != None:
@@ -192,7 +195,11 @@ class Root(controllers.RootController, MonitorXmlrpcServer):
                        elif node.history.status in ['debug', 'monitordebug']:
                                filtercount['debug'] += 1
                        else:
-                               filtercount[node.history.status] += 1
+                                # TODO: need a better fix. filtercount
+                                # doesn't maps to GetBootStates() on
+                                # 4.3 so this one fails quite often.
+                                if filtercount.has_key(node.history.status):
+                                        filtercount[node.history.status] += 1
                                
                        ## NOTE: count filters
                        #if node.observed_status != 'DOWN':
@@ -315,7 +322,9 @@ class Root(controllers.RootController, MonitorXmlrpcServer):
        @exception_handler(nodeaction_handler,"isinstance(tg_exceptions,RuntimeError)")
        def pcuview(self, loginbase=None, pcuid=None, hostname=None, **data):
                print "PCUVIEW------------------"
-               session.clear()
+               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=[]
@@ -333,7 +342,7 @@ class Root(controllers.RootController, MonitorXmlrpcServer):
 
                if loginbase:
                        actions = ActionRecord.query.filter_by(loginbase=loginbase
-                                                       ).filter(ActionRecord.date_created >= datetime.now() - timedelta(7)
+                                                       ).filter(ActionRecord.date_created >= datetime.now() - timedelta(14)
                                                        ).order_by(ActionRecord.date_created.desc())
                        actions = [ a for a in actions ]
                        sitequery = [HistorySiteRecord.by_loginbase(loginbase)]
@@ -387,13 +396,21 @@ class Root(controllers.RootController, MonitorXmlrpcServer):
        def nodehistory(self, hostname=None):
                query = []
                if hostname:
-                       fbnode = FindbadNodeRecord.get_by(hostname=hostname)
-                       # TODO: add links for earlier history if desired.
+                       #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()
                        for node in l:
-                               prep_node_for_display(node)
+                               #prep_node_for_display(node)
                                query.append(node)
+
                return dict(query=query, hostname=hostname)
 
        @expose(template="monitorweb.templates.sitehistory")