[rhmessaging-commits] rhmessaging commits: r1627 - mgmt/cumin/python/cumin.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Wed Jan 30 10:03:19 EST 2008


Author: justi9
Date: 2008-01-30 10:03:19 -0500 (Wed, 30 Jan 2008)
New Revision: 1627

Added:
   mgmt/cumin/python/cumin/action.py
   mgmt/cumin/python/cumin/action.strings
Modified:
   mgmt/cumin/python/cumin/model.py
   mgmt/cumin/python/cumin/page.py
Log:
Adds an actions UI tab.  Enhances the UI metadata to describe action
items.



Added: mgmt/cumin/python/cumin/action.py
===================================================================
--- mgmt/cumin/python/cumin/action.py	                        (rev 0)
+++ mgmt/cumin/python/cumin/action.py	2008-01-30 15:03:19 UTC (rev 1627)
@@ -0,0 +1,44 @@
+from wooly import *
+from wooly.tables import *
+
+from util import *
+from formats import *
+
+strings = StringCatalog(__file__)
+
+class ActionInvocationSet(ItemTable):
+    def __init__(self, app, name):
+        super(ActionInvocationSet, self).__init__(app, name)
+
+        col = self.DescriptionColumn(app, "desc")
+        self.add_column(col)
+
+        col = self.WhenColumn(app, "when")
+        self.add_column(col)
+
+        col = self.StatusColumn(app, "status")
+        self.add_column(col)
+
+    class DescriptionColumn(ItemTableColumn):
+        def get_title(self, session, object):
+            return "Description"
+
+        def render_content(self, session, item):
+            return item.get_description(session)
+
+    class WhenColumn(ItemTableColumn):
+        def get_title(self, session, object):
+            return "When"
+
+        def render_content(self, session, item):
+            return fmt_datetime(item.when)
+
+    class StatusColumn(ItemTableColumn):
+        def get_title(self, session, object):
+            return "Status"
+
+        def render_content(self, session, item):
+            return item.status
+
+    def do_get_items(self, session, object):
+        return sorted_by(self.app.model.action_invocations, "when")

Added: mgmt/cumin/python/cumin/action.strings
===================================================================
--- mgmt/cumin/python/cumin/action.strings	                        (rev 0)
+++ mgmt/cumin/python/cumin/action.strings	2008-01-30 15:03:19 UTC (rev 1627)
@@ -0,0 +1,7 @@
+[ActionInvocationSet.html]
+<table class="mobjects">
+  <thead>
+    <tr>{headers}</tr>
+  </thead>
+  <tbody>{items}</tbody>
+</table>

Modified: mgmt/cumin/python/cumin/model.py
===================================================================
--- mgmt/cumin/python/cumin/model.py	2008-01-30 15:02:18 UTC (rev 1626)
+++ mgmt/cumin/python/cumin/model.py	2008-01-30 15:03:19 UTC (rev 1627)
@@ -12,15 +12,14 @@
         self.data = MintModel(data_url)
 
         self.classes = list()
+        self.action_invocations = set()
         
-        self.queue = CuminQueue(self)
-        self.exchange = CuminExchange(self)
-        self.binding = CuminBinding(self)
-        self.client = CuminClient(self)
-        self.session = CuminSession(self)
+        CuminQueue(self)
+        CuminExchange(self)
+        CuminBinding(self)
+        CuminClient(self)
+        CuminSession(self)
 
-        self.action_invocations = set()
-
     def check(self):
         self.data.check()
 
@@ -29,12 +28,14 @@
         
     def add_class(self, cls):
         self.classes.append(cls)
+        setattr(self, cls.name, cls)
 
     def get_class_by_object(self, mint_object):
         for cls in self.classes:
             if cls.mint_class is mint_object.__class__:
                 return cls
 
+    # XXX get rid of this
     def get_class_by_name(self, name):
         for cls in self.classes:
             if cls.name == name:
@@ -66,6 +67,14 @@
         self.actions.append(action)
         setattr(self, action.name, action)
 
+    def get_title(self, session):
+        return "Object"
+
+    def get_object_title(self, session, object):
+        title = self.get_title(session)
+        name = self.get_object_name(object)
+        return "%s '%s'" % (title, name)
+
     def get_object_name(self, object):
         return object.name
 
