[rhmessaging-commits] rhmessaging commits: r2683 - mgmt/trunk/cumin/python/cumin.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Fri Oct 24 11:37:34 EDT 2008


Author: eallen
Date: 2008-10-24 11:37:34 -0400 (Fri, 24 Oct 2008)
New Revision: 2683

Modified:
   mgmt/trunk/cumin/python/cumin/model.py
Log:
Dead code removal.
Better detection of errors when getting limits.
Rename of cumin_model to model for master start/stop actions

Modified: mgmt/trunk/cumin/python/cumin/model.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/model.py	2008-10-24 15:35:26 UTC (rev 2682)
+++ mgmt/trunk/cumin/python/cumin/model.py	2008-10-24 15:37:34 UTC (rev 2683)
@@ -591,13 +591,13 @@
         def do_invoke(self, object, args, completion):
             system_name = object.System
             master = Master.select("System = '%s'" % system_name)[0]
-            master.Start(self.cumin_model.data, completion, args["subsystem"])
+            master.Start(self.model.data, completion, args["subsystem"])
         
     class Stop(CuminAction):
         def do_invoke(self, object, args, completion):
             system_name = object.System
             master = Master.select("System = '%s'" % system_name)[0]
-            master.Stop(self.cumin_model.data, completion, args["subsystem"])
+            master.Stop(self.model.data, completion, args["subsystem"])
         
 class CuminBroker(RemoteClass):
     def __init__(self, model):
@@ -2152,6 +2152,25 @@
             Value = args[1]
             job.SetAttribute(self.model.data, completion, Name, str(Value))
 
+class GetStartedAction(CuminAction):
+    def do_invoke(self, object):
+        confidence = self.started_confidence(object)
+        recTime = object.statsCurr and object.statsCurr.recTime or object.recTime
+        conf = "<confidence>%d</confidence>" % confidence
+        rect = "<rectime>%s</rectime>" % fmt_datetime(recTime)
+
+        return "%s%s" % (conf, rect)
+    
+    def started_confidence(self, object):
+        value = object.statsCurr and object.statsCurr.recTime or object.recTime
+        age = datetime.now() - value
+        # 100% at now
+        # 0% at 10 min
+        confidence = float(600 - age.seconds) / 6.0
+        if confidence < 0:
+            confidence = 0
+        return confidence 
+    
 class CuminScheduler(RemoteClass):
     def __init__(self, model):
         super(CuminScheduler, self).__init__(model, "scheduler",
@@ -2200,6 +2219,9 @@
         action = self.Stop(self, "stop")
         action.summary = True
 
+        action = GetStartedAction(self, "GetStarted")
+        action.navigable = False
+
     def init(self):
         self.frame = self.model.frame.pool.scheduler
         
@@ -2218,10 +2240,6 @@
         def get_title(self, session):
             return "Start"
 
-        # the actual start/stop is done my master
-        def do_invoke(self, scheduler, args, completion):
-            pass
-        
     class Stop(CuminAction):
         def show(self, session, sched):
             frame = self.model.frame.pool.show_scheds_stop(session)
@@ -2231,10 +2249,6 @@
         def get_title(self, session):
             return "Stop"
 
-        # the actual start/stop is done my master
-        def do_invoke(self, scheduler, args, completion):
-            pass
-        
 class CuminSubmitter(RemoteClass):
     def __init__(self, model):
         super(CuminSubmitter, self).__init__(model, "submitter",
@@ -2287,6 +2301,9 @@
         action = self.Stop(self, "stop")
         action.summary = True
 
+        action = GetStartedAction(self, "GetStarted")
+        action.navigable = False
+
     def init(self):
         self.frame = self.model.frame.pool.collector
         
@@ -2306,10 +2323,6 @@
         def get_title(self, session):
             return "Start"
 
-        # the actual start/stop is done my master
-        def do_invoke(self, collector, args, completion):
-            pass
-        
     class Stop(CuminAction):
         def show(self, session, collector):
             frame = self.model.frame.pool.show_colls_stop(session)
@@ -2320,10 +2333,6 @@
         def get_title(self, session):
             return "Stop"
 
-        # the actual start/stop is done my master
-        def do_invoke(self, collector, args, completion):
-            pass
-        
 class CuminNegotiator(RemoteClass):
     def __init__(self, model):
         super(CuminNegotiator, self).__init__(model, "negotiator",
@@ -2361,10 +2370,6 @@
         stat.title = "Resident Set Size"
         stat.category = "general"
 
-#        stat = CuminStat(self, "MonitorSelfTime")
-#        stat.title = "Time"
-#        stat.category = "general"
-
         action = self.Start(self, "start")
         action.summary = True
         
@@ -2395,10 +2400,6 @@
         def get_title(self, session):
             return "Start"
 
-        # the actual start/stop is done my master
-        def do_invoke(self, negotiator, args, completion):
-            pass
-        
     class Stop(CuminAction):
         def show(self, session, neg):
             frame = self.model.frame.pool.show_negs_stop(session)
@@ -2408,15 +2409,19 @@
         def get_title(self, session):
             return "Stop"
 
-        # the actual start/stop is done my master
-        def do_invoke(self, negotiator, args, completion):
-            pass
-
     class GetLimitCount(CuminAction):
         def do_invoke(self, negotiator):
             action = self.model.negotiator.GetLimits
             limits = action.do_invoke(negotiator)
-            return "<count value=\"%i\" />" % len(limits)
+            error = "False"
+            if "timeout" in limits:
+                val = 0
+                error = "True"
+            else:
+                val = len(limits)
+            err = "<error value=\"%s\" />" % error
+            count = "<count value=\"%i\" />" % val
+            return "%s%s" % (count, err)
 
     class GetLimits(CuminAction):
         def do_invoke(self, negotiator):
@@ -2437,6 +2442,8 @@
             
             # wait for up to 5 seconds for completion to be called
             wait(predicate, timeout=5)
+            if not self.got_data:
+                self.lim["timeout"] = True
             return self.lim
 
 class ModelPage(Page):




More information about the rhmessaging-commits mailing list