diff options
author | Nuno Santos <nsantos@apache.org> | 2008-04-15 16:12:01 +0000 |
---|---|---|
committer | Nuno Santos <nsantos@apache.org> | 2008-04-15 16:12:01 +0000 |
commit | 8507479d8ec50b4854b866a547932e5e38db1cd1 (patch) | |
tree | cfb71795c9441265e280f6ccdd2666abf1c4decb /python/qpid/managementdata.py | |
parent | c61ea56812df14a7465cb17d840039996e85fe78 (diff) | |
download | qpid-python-8507479d8ec50b4854b866a547932e5e38db1cd1.tar.gz |
QPID-921: applied qpid-patch36.diff on behalf of Ted Ross
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@648308 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/managementdata.py')
-rw-r--r-- | python/qpid/managementdata.py | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/python/qpid/managementdata.py b/python/qpid/managementdata.py index ff43352247..2876bf0948 100644 --- a/python/qpid/managementdata.py +++ b/python/qpid/managementdata.py @@ -21,6 +21,7 @@ import qpid import socket +import struct from qpid.management import managementChannel, managementClient from threading import Lock from disp import Display @@ -63,19 +64,24 @@ class ManagementData: # def registerObjId (self, objId): - if self.baseId == 0: - if objId & 0x8000000000000000L == 0: - self.baseId = objId - 1000 + boot = objId & 0x7FFF000000000000L + if boot == 0: + return + self.bootSequence = boot def displayObjId (self, objId): - if objId & 0x8000000000000000L == 0: - return objId - self.baseId - return (objId & 0x7fffffffffffffffL) + 5000 + bank = (objId & 0x0000FFFFFF000000L) >> 24 + id = objId & 0x0000000000FFFFFFL + return bank * 1000 + id def rawObjId (self, displayId): - if displayId < 5000: - return displayId + self.baseId - return displayId - 5000 + 0x8000000000000000L + bank = displayId / 1000 + id = displayId % 1000 + if bank < 3: + objId = (bank << 24) + id + else: + objId = self.bootSequence + (bank << 24) + id + return objId def displayClassName (self, cls): (packageName, className, hash) = cls @@ -158,7 +164,7 @@ class ManagementData: self.lock = Lock () self.tables = {} self.schema = {} - self.baseId = 0 + self.bootSequence = 0 self.disp = disp self.lastUnit = None self.methodSeq = 1 @@ -166,7 +172,8 @@ class ManagementData: self.broker = Broker (host) self.client = Client (self.broker.host, self.broker.port, self.spec) - self.client.start ({"LOGIN": username, "PASSWORD": password}) + self.client.start (response='\x00' + username + '\x00' + password, + mechanism="PLAIN") self.channel = self.client.channel (1) self.mclient = managementClient (self.spec, self.ctrlHandler, self.configHandler, @@ -189,7 +196,7 @@ class ManagementData: if item[0] == key: typecode = item[1] unit = item[2] - if (typecode >= 1 and typecode <= 5) or typecode >= 12: # numerics + if (typecode >= 1 and typecode <= 5) or typecode == 12 or typecode == 13: # numerics if unit == None or unit == self.lastUnit: return str (value) else: @@ -214,7 +221,7 @@ class ManagementData: else: return "True" elif typecode == 14: - return str (UUID (bytes=value)) + return "%08x-%04x-%04x-%04x-%04x%08x" % struct.unpack ("!LHHHHL", value) elif typecode == 15: return str (value) return "*type-error*" |