summaryrefslogtreecommitdiff
path: root/qpid/python/qpid/management.py
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/python/qpid/management.py')
-rw-r--r--qpid/python/qpid/management.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/qpid/python/qpid/management.py b/qpid/python/qpid/management.py
index 55479de0e6..1059c70ada 100644
--- a/qpid/python/qpid/management.py
+++ b/qpid/python/qpid/management.py
@@ -154,7 +154,7 @@ class managementChannel:
def accept (self, msg):
self.qpidChannel.message_accept(RangedSet(msg.id))
- def message (self, body, routing_key="agent"):
+ def message (self, body, routing_key="broker"):
dp = self.qpidChannel.delivery_properties()
dp.routing_key = routing_key
mp = self.qpidChannel.message_properties()
@@ -227,14 +227,14 @@ class managementClient:
""" Invoke a method on a managed object. """
self.method (channel, userSequence, objId, className, methodName, args)
- def getObjects (self, channel, userSequence, className):
+ def getObjects (self, channel, userSequence, className, bank=0):
""" Request immediate content from broker """
codec = Codec (self.spec)
self.setHeader (codec, ord ('G'), userSequence)
ft = {}
ft["_class"] = className
codec.write_map (ft)
- msg = channel.message(codec.encoded)
+ msg = channel.message(codec.encoded, routing_key="agent.%d" % bank)
channel.send ("qpid.management", msg)
def syncWaitForStable (self, channel):
@@ -273,14 +273,14 @@ class managementClient:
self.cv.release ()
return result
- def syncGetObjects (self, channel, className):
+ def syncGetObjects (self, channel, className, bank=0):
""" Synchronous (blocking) get call """
self.cv.acquire ()
self.syncInFlight = True
self.syncResult = []
self.syncSequence = self.seqMgr.reserve ("sync")
self.cv.release ()
- self.getObjects (channel, self.syncSequence, className)
+ self.getObjects (channel, self.syncSequence, className, bank)
self.cv.acquire ()
starttime = time ()
while self.syncInFlight:
@@ -748,6 +748,8 @@ class managementClient:
sequence = self.seqMgr.reserve ((userSequence, classId, methodName))
self.setHeader (codec, ord ('M'), sequence)
codec.write_uint64 (objId) # ID of object
+ codec.write_str8 (methodName)
+ bank = (objId & 0x0000FFFFFF000000) >> 24
# Encode args according to schema
if classId not in self.schema:
@@ -777,6 +779,5 @@ class managementClient:
packageName = classId[0]
className = classId[1]
- msg = channel.message(codec.encoded, "agent.method." + packageName + "." + \
- className + "." + methodName)
+ msg = channel.message(codec.encoded, "agent." + str(bank))
channel.send ("qpid.management", msg)