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

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Wed Feb 6 16:42:45 EST 2008


Author: justi9
Date: 2008-02-06 16:42:44 -0500 (Wed, 06 Feb 2008)
New Revision: 1652

Modified:
   mgmt/cumin/python/cumin/broker.py
   mgmt/cumin/python/cumin/broker.strings
   mgmt/cumin/python/cumin/page.strings
Log:
Simplifies the management of the couple and coupled states of brokers
and registrations in the broker frame.

Adds a notice message and logic to reload the page when the broker for
a registration is not available.



Modified: mgmt/cumin/python/cumin/broker.py
===================================================================
--- mgmt/cumin/python/cumin/broker.py	2008-02-06 21:38:19 UTC (rev 1651)
+++ mgmt/cumin/python/cumin/broker.py	2008-02-06 21:42:44 UTC (rev 1652)
@@ -273,14 +273,22 @@
     pass
 
 class BrokerView(CuminView):
+    """
+    Despite the name, this is actually a view of two objects, usually
+    coupled: a BrokerRegistration and a Broker.
+    """
+
     def __init__(self, app, name):
         super(BrokerView, self).__init__(app, name)
 
         self.status = BrokerStatus(app, "status")
         self.add_child(self.status)
 
+        self.body = ModeSet(app, "body")
+        self.add_child(self.body)
+
         self.tabs = TabbedModeSet(app, "tabs")
-        self.add_child(self.tabs)
+        self.body.add_mode(self.tabs)
 
         self.tabs.add_tab(self.BrokerQueueTab(app, "queues"))
         self.tabs.add_tab(self.BrokerExchangeTab(app, "exchanges"))
@@ -290,22 +298,40 @@
         #self.tabs.add_tab(self.BrokerStatsTab(app, "stats"))
         #self.tabs.add_tab(self.BrokerLogTab(app, "log"))
 
+        self.missing = self.BrokerMissing(app, "missing")
+        self.body.add_mode(self.missing)
+
+        self.vhost = Attribute(app, "vhost")
+        self.add_attribute(self.vhost)
+
+    class BrokerMissing(Widget):
+        pass
+
     def show_config(self, session):
         return self.tabs.show_mode(session, self.config)
 
-    def get_title(self, session, broker):
-        return "Broker '%s'" % broker.name
+    def get_title(self, session, reg):
+        return "Broker '%s'" % reg.name
 
+    def do_process(self, session, reg):
+        if reg.broker:
+            vhost = Vhost.selectBy(broker=reg.broker, name="/")[0]
+            self.vhost.set(session, vhost)
+        else:
+            self.body.show_mode(session, self.missing)
+
+        super(BrokerView, self).do_process(session, reg)
+
     def render_data_url(self, session, model):
         return "model.xml"
 
-    def render_address(self, session, broker):
-        return broker.host + (broker.port and ":%i" % broker.port or "")
+    def render_address(self, session, reg):
+        return reg.host + (reg.port and ":%i" % reg.port or "")
 
-    def render_group_links(self, session, broker):
+    def render_group_links(self, session, reg):
         links = list()
 
-        for group in broker.groups:
+        for group in reg.groups:
             branch = session.branch()
             self.frame().frame().show_broker_group(branch, group).show_view \
                 (branch)
@@ -313,8 +339,8 @@
 
         return ", ".join(links)
 
-    def render_cluster_link(self, session, broker):
-        cluster = broker.cluster
+    def render_cluster_link(self, session, reg):
+        cluster = reg.cluster
         
         if cluster:
             branch = session.branch()
@@ -323,8 +349,8 @@
         else:
             return fmt_none()
 
-    def render_profile_link(self, session, broker):
-        profile = broker.profile
+    def render_profile_link(self, session, reg):
+        profile = reg.profile
 
         if profile:
             branch = session.branch()
@@ -334,92 +360,32 @@
             return fmt_none()
 
     class BrokerQueueTab(QueueSet):
-        def get_object(self, session, broker):
-            # XXX
-            if not broker:
-                return
+        def get_object(self, session, reg):
+            return self.parent.parent.parent.vhost.get(session)
 
-            broker = broker.broker # Navigate from registration to real broker
-            if broker:
-                return Vhost.selectBy(broker=broker, name="/")[0]
-
         def get_title(self, session, broker):
-            vhost = self.get_object(session, broker)
-            if vhost:
-                return super(BrokerView.BrokerQueueTab, self).get_title \
-                    (session, vhost)
-            else:
-                return "Queues"
+            vhost = self.parent.parent.parent.vhost.get(session)
+            return super(BrokerView.BrokerQueueTab, self).get_title \
+                (session, vhost)
 
