diff options
author | Ted Ross <tross@apache.org> | 2008-12-17 18:36:47 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2008-12-17 18:36:47 +0000 |
commit | 5b8b6553e5e5d8cc64d74ee359ba42c755f3755e (patch) | |
tree | 8dc131c9ed68df158f564cb77ab36053f56c8f13 | |
parent | b2c9227189307ebef1f1d2d2576b0b418e1086f1 (diff) | |
download | qpid-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-x | qpid/python/commands/qpid-config | 30 |
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() |