Author: eallen
Date: 2012-12-19 14:29:54 +0000 (Wed, 19 Dec 2012)
New Revision: 5619
Modified:
trunk/cumin/python/cumin/messaging/brokerlink.py
trunk/cumin/python/cumin/messaging/brokerlink.strings
Log:
Fix for BZ 886937 Unable to add a route (bridge) to a link. This is the second half of the fix for this bz. Now using the Rosemary classes for object lookup.
Modified: trunk/cumin/python/cumin/messaging/brokerlink.py
===================================================================
--- trunk/cumin/python/cumin/messaging/brokerlink.py 2012-12-18 19:42:14 UTC (rev 5618)
+++ trunk/cumin/python/cumin/messaging/brokerlink.py 2012-12-19 14:29:54 UTC (rev 5619)
@@ -37,7 +37,8 @@
class BrokerLinkRemoveForm(ObjectFrameTaskForm):
def render_content(self, session):
obj = self.object.get(session)
- return xml_escape(obj.host)
+ content = "%s:%d" % (obj.host, obj.port)
+ return xml_escape(content)
class BrokerLinkRemove(ObjectFrameTask):
def __init__(self, app, frame):
@@ -105,13 +106,21 @@
self.remove = RouteSelectionRemove(app, self)
+ def render_title(self, session):
+ # the table name is Bridges, but we want to call it Routes
+ return "Routes"
+
class RouteSelectionRemove(ObjectSelectorTask):
def get_title(self, session):
- return "Remove"
+ return "Remove Route"
def do_invoke(self, invoc, route):
self.app.remote.qmf.close(route, invoc.make_callback())
+ def get_item_content(self, session, item):
+ name = "%s=>%s (%s)" % (item.src, item.dest, item.key)
+ return xml_escape(name)
+
# XXX RouteFrame
class RouteRemove(ObjectFrameTask):
@@ -174,28 +183,29 @@
link = self.form.link.get(session)
if link is not None:
- vhost = link.vhost
- sortedExchanges = sorted_by(vhost.exchanges)
+ cls = self.app.model.org_apache_qpid_broker.Exchange
+ all_exchanges = cls.get_selection(session.cursor, _vhostRef_id=link._vhostRef_id)
+ sortedExchanges = sorted_by(all_exchanges)
for exchange in sortedExchanges:
if ExchangeInfo.is_builtin(exchange) or \
- (not exchange._get_qmfDeleteTime() and \
+ (not exchange._qmf_delete_time and \
not (self.state.is_active(session) and not is_active(exchange))):
- if not exchange.name in ["qpid.management", ""]:
+ if not exchange.name in ["", "qpid.management", "qmf.default.topic", "qmf.default.direct"]:
if not self.param.get(session):
- self.param.set(session, exchange.id)
+ self.param.set(session, exchange._id)
exchanges.append(exchange)
return exchanges
def render_item_value(self, session, exchange):
- return exchange.id
+ return exchange._id
def render_item_content(self, session, exchange):
return xml_escape(exchange.name)
def render_item_checked_attr(self, session, exchange):
- if self.param.get(session) == exchange.id:
+ if self.param.get(session) == exchange._id:
return "checked=\"checked\""
class ExchangeRadioField(FormField):
@@ -229,6 +239,10 @@
def get_title(self, session):
return "Add route"
+ def do_enter(self, session, osession):
+ link = self.frame.object.get(osession)
+ self.form.link.set(session, link)
+
def do_invoke(self, invoc, link, exchange, key, tag, dynamic, sync,
excludes):
@@ -240,7 +254,8 @@
def __init__(self, app, name, task):
super(RouteAddForm, self).__init__(app, name, task)
- self.link = LinkParameter(app, "link")
+ cls = app.model.org_apache_qpid_broker.Link
+ self.link = RosemaryObjectParameter(app, "link", cls)
self.add_parameter(self.link)
self.exchange = ExchangeRadioField(app, "exchange")
@@ -276,7 +291,7 @@
link = self.link.get(session)
if not self.tag.get(session):
- brokerId = QpidAgentId.fromString(link.qmfAgentId).brokerId
+ brokerId = link._vhostRef_id
self.tag.set(session, brokerId)
if not self.excludes.get(session):
@@ -321,7 +336,8 @@
tag = self.tag.get(session)
excludes = self.excludes.get(session)
exchange_id = self.exchange.get(session)
- exchange = Exchange.get(int(exchange_id))
+ cls = self.app.model.org_apache_qpid_broker.Exchange
+ exchange = cls.get_object(session.cursor, _id=exchange_id)
durable = link.durable
dynamic = self.dynamic.get(session) == "yes"
sync = self.sync.get(session)
Modified: trunk/cumin/python/cumin/messaging/brokerlink.strings
===================================================================
--- trunk/cumin/python/cumin/messaging/brokerlink.strings 2012-12-18 19:42:14 UTC (rev 5618)
+++ trunk/cumin/python/cumin/messaging/brokerlink.strings 2012-12-19 14:29:54 UTC (rev 5619)
@@ -45,12 +45,10 @@
{sql_where}
[ExchangeRadioField.html]
-<div class="{form_field_class}">
- <div class="rfloat">{phase}</div>
- <div class="title">{title}</div> <div class="field_help">{field_help}</div><div class="clear_left"></div>
- {errors}
- <div class="inputs">{inputs}</div><div style="clear:left;"><!-- --></div>
-</div>
+<tr>
+ <th>{title}<div class="field_help">{field_help}</div></th>
+ <td>{phase} {errors} <div class="inputs">{inputs}</div></td>
+</tr>
[BridgeAddHelpField.css]
div#bridge_add_help span.tag1 {