-        def do_process(self, session, vhost):
-            if vhost:
-                super(BrokerView.BrokerQueueTab, self).do_process \
-                    (session, vhost)
-
-        def do_render(self, session, vhost):
-            if vhost:
-                return super(BrokerView.BrokerQueueTab, self).do_render \
-                    (session, vhost)
-
     class BrokerExchangeTab(ExchangeSet):
-        def get_object(self, session, broker):
-            broker = broker.broker # Navigate from registration to real broker
-            if broker:
-                return Vhost.selectBy(broker=broker, name="/")[0]
+        def get_object(self, session, reg):
+            return self.parent.parent.parent.vhost.get(session)
 
         def get_title(self, session, broker):
-            vhost = self.get_object(session, broker)
-            if vhost:
-                return super(BrokerView.BrokerExchangeTab, self).get_title \
-                    (session, vhost)
-            else:
-                return "Exchanges"
+            vhost = self.parent.parent.parent.vhost.get(session)
+            return super(BrokerView.BrokerExchangeTab, self).get_title \
+                (session, vhost)
 
-        def do_process(self, session, vhost):
-            if vhost:
-                super(BrokerView.BrokerExchangeTab, self).do_process \
-                    (session, vhost)
-
-        def do_render(self, session, vhost):
-            if vhost:
-                return super(BrokerView.BrokerExchangeTab, self).do_render \
-                    (session, vhost)
-
     class BrokerClientTab(ClientSet):
-        def get_object(self, session, broker):
-            broker = broker.broker # Navigate from registration to real broker
-            if broker:
-                return Vhost.selectBy(broker=broker, name="/")[0]
+        def get_object(self, session, reg):
+            return self.parent.parent.parent.vhost.get(session)
 
         def get_title(self, session, broker):
-            vhost = self.get_object(session, broker)
-            if vhost:
-                return super(BrokerView.BrokerClientTab, self).get_title \
-                    (session, vhost)
-            else:
-                return "Clients"
+            vhost = self.parent.parent.parent.vhost.get(session)
+            return super(BrokerView.BrokerClientTab, self).get_title \
+                (session, vhost)
 
-        def do_process(self, session, vhost):
-            if vhost:
-                super(BrokerView.BrokerClientTab, self).do_process \
-                    (session, vhost)
-
-        def do_render(self, session, vhost):
-            if vhost:
-                return super(BrokerView.BrokerClientTab, self).do_render \
-                    (session, vhost)
-
-    class BrokerVirtualHostTab(VirtualHostSet):
-        def get_title(self, session, broker):
-            broker = broker.broker # Navigate from registration to real broker
-            if broker:
-                return "Functional Hosts %s" % fmt_count(len(broker.vhosts))
-
-        def do_get_items(self, session, broker):
-            broker = broker.broker # Navigate from registration to real broker
-            if broker:
-                return sorted_by(broker.vhosts)
-
     class BrokerConfigTab(ConfigPropertySet):
         def get_title(self, session, broker):
             return "Configuration"

Modified: mgmt/cumin/python/cumin/broker.strings
===================================================================
--- mgmt/cumin/python/cumin/broker.strings	2008-02-06 21:38:19 UTC (rev 1651)
+++ mgmt/cumin/python/cumin/broker.strings	2008-02-06 21:42:44 UTC (rev 1652)
@@ -151,8 +151,30 @@
   </tr>
 </table>
 
-{tabs}
+{body}
 
+[BrokerMissing.html]
+<div class="notice">
+  The broker at this address is currently unavailable.  This page will
+  reload in <span id="timer_count">10</span> <span id="timer_word">seconds</span>.
+</div>
+<script>
+var secs = 10
+
+function updateTimer() {
+    secs -= 1;
+
+    count = wooly.doc().elembyid("timer_count").set("" + secs);
+    ending = wooly.doc().elembyid("timer_word").set(secs == 1 ? "second" : "seconds");
+    
+    if (secs == 0) {
+        location.reload();
+    }
+}
+
+window.setInterval(updateTimer, 1000);
+</script>
+
 [BrokerBrowser.html]
 <table class="browser">
   <tr>

Modified: mgmt/cumin/python/cumin/page.strings
===================================================================
--- mgmt/cumin/python/cumin/page.strings	2008-02-06 21:38:19 UTC (rev 1651)
+++ mgmt/cumin/python/cumin/page.strings	2008-02-06 21:42:44 UTC (rev 1652)
@@ -74,6 +74,14 @@
   padding: 0 1em;
 }
 
+.notice {
+  margin: 2em;
+  padding: 2em;
+  border: 1px dotted black;
+  width: 66%;
+  text-align: center;
+}
+
 ul.actions {
   padding: 0;
   margin: 0 0 1em 0;




More information about the rhmessaging-commits mailing list