added httpd/conf.d/monitorweb.conf to /etc/plc.d/monitor.init
[monitor.git] / web / MonitorWeb / monitorweb / controllers.py
index d4553dc..db3fbd8 100644 (file)
@@ -5,13 +5,18 @@ from turbogears import controllers, expose, flash
 # log = logging.getLogger("monitorweb.controllers")
 from monitor.database.info.model import *
 from pcucontrol import reboot
+from monitor.wrapper.plccache import plcdb_id2lb as site_id2lb
 
 def format_ports(pcu):
        retval = []
        if pcu.port_status and len(pcu.port_status.keys()) > 0 :
                obj = reboot.model_to_object(pcu.plc_pcu_stats['model'])
                for port in obj.supported_ports:
-                       state = pcu.port_status[str(port)]
+                       try:
+                               state = pcu.port_status[str(port)]
+                       except:
+                               state = "unknown"
+                               
                        retval.append( (port, state) )
 
        if retval == []: 
@@ -45,6 +50,7 @@ class Root(controllers.RootController):
                query = []
                filtercount = {'DOWN' : 0, 'BOOT': 0, 'DEBUG' : 0, 'neverboot' : 0, 'pending' : 0, 'all' : 0}
                for node in fbquery:
+                       # NOTE: reformat some fields.
                        if node.plc_pcuid:
                                pcu = FindbadPCURecord.get_latest_by(plc_pcuid=node.plc_pcuid).first()
                                if pcu:
@@ -62,6 +68,11 @@ class Root(controllers.RootController):
                        else:
                                node.kernel = ""
 
+                       try:
+                               node.loginbase = site_id2lb[node.plc_node_stats['site_id']]
+                       except:
+                               node.loginbase = "unknown"
+
 
                        # NOTE: count filters
                        if node.observed_status != 'DOWN':
@@ -106,6 +117,11 @@ class Root(controllers.RootController):
                        else:
                                filtercount['pending'] += 1
                                
+                       try:
+                               node.loginbase = site_id2lb[node.plc_pcu_stats['site_id']]
+                       except:
+                               node.loginbase = "unknown"
+
                        node.ports = format_ports(node)
                        node.status = format_pcu_shortstatus(node)