[rhmessaging-commits] rhmessaging commits: r3964 - in mgmt/newdata/cumin/python/cumin: grid and 1 other directory.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Wed May 12 15:15:57 EDT 2010


Author: eallen
Date: 2010-05-12 15:15:57 -0400 (Wed, 12 May 2010)
New Revision: 3964

Modified:
   mgmt/newdata/cumin/python/cumin/grid/pool.py
   mgmt/newdata/cumin/python/cumin/grid/slot.py
   mgmt/newdata/cumin/python/cumin/grid/slot.strings
   mgmt/newdata/cumin/python/cumin/parameters.py
Log:
Converted pool/slot overview and visualization to qmf v2.

Modified: mgmt/newdata/cumin/python/cumin/grid/pool.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/pool.py	2010-05-11 20:55:59 UTC (rev 3963)
+++ mgmt/newdata/cumin/python/cumin/grid/pool.py	2010-05-12 19:15:57 UTC (rev 3964)
@@ -100,18 +100,15 @@
     def do_process(self, session):
         #self.limits.limit_count.process(session)
 
-        super(PoolView, self).do_process(session)
+        super(PoolFrame, self).do_process(session)
 
 class PoolOverview(Widget):
-    def __init__(self, app, name, pool):
+    def __init__(self, app, name, collector):
         super(PoolOverview, self).__init__(app, name)
 
-        self.pool = pool
+        self.collector = collector
 
-        self.collector = PoolCollectorAttribute(app, "collector", self.pool)
-        self.add_attribute(self.collector)
-
-        self.grid = PoolGridAttribute(app, "grid", self.pool)
+        self.grid = CollectorGridAttribute(app, "grid", self.collector)
         self.add_attribute(self.grid)
 
         stats = CollectorGeneralStatSet(app, "collector_stats", self.collector)
@@ -120,10 +117,10 @@
         stats = GridStats(app, "grid_stats", self.grid)
         self.add_child(stats)
 
-        slot_map = PoolSlotMap(app, "slot_png", self.pool)
+        slot_map = PoolSlotMap(app, "slot_png", self.collector)
         self.add_child(slot_map)
 
-        slot_vis = PoolSlotFlashVis(app, "slot_map", self.pool)
+        slot_vis = PoolSlotFlashVis(app, "slot_map", self.collector)
         self.add_child(slot_vis)
 
         chart = self.JobStackedChart(app, "jobs", self.collector)
@@ -204,50 +201,52 @@
             return "Grid submits"
 
 class PoolSlotMap(SlotMap):
-    def __init__(self, app, name, pool):
+    def __init__(self, app, name, collector):
         super(PoolSlotMap, self).__init__(app, name)
 
-        self.pool = pool
+        self.collector = collector
 
     def do_process(self, session):
         super(PoolSlotMap, self).do_process(session)
 
-        pool = self.pool.get(session)
+        collector = self.collector.get(session)
 
-        self.slots.add_where_expr(session, "s.pool = '%s'", pool.id)
+        self.slots.add_where_expr(session, "\"Pool\" = '%s'", collector.Pool)
 
     def render_image_href(self, session):
-        pool = self.pool.get(session)
+        collector = self.collector.get(session)
 
-        page = main.module.pool_slots_page
+        page = self.app.grid.pool_slots_page
         sess = Session(page)
 
-        page.pool.set(sess, pool)
+        page.collector.set(sess, collector)
 
         return sess.marshal()
 
     def get_scheduler_select(self, session):
-        pool = self.pool.get(session)
-        return "pool='%s'" % pool.id
+        pass
+        #pool = self.pool.get(session)
 
 class PoolSlotMapPage(SlotMapPage):
     def __init__(self, app, name):
-        self.pool = PoolParameter(app, "id")
-        super(PoolSlotMapPage, self).__init__(app, name, self.pool, "Pool")
+        cls = app.model.mrg_grid.Collector
+        self.collector = RosemaryObjectParameter(app, "id", cls)
 
-        self.add_parameter(self.pool)
+        super(PoolSlotMapPage, self).__init__(app, name, self.collector, "Pool")
 
+        self.add_parameter(self.collector)
+
     def do_process(self, session):
         super(PoolSlotMapPage, self).do_process(session)
 
-        pool = self.pool.get(session)
+        collector = self.collector.get(session)
 
         # XXX The conditional is necessary because this page is
         # overloaded to generate little dots, in which case it has no
         # pool
 
-        if pool:
-            self.slots.add_where_expr(session, "s.pool = '%s'", pool.id)
+        if collector:
+            self.slots.add_where_expr(session, "\"Pool\" = '%s'", collector.Pool)
 
 class PoolSlotFlashVis(PoolSlotMap):
     def __init__(self, app, name, object):
@@ -259,34 +258,34 @@
         self.fullpageable = True
 
     def render_slots_href(self, session):
-        pool = self.pool.get(session)
+        collector = self.collector.get(session)
 
-        page = main.module.pool_slots_page
+        page = self.app.grid.pool_slots_page
         sess = Session(page)
 