@@ -100,7 +109,7 @@
         self.cumin_class.add_action(self)
 
     def invoke(self, object):
-        invoc = CuminActionInvocation(self)
+        invoc = CuminActionInvocation(self, object)
 
         def callback(status, args):
             invoc.status = status
@@ -117,14 +126,21 @@
         pass
 
 class CuminActionInvocation(object):
-    def __init__(self, action):
+    def __init__(self, action, object):
         self.action = action
+        self.object = object
         self.when = datetime.now()
-        self.error = None
+        self.status = "pending"
         self.args = None
 
+    def get_description(self, session):
+        action = self.action.get_title(session)
+        cls = self.action.model.get_class_by_object(self.object)
+        name = cls.get_object_title(session, self.object)
+        return "%s %s" % (action, name)
+
     def show(self):
-        print "action", self.action.name, self.when, self.error, self.args
+        print "action", self.action.name, self.when, self.status, self.args
 
 class CuminStat(object):
     def __init__(self, cls, name, type):
@@ -406,6 +422,9 @@
         stat.categories = ("byte", "persistent")
 
         self.Purge(self, "purge")
+
+    def get_title(self, session):
+        return "Queue"
     
     class Purge(CuminAction):
         def get_title(self, session):
@@ -462,6 +481,9 @@
         stat.unit = "message"
         stat.categories = ("general")
 
+    def get_title(self, session):
+        return "Exchange"
+    
 class CuminBinding(CuminClass):
     def __init__(self, model):
         super(CuminBinding, self).__init__(model, "binding", Binding)
@@ -473,6 +495,9 @@
         stat.unit = "message"
         stat.categories = ("general")
 
+    def get_title(self, session):
+        return "Binding"
+    
     def get_object_name(self, binding):
         return ""
 
@@ -504,6 +529,9 @@
 
         self.Close(self, "close")
 
+    def get_title(self, session):
+        return "Client"
+    
     def get_object_name(self, client):
         return client.address
 
@@ -539,6 +567,9 @@
         self.ResetLifespan(self, "resetLifespan")
         self.SolicitAck(self, "solicitAck")
 
+    def get_title(self, session):
+        return "Session"
+    
     class Close(CuminAction):
         def get_title(self, session):
             return "Close"

Modified: mgmt/cumin/python/cumin/page.py
===================================================================
--- mgmt/cumin/python/cumin/page.py	2008-01-30 15:02:18 UTC (rev 1626)
+++ mgmt/cumin/python/cumin/page.py	2008-01-30 15:03:19 UTC (rev 1627)
@@ -6,6 +6,7 @@
 from brokergroup import *
 from brokerprofile import *
 from brokercluster import *
+from action import *
 from widgets import *
 from util import *
 
@@ -164,43 +165,6 @@
         object = frame.get_object(session, self.object.get(session))
         return frame.render_title(session, object)
 
-class ActionInvocationSet(ItemTable):
-    def __init__(self, app, name):
-        super(ActionInvocationSet, self).__init__(app, name)
-
-        col = self.ActionColumn(app, "action")
-        self.add_column(col)
-
-        col = self.WhenColumn(app, "when")
-        self.add_column(col)
-
-        col = self.StatusColumn(app, "status")
-        self.add_column(col)
-
-    class ActionColumn(ItemTableColumn):
-        def get_title(self, session, object):
-            return "Action"
-
-        def render_content(self, session, item):
-            return item.action.name
-
-    class WhenColumn(ItemTableColumn):
-        def get_title(self, session, object):
-            return "When"
-
-        def render_content(self, session, item):
-            return fmt_datetime(item.when)
-
-    class StatusColumn(ItemTableColumn):
-        def get_title(self, session, object):
-            return "Status"
-
-        def render_content(self, session, item):
-            return item.error
-
-    def do_get_items(self, session, object):
-        return sorted_by(self.app.model.action_invocations, "when")
-
 class MainView(TabSet):
     def __init__(self, app, name):
         super(MainView, self).__init__(app, name)




More information about the rhmessaging-commits mailing list