summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-12-17 18:36:47 +0000
committerTed Ross <tross@apache.org>2008-12-17 18:36:47 +0000
commit5b8b6553e5e5d8cc64d74ee359ba42c755f3755e (patch)
tree8dc131c9ed68df158f564cb77ab36053f56c8f13
parentb2c9227189307ebef1f1d2d2576b0b418e1086f1 (diff)
downloadqpid-python-5b8b6553e5e5d8cc64d74ee359ba42c755f3755e.tar.gz
Restrict queries to the broker-resident agent only.
This optimization prevents long timeouts caused by non-responsive agents on the broker. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@727462 13f79535-47bb-0310-9956-ffa450edef68
-rwxr-xr-xqpid/python/commands/qpid-config30
1 files changed, 18 insertions, 12 deletions
diff --git a/qpid/python/commands/qpid-config b/qpid/python/commands/qpid-config
index beec67c826..1b7b5171ed 100755
--- a/qpid/python/commands/qpid-config
+++ b/qpid/python/commands/qpid-config
@@ -95,13 +95,17 @@ class BrokerManager:
self.url = brokerUrl
self.qmf = Session()
self.broker = self.qmf.addBroker(brokerUrl)
+ agents = self.qmf.getAgents()
+ for a in agents:
+ if a.getAgentBank() == 0:
+ self.brokerAgent = a
def Disconnect(self):
self.qmf.delBroker(self.broker)
def Overview (self):
- exchanges = self.qmf.getObjects(_class="exchange")
- queues = self.qmf.getObjects(_class="queue")
+ exchanges = self.qmf.getObjects(_class="exchange", _agent=self.brokerAgent)
+ queues = self.qmf.getObjects(_class="queue", _agent=self.brokerAgent)
print "Total Exchanges: %d" % len (exchanges)
etype = {}
for ex in exchanges:
@@ -122,7 +126,7 @@ class BrokerManager:
print " non-durable: %d" % (len (queues) - _durable)
def ExchangeList (self, filter):
- exchanges = self.qmf.getObjects(_class="exchange")
+ exchanges = self.qmf.getObjects(_class="exchange", _agent=self.brokerAgent)
caption1 = "Type "
caption2 = "Exchange Name"
maxNameLen = len(caption2)
@@ -145,9 +149,9 @@ class BrokerManager:
print
def ExchangeListRecurse (self, filter):
- exchanges = self.qmf.getObjects(_class="exchange")
- bindings = self.qmf.getObjects(_class="binding")
- queues = self.qmf.getObjects(_class="queue")
+ exchanges = self.qmf.getObjects(_class="exchange", _agent=self.brokerAgent)
+ bindings = self.qmf.getObjects(_class="binding", _agent=self.brokerAgent)
+ queues = self.qmf.getObjects(_class="queue", _agent=self.brokerAgent)
for ex in exchanges:
if self.match (ex.name, filter):
print "Exchange '%s' (%s)" % (ex.name, ex.type)
@@ -161,7 +165,7 @@ class BrokerManager:
def QueueList (self, filter):
- queues = self.qmf.getObjects(_class="queue")
+ queues = self.qmf.getObjects(_class="queue", _agent=self.brokerAgent)
caption = "Queue Name"
maxNameLen = len(caption)
@@ -191,9 +195,9 @@ class BrokerManager:
print
def QueueListRecurse (self, filter):
- exchanges = self.qmf.getObjects(_class="exchange")
- bindings = self.qmf.getObjects(_class="binding")
- queues = self.qmf.getObjects(_class="queue")
+ exchanges = self.qmf.getObjects(_class="exchange", _agent=self.brokerAgent)
+ bindings = self.qmf.getObjects(_class="binding", _agent=self.brokerAgent)
+ queues = self.qmf.getObjects(_class="queue", _agent=self.brokerAgent)
for queue in queues:
if self.match (queue.name, filter):
print "Queue '%s'" % queue.name
@@ -378,8 +382,10 @@ try:
bm.Unbind (cargs[1:])
else:
Usage ()
+except KeyboardInterrupt:
+ print
except Exception,e:
print "Failed:", e.args
sys.exit(1)
-
-bm.Disconnect()
+finally:
+ bm.Disconnect()