-        page.pool.set(sess, pool)
+        page.collector.set(sess, collector)
         page.json.set(sess, "slots")
         page.groups.set(sess, [self.group_by.get(session)])
 
         return sess.marshal()
 
     def render_image_href(self, session):
-        pool = self.pool.get(session)
+        collector = self.collector.get(session)
 
-        page = main.module.pool_slots_page
+        page = self.app.grid.pool_slots_page
         sess = Session(page)
 
-        page.pool.set(sess, pool)
+        page.collector.set(sess, collector)
 
         return sess.marshal()
 
     def render_ctrl_href(self, session):
-        pool = self.pool.get(session)
+        collector = self.collector.get(session)
 
-        page = main.module.pool_slots_page
+        page = self.app.grid.pool_slots_page
         sess = Session(page)
 
-        page.pool.set(sess, pool)
+        page.collector.set(sess, collector)
         page.json.set(sess, "ctrl")
         page.groups.set(sess, [self.group_by.get(session)])
 
@@ -305,12 +304,12 @@
         return self.fullpageable and "fullpageable" or ""
 
     def render_fullpage_href(self, session):
-        pool = self.pool.get(session)
+        collector = self.collector.get(session)
 
-        page = main.module.pool_slots_fullpage
+        page = self.app.grid.pool_slots_fullpage
         sess = Session(page)
 
-        page.pool.set(sess, pool)
+        page.collector.set(sess, collector)
 
         return sess.marshal()
 
@@ -318,8 +317,8 @@
         def __init__(self, app, name):
             super(PoolSlotFlashVis.GroupBySwitch, self).__init__(app, name)
 
-            self.add_state("system", "By system")
-            self.add_state("accounting_group", "By accounting group")
+            self.add_state("System", "By system")
+            self.add_state("AccountingGroup", "By accounting group")
             self.add_state("None", "No Grouping")
 
         def get_click(self, session, state):
@@ -331,10 +330,11 @@
     def __init__(self, app, name):
         super(PoolSlotFullPage, self).__init__(app, name)
 
-        self.pool = PoolParameter(app, "id")
-        self.add_parameter(self.pool)
+        cls = app.model.mrg_grid.Collector
+        self.collector = RosemaryObjectParameter(app, "id", cls)
+        self.add_parameter(self.collector)
 
-        self.flash_chart = PoolSlotFlashVis(app, "chart", self.pool)
+        self.flash_chart = PoolSlotFlashVis(app, "chart", self.collector)
         self.flash_chart.fullpageable = False
         self.add_child(self.flash_chart)
 

Modified: mgmt/newdata/cumin/python/cumin/grid/slot.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/slot.py	2010-05-11 20:55:59 UTC (rev 3963)
+++ mgmt/newdata/cumin/python/cumin/grid/slot.py	2010-05-12 19:15:57 UTC (rev 3964)
@@ -10,6 +10,7 @@
 from cumin.objectselector import *
 from cumin.stat import *
 from cumin.widgets import *
+from cumin.OpenFlashChart import *
 
 strings = StringCatalog(__file__)
 log = logging.getLogger("cumin.slot")
@@ -43,20 +44,10 @@
         super(SlotDataSet, self).__init__(app)
 
         exprs = list()
-        exprs.append("s.qmf_update_time > now() - interval '60 minutes'")
+        exprs.append("_qmf_update_time > now() - interval '60 minutes'")
 
         self.where_exprs.default = exprs
 
-class OldSlotFrame(CuminFrame):
-    def __init__(self, app, name):
-        super(OldSlotFrame, self).__init__(app, name)
-
-        self.object = SlotParameter(app, "id")
-        self.add_parameter(self.object)
-
-        self.view = SlotView(app, "view", self.object)
-        self.add_mode(self.view)
-
 class SlotView(CuminView):
     def __init__(self, app, name, slot):
         super(SlotView, self).__init__(app, name, slot)
@@ -195,8 +186,8 @@
             return
 
         columns = [x[0] for x in cursor.description]
-        activity = columns.index("activity")
-        state = columns.index("state")
+        activity = columns.index("Activity")
+        state = columns.index("Atate")
 
         interiors = self.interiors.copy()
         interiors[None] = interiors["Unknown"]
@@ -226,7 +217,7 @@
 
         d = dict()
         for i in plist:
-            activityState = "%s:%s" % (records[i]["activity"], records[i]["state"])
+            activityState = "%s:%s" % (records[i]["Activity"], records[i]["State"])
             if not activityState in d:
                 d[activityState] = 0
             d[activityState] += 1
@@ -244,7 +235,7 @@
 
         root = Element()
         root.name = self.object_description
-        root.value = self.object_param.get(session).id
+        root.value = self.object_param.get(session)._id
         root.slots = slot_count
         root.vis = self.json.get(session)
         root.activity_colors = self.interiors
@@ -263,15 +254,15 @@
             if leaves:
                 #for i in sorted(plist, key=lambda x:records[x]["name"]):
                 for i in sorted(plist, key=lambda x:"%s%s%s" % 
-                                (records[x]["activity"], records[x]["state"], records[x]["name"])):
+                                (records[x]["Activity"], records[x]["State"], records[x]["Name"])):
                     el = Element()
