[rhmessaging-commits] rhmessaging commits: r2227 - mgmt/trunk/cumin/python/cumin.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Fri Jul 25 15:38:33 EDT 2008
Author: eallen
Date: 2008-07-25 15:38:33 -0400 (Fri, 25 Jul 2008)
New Revision: 2227
Added:
mgmt/trunk/cumin/python/cumin/brokerlink.py
mgmt/trunk/cumin/python/cumin/brokerlink.strings
Log:
New files for Broker Links and Link Routes(bridges)
Added: mgmt/trunk/cumin/python/cumin/brokerlink.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/brokerlink.py (rev 0)
+++ mgmt/trunk/cumin/python/cumin/brokerlink.py 2008-07-25 19:38:33 UTC (rev 2227)
@@ -0,0 +1,203 @@
+from wooly import *
+from wooly.widgets import *
+from wooly.forms import *
+from wooly.resources import *
+
+from stat import *
+from model import *
+from widgets import *
+from parameters import *
+from formats import *
+from util import *
+
+strings = StringCatalog(__file__)
+
+class PeerSet(CuminTable):
+ def __init__(self, app, name):
+ super(PeerSet, self).__init__(app, name)
+
+ col = self.AddressColumn(app, "addr")
+ self.add_column(col)
+
+ col = self.DurableColumn(app, "durable")
+ self.add_column(col)
+
+ col = self.StateColumn(app, "state")
+ self.add_column(col)
+
+ col = self.LastErrorColumn(app, "last_error")
+ self.add_column(col)
+
+ #col = self.FromPeerColumn(app, "from_peer")
+ #self.add_column(col)
+
+ #col = self.ToPeerColumn(app, "to_peer")
+ #self.add_column(col)
+
+ def get_args(self, session):
+ reg = self.frame.get_object(session)
+ return (reg.getDefaultVhost(),)
+
+ def render_title(self, session, vhost):
+ count = self.get_item_count(session, vhost)
+ return "Broker Links %s" % fmt_count(count)
+
+ def render_sql_where(self, session, vhost):
+ return "where v.id = %(vhost_id)r"
+
+ def get_sql_values(self, session, vhost):
+ return {"vhost_id": vhost.id}
+
+ class AddressColumn(SqlTableColumn):
+ def render_title(self, session, data):
+ return "Address"
+
+ def render_content(self, session, data):
+ peer = Identifiable(data["id"])
+ branch = session.branch()
+ self.frame.show_peer(branch, peer).show_view(branch)
+ name = "%s:%i" % (data["host"], data["port"])
+ return fmt_olink(branch, peer, name=name)
+
+ def get_orderby_sql(self, session):
+ dir = self.parent.is_reversed(session) and "desc" or "asc"
+ return "order by host, port %s" % dir
+
+ class StateColumn(SqlTableColumn):
+ def render_title(self, session, data):
+ return "State"
+
+ class LastErrorColumn(SqlTableColumn):
+ def render_title(self, session, data):
+ return "Last Error"
+
+ class DurableColumn(SqlTableColumn):
+ def render_title(self, session, data):
+ return "Durable"
+
+ class FromPeerColumn(NullSortColumn, FreshDataOnlyColumn):
+ def render_title(self, session, data):
+ return "Bytes from Broker"
+
+ def render_value(self, session, value):
+ return fmt_rate(value)
+
+ class ToPeerColumn(NullSortColumn, FreshDataOnlyColumn):
+ def render_title(self, session, data):
+ return "Bytes to Broker"
+
+ def render_value(self, session, value):
+ return fmt_rate(value)
+
+class PeerFrame(CuminFrame):
+ def __init__(self, app, name):
+ super(PeerFrame, self).__init__(app, name)
+
+ self.object = PeerParameter(app, "id")
+ self.add_parameter(self.object)
+
+ view = PeerView(app, "view")
+ self.add_mode(view)
+ self.set_view_mode(view)
+
+ def render_title(self, session, peer):
+ return super(PeerFrame, self).render_title(session, peer)
+
+class PeerStatus(CuminStatus):
+ def render_messages_received(self, session, peer):
+ return self.app.model.exchange.msgReceives.rate_html(peer)
+
+ def render_messages_routed(self, session, peer):
+ return self.app.model.exchange.msgRoutes.rate_html(peer)
+
+ def render_messages_dropped(self, session, peer):
+ return self.app.model.exchange.msgDrops.value(peer)
+
+ def render_bytes_received(self, session, peer):
+ return self.app.model.exchange.byteReceives.rate_html(peer)
+
+ def render_bytes_routed(self, session, peer):
+ return self.app.model.exchange.byteRoutes.rate_html(peer)
+
+ def render_bytes_dropped(self, session, peer):
+ return self.app.model.exchange.byteDrops.value(peer)
+
+class PeerView(CuminView):
+ def __init__(self, app, name):
+ super(PeerView, self).__init__(app, name)
+
+ status = PeerStatus(app, "status")
+ self.add_child(status)
+
+ self.__tabs = TabbedModeSet(app, "tabs")
+ self.add_child(self.__tabs)
+
+ #self.__tabs.add_tab(PeerStats(app, "stats"))
+
+ self.__routes = PeerRouteSet(app, "routes")
+ self.__tabs.add_tab(self.__routes)
+
+ self.__tabs.add_tab(CuminDetails(app, "details"))
+
+ def show_routes(self, session):
+ return self.__tabs.show_mode(session, self.__routes);
+
+ def render_script(self, session, peer):
+ data = "model.xml?class=peer;id=%i" % peer.id
+ return "wooly.setIntervalUpdate('%s', updatePeer, 3000)" % data
+
+class PeerRouteSet(RouteSet):
+ def get_args(self, session):
+ return self.frame.get_args(session)
+
+ def render_title(self, session, peer):
+ return "Link Routes %s" % \
+ fmt_count(self.get_item_count(session, peer))
+
+ def get_item_count(self, session, peer):
+ return peer.bridges.count()
+
+ def do_get_items(self, session, peer):
+ start, end = self.get_bounds(session)
+ return peer.bridges[start:end]
+
+ def render_item_destination(self, session, route):
+ return route.link.managedBroker
+
+ def render_item_src(self, session, route):
+ return "%s:%d" % (route.link.host, route.link.port)
+
+ def render_item_exchange(self, session, route):
+ return route.dest
+
+ def render_item_routing_key(self, session, route):
+ return route.key
+
+class PeerStats(TabbedModeSet):
+ def __init__(self, app, name):
+ super(PeerStats, self).__init__(app, name)
+
+ self.add_child(StatSet(app, "io", "io"))
+ self.add_child(StatSet(app, "general", "general"))
+
+ chart = self.ReceiveRouteDropRateChart(app, "recvroutedrop")
+ self.add_child(chart)
+
+ chart = StatValueChart(app, "producers")
+ chart.stats = ("producerCount",)
+ self.add_child(chart)
+
+ def render_title(self, session):
+ return "Statistics"
+
+ class ReceiveRouteDropRateChart(StatValueChart):
+ def __init__(self, app, name):
+ super(PeerStats.ReceiveRouteDropRateChart, self).__init__ \
+ (app, name)
+
+ self.stats = ("msgReceives", "msgRoutes", "msgDrops")
+ self.mode = "rate"
+
+ def render_title(self, session, exchange):
+ return "Messages Received, Routed, and Dropped"
+
Added: mgmt/trunk/cumin/python/cumin/brokerlink.strings
===================================================================
--- mgmt/trunk/cumin/python/cumin/brokerlink.strings (rev 0)
+++ mgmt/trunk/cumin/python/cumin/brokerlink.strings 2008-07-25 19:38:33 UTC (rev 2227)
@@ -0,0 +1,44 @@
+[PeerSet.sql]
+select
+ l.id,
+ l.host,
+ l.port,
+ l.durable,
+ c.state,
+ c.last_error
+from link as l
+join vhost as v on v.id = l.vhost_id
+left outer join link_stats as c on c.id = l.stats_curr_id
+left outer join link_stats as p on p.id = l.stats_prev_id
+{sql_where}
+{sql_orderby}
+{sql_limit}
+
+[PeerSet.count_sql]
+select count(*)
+from link as l
+join vhost as v on v.id = l.vhost_id
+{sql_where}
+
+[PeerRouteSet.html]
+<div class="rfloat">{page}</div>
+<ul class="radiotabs"> </ul>
+
+<table class="ExchangeBindingSet mobjects">
+ <tr>
+ <th>Destination</th>
+ <th>Source</th>
+ <th>Exchange</th>
+ <th>Routing Key</th>
+ </tr>
+
+ {items}
+</table>
+
+[PeerRouteSet.item_html]
+<tr>
+ <td>{item_destination}</a></td>
+ <td>{item_src}</td>
+ <td>{item_exchange}</td>
+ <td>{item_routing_key}</td>
+</tr>
More information about the rhmessaging-commits
mailing list