[rhmessaging-commits] rhmessaging commits: r1146 - in mgmt/cumin/python: wooly and 1 other directory.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Tue Oct 23 13:33:50 EDT 2007


Author: justi9
Date: 2007-10-23 13:33:50 -0400 (Tue, 23 Oct 2007)
New Revision: 1146

Modified:
   mgmt/cumin/python/cumin/client.py
   mgmt/cumin/python/cumin/client.strings
   mgmt/cumin/python/cumin/demo.py
   mgmt/cumin/python/cumin/model.py
   mgmt/cumin/python/cumin/queue.strings
   mgmt/cumin/python/cumin/server.strings
   mgmt/cumin/python/wooly/__init__.py
Log:
Fills out the client UI.  Adds sessions to the model and demo data.



Modified: mgmt/cumin/python/cumin/client.py
===================================================================
--- mgmt/cumin/python/cumin/client.py	2007-10-23 15:53:46 UTC (rev 1145)
+++ mgmt/cumin/python/cumin/client.py	2007-10-23 17:33:50 UTC (rev 1146)
@@ -56,8 +56,7 @@
         self.tabs = TabSet(app, "tabs")
         self.add_child(self.tabs)
 
-        self.tabs.add_tab(ClientSessionSet(app, "bindings"))
-        self.tabs.add_tab(ClientStatistics(app, "stats"))
+        self.tabs.add_tab(SessionSet(app, "bindings"))
 
     def render_title(self, session, client):
         return "Client '%s'" % client.address
@@ -65,10 +64,22 @@
     def render_client_address(self, session, client):
         return client.address
 
-class ClientSessionSet(Widget):
+class SessionSet(ItemSet):
     def render_title(self, session, client):
-        return "Sessions"
+        return "Sessions (%i)" % len(client.session_items())
 
-class ClientStatistics(Widget):
-    def render_title(self, session, client):
-        return "Statistics"
+    def get_items(self, session, client):
+        return sorted_by(client.session_items())
+
+    def render_item_name(self, session, session_):
+        return session_.name
+
+    def render_item_status(self, session, session_):
+        result = session_.get_measurement("attached").get_value()
+        return result and "Attached" or "Detached"
+
+    def render_item_remaining_lifespan(self, session, session_):
+        return session_.get_measurement("remainingLifespan").get_value()
+
+    def render_item_frames_outstanding(self, session, session_):
+        return session_.get_measurement("framesOutstanding").get_value()

Modified: mgmt/cumin/python/cumin/client.strings
===================================================================
--- mgmt/cumin/python/cumin/client.strings	2007-10-23 15:53:46 UTC (rev 1145)
+++ mgmt/cumin/python/cumin/client.strings	2007-10-23 17:33:50 UTC (rev 1146)
@@ -1,10 +1,7 @@
 [ClientSet.html]
 <form>
-  <select>
-    <option>Act on Selection...</option>
-    <option>Close Client</option>
-    <option>Detach Client</option>
-  </select>
+  <button>Close Clients</button>
+  <button>Detach Clients</button>
 
   <br/><br/>
 
@@ -56,3 +53,35 @@
 
   {tabs}
 </div>
+
+[SessionSet.html]
+<select>
+  <option>Act on Selection...</option>
+  <option>Solicit Acknowledgment</option>
+  <option>Reset Lifespan</option>
+  <option>Detach Sessions</option>
+  <option>Close Sessions</option>
+</select>
+
+<br/><br/>
+
+<table class="mobjects">
+  <tr>
+    <th><input type="checkbox"/></th>
+    <th>Session</th>
+    <th>Status</th>
+    <th style="text-align: right;">Remaining Lifespan</th>
+    <th style="text-align: right;">Frames Outstanding</th>
+  </tr>
+
+  {items}
+</table>
+
+[SessionSet.item_html]
+<tr>
+  <td><input type="checkbox"/></td>
+  <td>{item_name}</td>
+  <td>{item_status}</td>
+  <td style="text-align: right;">{item_remaining_lifespan}</td>
+  <td style="text-align: right;">{item_frames_outstanding}</td>
+</tr>

Modified: mgmt/cumin/python/cumin/demo.py
===================================================================
--- mgmt/cumin/python/cumin/demo.py	2007-10-23 15:53:46 UTC (rev 1145)
+++ mgmt/cumin/python/cumin/demo.py	2007-10-23 17:33:50 UTC (rev 1146)
@@ -149,6 +149,11 @@
             client.address = "192.168.0.%i:16565" % num
             vhost.add_client(client)
 