-                    el.job_id = records[i]["job_id"] and records[i]["job_id"] or ""
-                    el.activity = records[i]["activity"] and records[i]["activity"] or "Unknown"
-                    el.state = records[i]["state"] and records[i]["state"] or "Unknown"
-                    el.value = records[i]["name"] and records[i]["name"] or ""
-                    el.load_avg = records[i]["load_avg"] and round(records[i]["load_avg"], 2) or 0
+                    el.job_id = records[i]["JobId"] and records[i]["JobId"] or ""
+                    el.activity = records[i]["Activity"] and records[i]["Activity"] or "Unknown"
+                    el.state = records[i]["State"] and records[i]["State"] or "Unknown"
+                    el.value = records[i]["Name"] and records[i]["Name"] or ""
+                    el.load_avg = records[i]["LoadAvg"] and round(records[i]["LoadAvg"], 2) or 0
                     el.name = "slot"
-                    el.slot_id = records[i]["id"]
+                    el.slot_id = records[i]["_id"]
                     level_list.append(el)
             else:
                 # display summary info for all the slots under this grouping
@@ -392,13 +383,13 @@
                 return state
 
     class SlotInfo(ItemSet):
-        display_names = {"job_id": ("Job ID", "", ""),
-                         "system": ("System", "", ""), 
-                         "machine": ("Machine", "", ""),
-                         "state": ("State", "", ""),
-                         "activity": ("Activity", "", ""),
-                         "name": ("Name", "", ""),
-                         "id": ("Slot_ID", "slotInfo_id", "hidden_row")}
+        display_names = {"JobId": ("Job ID", "", ""),
+                         "System": ("System", "", ""), 
+                         "Machine": ("Machine", "", ""),
+                         "State": ("State", "", ""),
+                         "Activity": ("Activity", "", ""),
+                         "Name": ("Name", "", ""),
+                         "_id": ("Slot_ID", "slotInfo_id", "hidden_row")}
 
         def __init__(self, app, name):
             super(SlotMap.SlotInfo, self).__init__(app, name)

Modified: mgmt/newdata/cumin/python/cumin/grid/slot.strings
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/slot.strings	2010-05-11 20:55:59 UTC (rev 3963)
+++ mgmt/newdata/cumin/python/cumin/grid/slot.strings	2010-05-12 19:15:57 UTC (rev 3964)
@@ -1,19 +1,18 @@
 [SlotDataSet.sql]
 select
-  s.id,
-  s.name,
-  s.pool,
-  s.machine,
-  s.system,
-  s.job_id,
-  s.accounting_group,
-  s.op_sys,
-  s.arch,
-  s.activity,
-  s.state,
-  c.load_avg
-from slot as s
-left outer join slot_stats as c on c.id = s.stats_curr_id
+  _id,
+  "Name",
+  "Pool",
+  "Machine",
+  "System",
+  "JobId",
+  "AccountingGroup",
+  "OpSys",
+  "Arch",
+  "Activity",
+  "State",
+  "LoadAvg"
+from "mrg.grid"."Slot"
 {sql_where}
 {sql_order_by}
 {sql_limit}

Modified: mgmt/newdata/cumin/python/cumin/parameters.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/parameters.py	2010-05-11 20:55:59 UTC (rev 3963)
+++ mgmt/newdata/cumin/python/cumin/parameters.py	2010-05-12 19:15:57 UTC (rev 3964)
@@ -11,7 +11,7 @@
         return login.user
 
 class ObjectAssociateAttribute(Attribute):
-    def __init__(self, app, name, object):
+    def __init__(self, app, name, object, cls):
         super(ObjectAssociateAttribute, self).__init__(app, name)
 
         self.object = object
@@ -165,20 +165,20 @@
         return Pool(string)
 
     def do_marshal(self, pool):
-        return str(pool.id)
+        return str(pool._id)
 
-class PoolCollectorAttribute(ObjectAssociateAttribute):
-    def get_associate(self, session, pool):
-        return pool.get_collector()
+class CollectorGridAttribute(ObjectAssociateAttribute):
+    def get_associate(self, session, collector):
+        cls = self.app.model.mrg_grid.Grid
+        grid = cls.get_object(session.cursor, Pool=collector.Pool)
+        return grid
 
-class PoolGridAttribute(ObjectAssociateAttribute):
-    def get_associate(self, session, pool):
-        return pool.get_grid()
+class CollectorNegotiatorAttribute(ObjectAssociateAttribute):
+    def get_associate(self, session, collector):
+        cls = self.app.model.mrg_grid.Negotiator
+        negotiator = cls.get_object(session.cursor, Pool=collector.Pool)
+        return negotiator
 
-class PoolNegotiatorAttribute(ObjectAssociateAttribute):
-    def get_associate(self, session, pool):
-        return pool.get_negotiator()
-
 class QueueParameter(Parameter):
     def do_unmarshal(self, string):
         return Queue.get(int(string))



More information about the rhmessaging-commits mailing list