summaryrefslogtreecommitdiff
path: root/qpid
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2010-09-02 17:54:12 +0000
committerTed Ross <tross@apache.org>2010-09-02 17:54:12 +0000
commitdf69e2744f4f569bcc49adab383163329d9abb2f (patch)
treea9688b31616c8518a2f5573775ca1ea2951b14c2 /qpid
parent728641d5340b2b5ae34cff3cdf87c5f27ea2aa64 (diff)
downloadqpid-python-df69e2744f4f569bcc49adab383163329d9abb2f.tar.gz
QPID-2842 - Fixed inconsistent display of object ids in qpid-tool.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@992039 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid')
-rwxr-xr-xqpid/tools/src/py/qpid-tool64
1 files changed, 61 insertions, 3 deletions
diff --git a/qpid/tools/src/py/qpid-tool b/qpid/tools/src/py/qpid-tool
index cebd865501..b36bb89fa5 100755
--- a/qpid/tools/src/py/qpid-tool
+++ b/qpid/tools/src/py/qpid-tool
@@ -26,6 +26,7 @@ import socket
from cmd import Cmd
from shlex import split
from threading import Lock
+from time import strftime, gmtime
from qpid.disp import Display
from qpid.peer import Closed
from qmf.console import Session, Console, SchemaClass, ObjectId
@@ -398,7 +399,7 @@ class QmfData(Console):
if dtime == 0:
dtimestr = "-"
if dtime == 0 or (dtime > 0 and show_deleted):
- row = (dispId, self.disp.timestamp(ctime), dtimestr, obj.getIndex())
+ row = (dispId, self.disp.timestamp(ctime), dtimestr, self.objectIndex(obj))
rows.append(row)
finally:
self.lock.release()
@@ -416,10 +417,10 @@ class QmfData(Console):
obj = self.objects[dispId]
caption = "Object of type: %r" % obj.getClassKey()
for prop in obj.getProperties():
- row = (prop[0].name, "%r" % prop[1])
+ row = (prop[0].name, self.valueByType(prop[0].type, prop[1]))
rows.append(row)
for stat in obj.getStatistics():
- row = (stat[0].name, "%r" % stat[1])
+ row = (stat[0].name, self.valueByType(stat[0].type, stat[1]))
rows.append(row)
else:
print "No object found with ID %d" % dispId
@@ -481,6 +482,51 @@ class QmfData(Console):
else:
raise ValueError ("Invalid type code: %s" % str(typecode))
+ def valueByType(self, typecode, val):
+ if typecode == 1: return "%d" % val
+ elif typecode == 2: return "%d" % val
+ elif typecode == 3: return "%d" % val
+ elif typecode == 4: return "%d" % val
+ elif typecode == 6: return val
+ elif typecode == 7: return val
+ elif typecode == 8: return strftime("%c", gmtime(val / 1000000000))
+ elif typecode == 9:
+ if val < 0: val = 0
+ sec = val / 1000000000
+ min = sec / 60
+ hour = min / 60
+ day = hour / 24
+ result = ""
+ if day > 0:
+ result = "%dd " % day
+ if hour > 0 or result != "":
+ result += "%dh " % (hour % 24)
+ if min > 0 or result != "":
+ result += "%dm " % (min % 60)
+ result += "%ds" % (sec % 60)
+ return result
+
+ elif typecode == 10: return str(self.idRegistry.displayId(val))
+ elif typecode == 11:
+ if val:
+ return "True"
+ else:
+ return "False"
+
+ elif typecode == 12: return "%f" % val
+ elif typecode == 13: return "%f" % val
+ elif typecode == 14: return "%r" % val
+ elif typecode == 15: return "%r" % val
+ elif typecode == 16: return "%d" % val
+ elif typecode == 17: return "%d" % val
+ elif typecode == 18: return "%d" % val
+ elif typecode == 19: return "%d" % val
+ elif typecode == 20: return "%r" % val
+ elif typecode == 21: return "%r" % val
+ elif typecode == 22: return "%r" % val
+ else:
+ raise ValueError ("Invalid type code: %s" % str(typecode))
+
def accessName (self, code):
""" Convert element access codes to printable strings """
if code == '1': return "ReadCreate"
@@ -495,6 +541,18 @@ class QmfData(Console):
else:
return text
+ def objectIndex(self, obj):
+ result = ""
+ first = True
+ props = obj.getProperties()
+ for prop in props:
+ if prop[0].index:
+ if not first:
+ result += "."
+ result += self.valueByType(prop[0].type, prop[1])
+ first = None
+ return result
+
#=====================
# Methods from Console