Merge branch 'master' of ssh://git.planet-lab.org/git/monitor
authorStephen Soltesz <soltesz@cs.princeton.edu>
Thu, 6 Oct 2011 23:32:04 +0000 (19:32 -0400)
committerStephen Soltesz <soltesz@cs.princeton.edu>
Thu, 6 Oct 2011 23:32:04 +0000 (19:32 -0400)
1  2 
web/MonitorWeb/monitorweb/controllers.py

@@@ -12,6 -12,7 +12,7 @@@ from monitor.database.info.model impor
  #from monitor.database.zabbixapi.model import *
  from monitor_xmlrpc import MonitorXmlrpcServer
  from controllers_local import LocalExtensions
+ from pcucontrol.reboot import pcu_name
  
  from monitor import util
  from monitor import reboot
@@@ -24,13 -25,6 +25,13 @@@ from monitor.wrapper.plccache import pl
  
  from monitorweb.templates.links import *
  
 +def session_clear_all():
 +    session.flush()
 +    try: 
 +        session.expunge_all() 
 +    except AttributeError: # SQLAlchemy < 0.5.1 
 +        session.clear() 
 +
  class ObjectQueryFields(widgets.WidgetsList):
        """The WidgetsList defines the fields of the form."""
        pass
@@@ -155,7 -149,7 +156,7 @@@ def format_ports(data, pcumodel=None)
  def format_pcu_shortstatus(pcu):
        status = "error"
        if pcu:
-               if pcu.reboot_trial_status == str(0):
+               if pcu.reboot_trial_status == str(0) or pcu.reboot_trial_status == "Test: No error":
                        status = "Ok"
                elif pcu.reboot_trial_status == "NetDown" or pcu.reboot_trial_status == "Not_Run":
                        status = pcu.reboot_trial_status
@@@ -177,6 -171,7 +178,7 @@@ def prep_pcu_for_display(pcu)
  
        agg.ports = format_ports(pcu.port_status, pcu.plc_pcu_stats['model'])
        agg.status = format_pcu_shortstatus(pcu)
+       agg.pcu_name = pcu_name(pcu.plc_pcu_stats)
  
        #print pcu.entry_complete
        agg.entry_complete_str = pcu.entry_complete
@@@ -394,7 -389,7 +396,7 @@@ class Root(controllers.RootController, 
        def nodeslow(self, filter='boot'):
                print "NODE------------------"
                print "befor-len: ", len( [ i for i in session] )
 -              session.flush(); session.clear()
 +        session_clear_all()
                print "after-len: ", len( [ i for i in session] )
                fbquery = FindbadNodeRecord.get_all_latest()
                query = []
  
  
        def pre_view(self, **data):
 -              session.flush(); session.clear()
 +        session_clear_all()
  
                loginbase=None
                loginbase_list=[]
                                for pcuid_key in pcus:
                                        pcuquery += [pcus[pcuid_key]]
  
+               #for a in nodequery:
+               #       print type(a.node)
+               #       print type(a.node.hostname)
+               nodequery.sort(lambda a,b: cmp(a.node.hostname,b.node.hostname))
+               pcuquery.sort(lambda a,b: cmp(a.pcu_name,b.pcu_name))
                actionlist_widget = ActionListWidget(template='monitorweb.templates.actionlist_template')
                return dict(sitequery=sitequery, pcuquery=pcuquery, nodequery=nodequery, actions=actions_list, actionlist_widget=actionlist_widget, since=since, exceptions=exceptions)
  
        @expose(template="monitorweb.templates.pcuview")
        @exception_handler(nodeaction_handler,"isinstance(tg_exceptions,RuntimeError)")
        def pcuviewold(self, loginbase=None, pcuid=None, hostname=None, since=20, **data):
 -              session.flush(); session.clear()
 +        session_clear_all()
                sitequery=[]
                pcuquery=[]
                nodequery=[]
        def pcu(self, filter='all'):
                print "PCUVIEW------------------"
                print "befor-len: ", len( [ i for i in session] )
 -              session.flush(); session.clear()
 +        session_clear_all()
                print "after-len: ", len( [ i for i in session] )
                fbquery = FindbadPCURecord.get_all_latest()
                query = []
        def site(self, filter='all'):
                print "SITE------------------"
                print "befor-len: ", len( [ i for i in session] )
 -              session.flush(); session.clear()
 +        session_clear_all()
                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()