summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2009-07-17 19:54:09 +0000
committerTed Ross <tross@apache.org>2009-07-17 19:54:09 +0000
commit25af886b09b809687a38870a3b815902df69e8e3 (patch)
treeb25382e5cfd2a6342550f9d6d651d60343e4b9f5
parent8619e4917cf1100bb79a39631d6ad2960444dab3 (diff)
downloadqpid-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.py6
-rw-r--r--qpid/ruby/lib/qpid/qmf.rb7
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)