+            for session_count in range(10):
+                session = Session(self.model)
+                session.name = fmt("session", session_count)
+                client.add_session(session)
+
     def start_updates(self):
         thread = UpdateThread(self.model)
         thread.start()
@@ -214,6 +219,14 @@
                                 self.frob_measure(measure)
                         finally:
                             client.unlock()
+
+                        for session in client.session_items():
+                            session.lock()
+                            try:
+                                for measure in session.measurements:
+                                    self.frob_measure(measure)
+                            finally:
+                                session.unlock()
                         
 if __name__ == "__main__":
     import sys

Modified: mgmt/cumin/python/cumin/model.py
===================================================================
--- mgmt/cumin/python/cumin/model.py	2007-10-23 15:53:46 UTC (rev 1145)
+++ mgmt/cumin/python/cumin/model.py	2007-10-23 17:33:50 UTC (rev 1146)
@@ -16,6 +16,7 @@
         self.queue = ModelClass(self, "queue")
         self.exchange = ModelClass(self, "exchange")
         self.client = ModelClass(self, "client")
+        self.session = ModelClass(self, "session")
         self.realm = ModelClass(self, "realm")
         self.binding = ModelClass(self, "binding")
 
@@ -76,6 +77,10 @@
         assoc.add_endpoint(self.virtual_host, "client", "0..n")
         assoc.add_endpoint(self.client, "virtual_host", "0..1")
 
+        assoc = ModelAssociation(self, "client_to_sessions")
+        assoc.add_endpoint(self.client, "session", "0..n")
+        assoc.add_endpoint(self.session, "client", "0..1")
+
         assoc = ModelAssociation(self, "virtual_host_to_realms")
         assoc.add_endpoint(self.virtual_host, "realm", "0..n")
         assoc.add_endpoint(self.realm, "virtual_host", "0..1")
@@ -154,6 +159,9 @@
     def get_client(self, id):
         return self.get_index(self.client).get(id)
 
+    def get_session(self, id):
+        return self.get_index(self.session).get(id)
+
     def get_realm(self, id):
         return self.get_index(self.realm).get(id)
 
@@ -647,3 +655,30 @@
             if measure.name == name:
                 return measure
 
+class Session(ModelObject):
+    def __init__(self, model):
+        super(Session, self).__init__(model, model.session)
+
+        self.name = None
+
+        self.measurements = list()
+
+        measure = Measurement("attached", "bool")
+        measure.title = "Attached"
+        measure.categories = ("general")
+        self.measurements.append(measure)
+
+        measure = Measurement("remainingLifespan", "int")
+        measure.title = "Remaining lifespan"
+        measure.categories = ("general")
+        self.measurements.append(measure)
+
+        measure = Measurement("framesOutstanding", "int")
+        measure.title = "Frames outstanding"
+        measure.categories = ("general")
+        self.measurements.append(measure)
+
+    def get_measurement(self, name):
+        for measure in self.measurements:
+            if measure.name == name:
+                return measure

Modified: mgmt/cumin/python/cumin/queue.strings
===================================================================
--- mgmt/cumin/python/cumin/queue.strings	2007-10-23 15:53:46 UTC (rev 1145)
+++ mgmt/cumin/python/cumin/queue.strings	2007-10-23 17:33:50 UTC (rev 1146)
@@ -6,11 +6,8 @@
 }
 
 [QueueSet.html]
-<form>
-  <select>
-    <option>Act on Selection...</option>
-    <option>Purge Messages</option>
-  </select>
+<form action="{href}" method="get">
+  <button type="submit">Purge Messages</button>
 
   <br/><br/>
 

Modified: mgmt/cumin/python/cumin/server.strings
===================================================================
--- mgmt/cumin/python/cumin/server.strings	2007-10-23 15:53:46 UTC (rev 1145)
+++ mgmt/cumin/python/cumin/server.strings	2007-10-23 17:33:50 UTC (rev 1146)
@@ -39,7 +39,7 @@
 
   <table class="mobjects">
     <tr>
-      <th></th>
+      <th><input type="checkbox"/></th>
       <th>Server</th>
       <th>Profile</th>
       <th>Cluster</th>

Modified: mgmt/cumin/python/wooly/__init__.py
===================================================================
--- mgmt/cumin/python/wooly/__init__.py	2007-10-23 15:53:46 UTC (rev 1145)
+++ mgmt/cumin/python/wooly/__init__.py	2007-10-23 17:33:50 UTC (rev 1146)
@@ -155,7 +155,7 @@
         return None
 
     def render_href(self, session, object):
-        return None
+        return session.marshal()
 
     def render_title(self, session, object):
         return None




More information about the rhmessaging-commits mailing list