diff options
author | Ted Ross <tross@apache.org> | 2009-07-17 19:54:09 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2009-07-17 19:54:09 +0000 |
commit | 25af886b09b809687a38870a3b815902df69e8e3 (patch) | |
tree | b25382e5cfd2a6342550f9d6d651d60343e4b9f5 | |
parent | 8619e4917cf1100bb79a39631d6ad2960444dab3 (diff) | |
download | qpid-python-25af886b09b809687a38870a3b815902df69e8e3.tar.gz |
QPID-1973 - Calling session.objects fails to return objects in certain cases
There is a window during which object queries fail because the console does not have
up-to-date agent information. This fix closes the window completely. I would like to
find a more elegant and efficient solution to this problem, but this will work for now.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@795209 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/python/qmf/console.py | 6 | ||||
-rw-r--r-- | qpid/ruby/lib/qpid/qmf.rb | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/qpid/python/qmf/console.py b/qpid/python/qmf/console.py index c3ef0a1a50..315d581fc6 100644 --- a/qpid/python/qmf/console.py +++ b/qpid/python/qmf/console.py @@ -609,6 +609,12 @@ class Session: brokerList = self.brokers for broker in brokerList: broker._waitForStable() + if broker.isConnected(): + if "_package" not in kwargs or "_class" not in kwargs or \ + kwargs["_package"] != "org.apache.qpid.broker" or \ + kwargs["_class"] != "agent": + self.getObjects(_package = "org.apache.qpid.broker", _class = "agent", + _agent = broker.getAgent(1,0)) agentList = [] if "_agent" in kwargs: diff --git a/qpid/ruby/lib/qpid/qmf.rb b/qpid/ruby/lib/qpid/qmf.rb index b9961c9a18..1107f4384e 100644 --- a/qpid/ruby/lib/qpid/qmf.rb +++ b/qpid/ruby/lib/qpid/qmf.rb @@ -333,7 +333,12 @@ module Qpid::Qmf else broker_list = @brokers end - broker_list.each { |broker| broker.wait_for_stable } + broker_list.each { |broker| + broker.wait_for_stable + if kwargs[:package] != "org.apache.qpid.broker" or kwargs[:class] != "agent" + objects(:agent => broker.agent(1,0), :package => "org.apache.qpid.broker", :class => "agent") if broker.connected? + end + } agent_list = [] if kwargs.include?(:agent) |