[rhmessaging-commits] rhmessaging commits: r1502 - in mgmt: notes and 1 other directory.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Mon Dec 17 11:45:58 EST 2007
Author: justi9
Date: 2007-12-17 11:45:58 -0500 (Mon, 17 Dec 2007)
New Revision: 1502
Modified:
mgmt/cumin/python/cumin/__init__.py
mgmt/cumin/python/cumin/client.py
mgmt/cumin/python/cumin/exchange.py
mgmt/cumin/python/cumin/queue.py
mgmt/cumin/python/cumin/queue.strings
mgmt/cumin/python/cumin/widgets.py
mgmt/cumin/python/cumin/widgets.strings
mgmt/notes/justin-todo.txt
Log:
Adds classes TableHeader and TableColumn. Uses them to provide the
first cut of table sort for QueueSet.
Converts all sqlobject collection accesses to the simpler
attr-oriented method now that we reconfigured sqlobject to make them
SelectResults objects.
Modified: mgmt/cumin/python/cumin/__init__.py
===================================================================
--- mgmt/cumin/python/cumin/__init__.py 2007-12-17 16:21:15 UTC (rev 1501)
+++ mgmt/cumin/python/cumin/__init__.py 2007-12-17 16:45:58 UTC (rev 1502)
@@ -32,7 +32,7 @@
self.model = CuminModel()
self.broker_connect_thread = BrokerConnectThread(self.model)
- self.broker_connect_thread.start()
+ #self.broker_connect_thread.start()
self.cumin_page = CuminPage(self, "cumin.html")
self.set_default_page(self.cumin_page)
Modified: mgmt/cumin/python/cumin/client.py
===================================================================
--- mgmt/cumin/python/cumin/client.py 2007-12-17 16:21:15 UTC (rev 1501)
+++ mgmt/cumin/python/cumin/client.py 2007-12-17 16:45:58 UTC (rev 1502)
@@ -25,13 +25,12 @@
return self.unit.get(session) == "b" and "Bytes" or "Frames"
def get_item_count(self, session, vhost):
- return Client.select(Client.q.vhostID == vhost.id).count()
+ return vhost.clients.count()
def do_get_items(self, session, vhost):
if vhost:
start, end = self.get_bounds(session)
- return Client.select(Client.q.vhostID == vhost.id,
- orderBy="address")[start:end]
+ return vhost.clients.orderBy("address")[start:end]
def render_item_link(self, session, client):
branch = session.branch()
@@ -202,10 +201,10 @@
return "Sessions %s" % fmt_count(self.get_item_count(session, client))
def get_item_count(self, session, client):
- return Session.select(Session.q.clientID == client.id).count()
+ return client.sessions.count()
def do_get_items(self, session, client):
- return Session.select(Session.q.clientID == client.id)
+ return client.sessions
def render_item_name(self, session, session_):
return session_.name
Modified: mgmt/cumin/python/cumin/exchange.py
===================================================================
--- mgmt/cumin/python/cumin/exchange.py 2007-12-17 16:21:15 UTC (rev 1501)
+++ mgmt/cumin/python/cumin/exchange.py 2007-12-17 16:45:58 UTC (rev 1502)
@@ -52,13 +52,12 @@
return self.unit.get(session) == "b" and "Bytes" or "Msgs."
def get_item_count(self, session, vhost):
- return Exchange.select(Exchange.q.vhostID == vhost.id).count()
+ return vhost.exchanges.count()
def do_get_items(self, session, vhost):
if vhost:
start, end = self.paginator.get_bounds(session)
- return Exchange.select(Exchange.q.vhostID == vhost.id,
- orderBy="name")[start:end]
+ return vhost.exchanges.orderBy("name")[start:end]
def render_item_link(self, session, exchange):
branch = session.branch()
@@ -214,11 +213,11 @@
fmt_count(self.get_item_count(session, exchange))
def get_item_count(self, session, exchange):
- return Binding.select(Binding.q.exchangeID == exchange.id).count()
+ return exchange.bindings.count()
def do_get_items(self, session, exchange):
start, end = self.get_bounds(session)
- return Binding.select(Binding.q.exchangeID == exchange.id)[start:end]
+ return exchange.bindings[start:end]
def render_item_href(self, session, binding):
branch = session.branch()
Modified: mgmt/cumin/python/cumin/queue.py
===================================================================
--- mgmt/cumin/python/cumin/queue.py 2007-12-17 16:21:15 UTC (rev 1501)
+++ mgmt/cumin/python/cumin/queue.py 2007-12-17 16:45:58 UTC (rev 1502)
@@ -22,26 +22,68 @@
self.unit = UnitSwitch(app, "unit")
self.add_child(self.unit)
+ self.header = TableHeader(app, "header")
+ self.header.add_column(TableColumn())
+ self.header.add_column(TableColumn("Name", "name"))
+ self.header.add_column \
+ (TableColumn("Exchange Bindings", None, "ralign"))
+ self.header.add_column(TableColumn("Consumers", None, "ralign"))
+ self.header.add_column(self.EnqueuedColumn(html_class="ralign"))
+ self.header.add_column(self.DequeuedColumn(html_class="ralign"))
+ self.header.add_column(self.DepthColumn(html_class="ralign"))
+ self.header.add_column(TableColumn("Depth Accel.", None, "ralign"))
+ self.header.add_column(TableColumn("Status", None))
+ self.add_child(self.header)
+
def get_title(self, session, vhost):
return "Queues %s" % fmt_count(self.get_item_count(session, vhost))
- def render_unit_singular(self, session, vhost):
+ def get_unit_singular(self, session):
return self.unit.get(session) == "b" and "Byte" or "Msg."
- def render_unit_plural(self, session, vhost):
+ def get_unit_plural(self, session):
return self.unit.get(session) == "b" and "Bytes" or "Msgs."
+ class EnqueuedColumn(TableColumn):
+ def get_title(self, session):
+ return "%s Enqueued" % self.header.parent().get_unit_plural \
+ (session)
+
+ def get_sort_key(self, session):
+ return None
+
+ class DequeuedColumn(TableColumn):
+ def get_title(self, session):
+ return "%s Dequeued" % self.header.parent().get_unit_plural \
+ (session)
+
+ def get_sort_key(self, session):
+ return None
+
+ class DepthColumn(TableColumn):
+ def get_title(self, session):
+ return "%s Depth" % self.header.parent().get_unit_singular(session)
+
+ def get_sort_key(self, session):
+ return None
+
def get_item_count(self, session, vhost):
- return Queue.select(Queue.q.vhostID == vhost.id).count()
+ return vhost.queues.count()
def do_get_items(self, session, vhost):
if vhost:
+ queues = Queue.select()
+ queues = queues.filter(Queue.q.vhostID == vhost.id)
+ queues = queues.filter(Queue.q.statsCurrID == QueueStats.q.id)
+
+ sort_key = self.header.get_sort_key(session) or "name"
+ queues = queues.orderBy(sort_key)
+
start, end = self.get_bounds(session)
- return Queue.select(Queue.q.vhostID == vhost.id,
- join=LEFTJOINOn(None, QueueStats,
- Queue.q.statsCurrID == QueueStats.q.id),
- orderBy="name")[start:end]
+ queues = queues[start:end]
+ return queues
+
def render_item_link(self, session, queue):
branch = session.branch()
self.page().show_queue(branch, queue).show_view(branch)
@@ -216,11 +258,11 @@
fmt_count(self.get_item_count(session, queue))
def get_item_count(self, session, queue):
- return Binding.select(Binding.q.queueID == queue.id).count()
+ return queue.bindings.count()
def do_get_items(self, session, queue):
start, end = self.get_bounds(session)
- return Binding.select(Binding.q.queueID == queue.id)[start:end]
+ return queue.bindings[start:end]
def render_item_href(self, session, binding):
branch = session.branch()
@@ -483,11 +525,11 @@
return "Consumers %s" % fmt_count(self.get_item_count(session, queue))
def get_item_count(self, session, queue):
- return Consumer.select(Consumer.q.queueID == queue.id).count()
+ return queue.consumers.count()
def do_get_items(self, session, queue):
start, end = self.get_bounds(session)
- return Consumer.select(Consumer.q.queueID == queue.id)[start:end]
+ return queue.consumers[start:end]
def render_item_name(self, session, consumer):
return consumer.name
Modified: mgmt/cumin/python/cumin/queue.strings
===================================================================
--- mgmt/cumin/python/cumin/queue.strings 2007-12-17 16:21:15 UTC (rev 1501)
+++ mgmt/cumin/python/cumin/queue.strings 2007-12-17 16:45:58 UTC (rev 1502)
@@ -16,18 +16,7 @@
</div>
<table class="mobjects">
- <tr>
- <th><input type="checkbox"/></th>
- <th>Name</th>
- <th class="ralign">Consumers</th>
- <th class="ralign">Exchange Bindings</th>
- <th class="ralign">{unit_plural} Enqueued</th>
- <th class="ralign">{unit_plural} Dequeued</th>
- <th class="ralign">{unit_singular} Depth</th>
- <th class="ralign">Depth Accel.</th>
- <th>Status</th>
- </tr>
-
+ {header}
{items}
</table>
<!-- </form> -->
Modified: mgmt/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/cumin/python/cumin/widgets.py 2007-12-17 16:21:15 UTC (rev 1501)
+++ mgmt/cumin/python/cumin/widgets.py 2007-12-17 16:45:58 UTC (rev 1502)
@@ -328,19 +328,57 @@
def __init__(self, app, name):
super(TableHeader, self).__init__(app, name)
- self.columns = list()
+ self.columns = list() # of TableColumns
- XXX
+ self.sort = Parameter(app, "sort")
+ self.add_parameter(self.sort)
+ def add_column(self, column):
+ self.columns.append(column)
+ column.header = self
+
+ def get_sort_key(self, session):
+ return self.sort.get(session)
+
def get_items(self, session, object):
return self.columns
+ def render_item_class(self, session, column):
+ return column.get_class(session)
+
def render_item_content(self, session, column):
- return column.render_
+ return column.get_title(session)
def render_item_href(self, session, column):
- return column.get_href(session, column)
+ sort_key = column.get_sort_key(session)
+ if sort_key:
+ branch = session.branch()
+ self.sort.set(branch, sort_key)
+ href = branch.marshal()
+ else:
+ href = session.marshal()
+
+ return href
+
+# XXX for now, not a Widget
+class TableColumn(object):
+ def __init__(self, title=None, sort_key=None, html_class=None):
+ self.title = title
+ self.sort_key = sort_key
+ self.html_class = html_class
+
+ self.header = None
+
+ def get_title(self, session):
+ return self.title
+
+ def get_sort_key(self, session):
+ return self.sort_key
+
+ def get_class(self, session):
+ return self.html_class
+
class PaginatedItemSet(ItemSet):
def __init__(self, app, name):
super(PaginatedItemSet, self).__init__(app, name)
Modified: mgmt/cumin/python/cumin/widgets.strings
===================================================================
--- mgmt/cumin/python/cumin/widgets.strings 2007-12-17 16:21:15 UTC (rev 1501)
+++ mgmt/cumin/python/cumin/widgets.strings 2007-12-17 16:45:58 UTC (rev 1502)
@@ -81,3 +81,11 @@
[Paginator.item_html]
<li><a {item_class_attr} href="{item_href}">{item_content}</a></li>
+
+[TableHeader.html]
+<thead>
+ <tr>{items}</tr>
+</thead>
+
+[TableHeader.item_html]
+<th class="{item_class}"><a href="{item_href}">{item_content}</a></th>
Modified: mgmt/notes/justin-todo.txt
===================================================================
--- mgmt/notes/justin-todo.txt 2007-12-17 16:21:15 UTC (rev 1501)
+++ mgmt/notes/justin-todo.txt 2007-12-17 16:45:58 UTC (rev 1502)
@@ -35,8 +35,12 @@
- Handle other exception conditions on broker connect more gracefully
+ * Remove sqlobject workaround in CuminStat.samples
+
Deferred
+ * Go back to Widget.parent as an attr, not a function
+
* Indicate how old stats are
* Need way to control connectToBroker timeout
More information about the rhmessaging-commits
mailing list