summaryrefslogtreecommitdiff
path: root/tools/src/py
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2010-04-23 19:07:14 +0000
committerTed Ross <tross@apache.org>2010-04-23 19:07:14 +0000
commit1256ed9262d0a8f769a72eb83b1669b33e1f7f59 (patch)
tree7b7e72b21445fdd2f6715e0f90cd7a82c73e2a0a /tools/src/py
parent4d8b7a47d1c774ccd4899c2f40acff744cf79a75 (diff)
downloadqpid-python-1256ed9262d0a8f769a72eb83b1669b33e1f7f59.tar.gz
Cluster management improvements:
1) Enable all management methods via QMFv2 for clusters 2) Disable all management methods via QMFv1 for clusters 3) The broker-resident management agent can handle both v1 and v2 method calls 4) qmf.console (Python) now works with new and old brokers by detecting whether the broker can handle v2 commands git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@937472 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'tools/src/py')
-rwxr-xr-xtools/src/py/qpid-route29
1 files changed, 15 insertions, 14 deletions
diff --git a/tools/src/py/qpid-route b/tools/src/py/qpid-route
index 0e1c078c2a..156ab696f1 100755
--- a/tools/src/py/qpid-route
+++ b/tools/src/py/qpid-route
@@ -73,12 +73,14 @@ class RouteManager:
self.remote = None
self.qmf = Session()
self.broker = self.qmf.addBroker(localBroker, _connTimeout)
+ self.broker._waitForStable()
+ self.agent = self.broker.getBrokerAgent()
def disconnect(self):
self.qmf.delBroker(self.broker)
def getLink(self):
- links = self.qmf.getObjects(_class="link")
+ links = self.agent.getObjects(_class="link")
for link in links:
if self.remote.match(link.host, link.port):
return link
@@ -89,7 +91,7 @@ class RouteManager:
if self.local.match(self.remote.host, self.remote.port):
raise Exception("Linking broker to itself is not permitted")
- brokers = self.qmf.getObjects(_class="broker")
+ brokers = self.agent.getObjects(_class="broker")
broker = brokers[0]
link = self.getLink()
if link == None:
@@ -105,7 +107,7 @@ class RouteManager:
def delLink(self, remoteBroker):
self.remote = BrokerURL(remoteBroker)
- brokers = self.qmf.getObjects(_class="broker")
+ brokers = self.agent.getObjects(_class="broker")
broker = brokers[0]
link = self.getLink()
if link == None:
@@ -116,7 +118,7 @@ class RouteManager:
print "Close method returned:", res.status, res.text
def listLinks(self):
- links = self.qmf.getObjects(_class="link")
+ links = self.agent.getObjects(_class="link")
if len(links) == 0:
print "No Links Found"
else:
@@ -128,7 +130,6 @@ class RouteManager:
(link.host, link.port, link.transport, YN(link.durable), link.state, link.lastError)
def mapRoutes(self):
- qmf = self.qmf
print
print "Finding Linked Brokers:"
@@ -139,13 +140,13 @@ class RouteManager:
added = True
while added:
added = False
- links = qmf.getObjects(_class="link")
+ links = self.qmf.getObjects(_class="link")
for link in links:
url = BrokerURL("%s:%d" % (link.host, link.port))
if url.name() not in brokerList:
print " %s..." % url.name(),
try:
- b = qmf.addBroker("%s:%d" % (link.host, link.port), _connTimeout)
+ b = self.qmf.addBroker("%s:%d" % (link.host, link.port), _connTimeout)
brokerList[url.name()] = b
added = True
print "Ok"
@@ -154,7 +155,7 @@ class RouteManager:
print
print "Dynamic Routes:"
- bridges = qmf.getObjects(_class="bridge", dynamic=True)
+ bridges = self.qmf.getObjects(_class="bridge", dynamic=True)
fedExchanges = []
for bridge in bridges:
if bridge.src not in fedExchanges:
@@ -182,7 +183,7 @@ class RouteManager:
print
print "Static Routes:"
- bridges = qmf.getObjects(_class="bridge", dynamic=False)
+ bridges = self.qmf.getObjects(_class="bridge", dynamic=False)
if len(bridges) == 0:
print " none found"
print
@@ -216,7 +217,7 @@ class RouteManager:
for broker in brokerList:
if broker != self.local.name():
- qmf.delBroker(brokerList[broker])
+ self.qmf.delBroker(brokerList[broker])
def addRoute(self, remoteBroker, exchange, routingKey, tag, excludes, dynamic=False):
@@ -228,7 +229,7 @@ class RouteManager:
if link == None:
raise Exception("Link failed to create")
- bridges = self.qmf.getObjects(_class="bridge")
+ bridges = self.agent.getObjects(_class="bridge")
for bridge in bridges:
if bridge.linkRef == link.getObjectId() and \
bridge.dest == exchange and bridge.key == routingKey and not bridge.srcIsQueue:
@@ -250,7 +251,7 @@ class RouteManager:
if link == None:
raise Exception("Link failed to create")
- bridges = self.qmf.getObjects(_class="bridge")
+ bridges = self.agent.getObjects(_class="bridge")
for bridge in bridges:
if bridge.linkRef == link.getObjectId() and \
bridge.dest == exchange and bridge.src == queue and bridge.srcIsQueue:
@@ -274,7 +275,7 @@ class RouteManager:
raise Exception("No link found from %s to %s" % (self.remote.name(), self.local.name()))
sys.exit(0)
- bridges = self.qmf.getObjects(_class="bridge")
+ bridges = self.agent.getObjects(_class="bridge")
for bridge in bridges:
if bridge.linkRef == link.getObjectId() and \
bridge.dest == exchange and bridge.src == queue and bridge.srcIsQueue:
@@ -304,7 +305,7 @@ class RouteManager:
raise Exception("No link found from %s to %s" % (self.remote.name(), self.local.name()))
sys.exit(0)
- bridges = self.qmf.getObjects(_class="bridge")
+ bridges = self.agent.getObjects(_class="bridge")
for bridge in bridges:
if bridge.linkRef == link.getObjectId() and bridge.dest == exchange and bridge.key == routingKey \
and bridge.dynamic == dynamic: