From 1302559acd97ca9f70d2cd2cb1efc13ed7b2d03d Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Wed, 15 Feb 2012 21:58:46 +0000 Subject: QPID-3847 - Fixed recursive ID generation when V1 and V2 are mixed. Thanks to Siddhesh Poyarekar for his help with this issue. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1244750 13f79535-47bb-0310-9956-ffa450edef68 --- tools/src/py/qpid-tool | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'tools') diff --git a/tools/src/py/qpid-tool b/tools/src/py/qpid-tool index df8b7e3f96..af948b13a9 100755 --- a/tools/src/py/qpid-tool +++ b/tools/src/py/qpid-tool @@ -252,6 +252,20 @@ class QmfData(Console): elif tokens[0].isdigit(): self.showObjectById(int(tokens[0])) + def _build_object_name(self, obj): + values = [] + for p,v in obj.getProperties(): + if p.name != "vhostRef" and p.index == 1: + if p.name == "brokerRef": # reference to broker + values.append('org.apache.qpid.broker:broker:amqp-broker') + else: + values.append(str(v)) + + object_key = ",".join(values) + class_key = obj.getClassKey(); + return class_key.getPackageName() + ":" + class_key.getClassName() + ":" + object_key + + def do_call(self, data): tokens = data.split() if len(tokens) < 2: @@ -290,10 +304,8 @@ class QmfData(Console): object_id = obj.getObjectId(); if not object_id.isV2 and obj.getAgent().isV2: - object_key = ",".join([str(v) for p, v in obj.getProperties() if p.name != "vhostRef" and p.index == 1]) - class_key = obj.getClassKey(); - object_name = class_key.getPackageName() + ":" + class_key.getClassName() + ":" + object_key - object_id = ObjectId.create(object_id.agentName, object_name) + object_name = self._build_object_name(obj) + object_id = ObjectId.create(object_id.agentName, object_name) self.session._sendMethodRequest(self.broker, obj.getClassKey(), object_id, methodName, args) -- cgit v1.2.1