Author: tross
Date: Wed Dec 17 10:36:47 2008
New Revision: 727462
URL: http://svn.apache.org/viewvc?rev=727462&view=rev
Log:
Restrict queries to the broker-resident agent only.
This optimization prevents long timeouts caused by non-responsive agents
on the broker.
Modified:
qpid/trunk/qpid/python/commands/qpid-config
Modified: qpid/trunk/qpid/python/commands/qpid-config
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/commands/qpid-config?rev=727462&r1=727461&r2=727462&view=diff
==============================================================================
--- qpid/trunk/qpid/python/commands/qpid-config (original)
+++ qpid/trunk/qpid/python/commands/qpid-config Wed Dec 17 10:36:47 2008
@@ -95,13 +95,17 @@
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 @@
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 @@
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 @@
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 @@
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 @@
bm.Unbind (cargs[1:])
else:
Usage ()
+except KeyboardInterrupt:
+ print
except Exception,e:
print "Failed:", e.args
sys.exit(1)
-
-bm.Disconnect()
+finally:
+ bm.Disconnect()