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

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Tue Nov 25 15:22:08 EST 2008


Author: eallen
Date: 2008-11-25 15:22:08 -0500 (Tue, 25 Nov 2008)
New Revision: 2881

Modified:
   mgmt/trunk/cumin/python/cumin/page.py
   mgmt/trunk/cumin/python/cumin/pool.py
   mgmt/trunk/cumin/python/cumin/system.py
   mgmt/trunk/cumin/python/cumin/system.strings
Log:
Added a Services tab under Systems to link to any daemons (and broker) under that system.

Modified: mgmt/trunk/cumin/python/cumin/page.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/page.py	2008-11-25 20:02:24 UTC (rev 2880)
+++ mgmt/trunk/cumin/python/cumin/page.py	2008-11-25 20:22:08 UTC (rev 2881)
@@ -118,9 +118,15 @@
 
     def show_grid_tab(self, session):
         self.__tabs.set_grid_tab(session)
+        self.view.set_grid_mode(session)
 
     def show_system_tab(self, session):
         self.__tabs.set_system_tab(session)
+        self.view.set_systems_mode(session)
+        
+    def set_messaging_tab(self, session):
+        self.__tabs.set_messaging_tab(session)
+        self.view.set_messaging_mode(session)
 
 class MainFrameTabs(LinkSet):
     def __init__(self, app, name):
@@ -144,6 +150,9 @@
     def set_system_tab(self, session):
         self.selection.set(session, "stab")
         
+    def set_messaging_tab(self, session):
+        self.selection.set(session, "mtab")
+        
     class Tab(Link):
         def render_class(self, session):
             return (self.parent.selection.get(session) == self.name) \
@@ -202,6 +211,15 @@
         self.systems = SystemsView(app, "sys")
         self.add_mode(self.systems)
 
+    def set_messaging_mode(self, session):
+        self.set_selected_mode(session, self.messaging)
+        
+    def set_grid_mode(self, session):
+        self.set_selected_mode(session, self.grid)
+        
+    def set_systems_mode(self, session):
+        self.set_selected_mode(session, self.systems)
+        
 class HomeView(TabbedModeSet):
     def __init__(self, app, name):
         super(HomeView, self).__init__(app, name)

Modified: mgmt/trunk/cumin/python/cumin/pool.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/pool.py	2008-11-25 20:02:24 UTC (rev 2880)
+++ mgmt/trunk/cumin/python/cumin/pool.py	2008-11-25 20:22:08 UTC (rev 2881)
@@ -173,17 +173,17 @@
         jobs = JobsAndGroupsTab(app, "jobs")
         self.__tabs.add_tab(jobs)
 
-        scheds = PoolSchedulerSet(app, "scheds")
-        self.__tabs.add_tab(scheds)
+        self.scheds = PoolSchedulerSet(app, "scheds")
+        self.__tabs.add_tab(self.scheds)
 
         subs = PoolSubmitterSet(app, "subs")
         self.__tabs.add_tab(subs)
 
-        colls = PoolCollectorSet(app, "colls")
-        self.__tabs.add_tab(colls)
+        self.colls = PoolCollectorSet(app, "colls")
+        self.__tabs.add_tab(self.colls)
 
-        negs = PoolNegotiatorSet(app, "negs")
-        self.__tabs.add_tab(negs)
+        self.negs = PoolNegotiatorSet(app, "negs")
+        self.__tabs.add_tab(self.negs)
 
         limits = self.LimitsTab(app, "limits")
         self.__tabs.add_tab(limits)
@@ -195,6 +195,15 @@
         data = "model.xml?class=pool;id=%s" % pool.id
         return "wooly.setIntervalUpdate('%s', updatePool, 3000)" % data
 
+    def set_collector_tab(self, session):
+        self.__tabs.set_selected_mode(session, self.colls)
+        
+    def set_negotiator_tab(self, session):
+        self.__tabs.set_selected_mode(session, self.negs)
+        
+    def set_scheduler_tab(self, session):
+        self.__tabs.set_selected_mode(session, self.scheds)
+        
 class PoolSchedulerSet(SchedulerSet):
     def get_args(self, session):
         return self.frame.get_args(session)

Modified: mgmt/trunk/cumin/python/cumin/system.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/system.py	2008-11-25 20:02:24 UTC (rev 2880)
+++ mgmt/trunk/cumin/python/cumin/system.py	2008-11-25 20:22:08 UTC (rev 2881)
@@ -114,6 +114,7 @@
         self.__tabs.add_tab(SystemStats(app, "stats"))
         self.__tabs.add_tab(SystemJobSet(app, "jobs"))
         self.__tabs.add_tab(SystemSlotSet(app, "slots"))
+        self.__tabs.add_tab(SystemServices(app, "services"))
         self.__tabs.add_tab(CuminDetails(app, "details"))
 
 from job import JobTab
@@ -149,3 +150,66 @@
     def get_sql_values(self, session, system):
         return {"nodeName": system.nodeName}
 
+
+class SystemServices(ItemSet):
+    def render_title(self, session, *args):
+        return "Services"
+    
+    def get_args(self, session):
+        return (self.frame.get_object(session),)
+
+    def do_get_items(self, session, system):
+        daemons = list()
+        daemon_types = [Scheduler, Collector, Negotiator]
+        sql = "system = '%s'" % system.nodeName
+        
+        for daemon in daemon_types:
+            system_daemon = daemon.select(sql)
+            try:
+                daemons.append(system_daemon[0])
+            except Exception, e:
+                pass
+
+        brokers = Broker.select("system_id = '%i'" % system.id)
+        for broker in brokers:
+            daemons.append(BrokerRegistration.get(broker.registrationID))
+
+        return daemons
+    
+    def render_item_content(self, session, item):
+        if isinstance(item, BrokerRegistration):
+            reg = Identifiable(item.id)
+            self.page.main.set_messaging_tab(session)
+            href = self.page.main.broker.get_href(session, reg)
+            return fmt_link(href, fmt_shorten(item.url))
+        else:
+            pool = model.Pool.get(item.Pool)
+            self.page.main.pool.set_object(session, pool)
+            self.page.main.show_grid_tab(session)
+            daemon = Identifiable(item.id)
+            if isinstance(item, Collector):
+                self.page.main.pool.view.set_collector_tab(session)
+                href = self.page.main.pool.collector.get_href(session, daemon)
+            elif isinstance(item, Scheduler):
+                self.page.main.pool.view.set_scheduler_tab(session)
+                href = self.page.main.pool.scheduler.get_href(session, daemon)
+            elif isinstance(item, Negotiator):
+                self.page.main.pool.view.set_negotiator_tab(session)
+                href = self.page.main.pool.negotiator.get_href(session, daemon)
+            return fmt_link(href, item.Name)
+
+    def render_item_type(self, session, item):
+        if isinstance(item, Collector):
+            return "Collector"
+        elif isinstance(item, Scheduler):
+            return "Scheduler"
+        elif isinstance(item, Negotiator):
+            return "Negotiator"
+        elif isinstance(item, BrokerRegistration):
+            return "Broker"
+        else:
+            return "Daemon"
+        
+        
+        
+    
\ No newline at end of file

Modified: mgmt/trunk/cumin/python/cumin/system.strings
===================================================================
--- mgmt/trunk/cumin/python/cumin/system.strings	2008-11-25 20:02:24 UTC (rev 2880)
+++ mgmt/trunk/cumin/python/cumin/system.strings	2008-11-25 20:22:08 UTC (rev 2881)
@@ -94,3 +94,13 @@
 	</table>
 	<div>{hidden_inputs}</div>
 </form>
+
+
+[SystemServices.html]
+<h2>Services</h2>
+<table class="PropertySet">
+  <tbody>{items}</tbody>
+</table>
+
+[SystemServices.item_html]
+<tr><th>{item_type}</th><td>{item_content}</td></tr>




More information about the rhmessaging-commits mailing list