summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-08-05 15:45:53 +0000
committerTed Ross <tross@apache.org>2008-08-05 15:45:53 +0000
commitbb667cf14d21dc8a873636a9cf5e3017f4aa5503 (patch)
tree61692ad0fee3f5279b9db376dc40862eb74481d8
parentf7a801b868367d1a294b237e22e382f986c5de83 (diff)
downloadqpid-python-bb667cf14d21dc8a873636a9cf5e3017f4aa5503.tar.gz
Restructured qpid-tool commands to allow active-only lists
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@682764 13f79535-47bb-0310-9956-ffa450edef68
-rwxr-xr-xpython/commands/qpid-tool12
-rw-r--r--python/qpid/managementdata.py31
2 files changed, 26 insertions, 17 deletions
diff --git a/python/commands/qpid-tool b/python/commands/qpid-tool
index 7301dad6e4..60535c253b 100755
--- a/python/commands/qpid-tool
+++ b/python/commands/qpid-tool
@@ -55,10 +55,11 @@ class Mcli (Cmd):
print "Commands:"
print " list - Print summary of existing objects by class"
print " list <className> - Print list of objects of the specified class"
- print " list <className> all - Print contents of all objects of specified class"
- print " list <className> active - Print contents of all non-deleted objects of specified class"
- print " list <list-of-IDs> - Print contents of one or more objects (infer className)"
- print " list <className> <list-of-IDs> - Print contents of one or more objects"
+ print " list <className> active - Print list of non-deleted objects of the specified class"
+ print " show <className> - Print contents of all objects of specified class"
+ print " show <className> active - Print contents of all non-deleted objects of specified class"
+ print " show <list-of-IDs> - Print contents of one or more objects (infer className)"
+ print " show <className> <list-of-IDs> - Print contents of one or more objects"
print " list is space-separated, ranges may be specified (i.e. 1004-1010)"
print " call <ID> <methodName> [<args>] - Invoke a method on an object"
print " schema - Print summary of object classes seen on the target"
@@ -115,6 +116,9 @@ class Mcli (Cmd):
def do_list (self, data):
self.dataObject.do_list (data)
+ def do_show (self, data):
+ self.dataObject.do_show (data)
+
def do_call (self, data):
try:
self.dataObject.do_call (data)
diff --git a/python/qpid/managementdata.py b/python/qpid/managementdata.py
index e75cd8a99d..fc9eb391b7 100644
--- a/python/qpid/managementdata.py
+++ b/python/qpid/managementdata.py
@@ -367,7 +367,7 @@ class ManagementData:
def listOfIds (self, classKey, tokens):
""" Generate a tuple of object ids for a classname based on command tokens. """
list = []
- if tokens[0] == "all":
+ if len(tokens) == 0 or tokens[0] == "all":
for id in self.tables[classKey]:
list.append (self.displayObjId (id))
@@ -385,7 +385,7 @@ class ManagementData:
if self.getClassForId (self.rawObjId (long (id))) == classKey:
list.append (id)
else:
- list.append (token)
+ list.append (int(token))
list.sort ()
result = ()
@@ -421,26 +421,29 @@ class ManagementData:
finally:
self.lock.release ()
- def listObjects (self, className):
+ def listObjects (self, tokens):
""" Generate a display of a list of objects in a class """
+ if len(tokens) == 0:
+ print "Error - No class name provided"
+ return
+
self.lock.acquire ()
try:
- classKey = self.getClassKey (className)
+ classKey = self.getClassKey (tokens[0])
if classKey == None:
- print ("Object type %s not known" % className)
+ print ("Object type %s not known" % tokens[0])
else:
rows = []
if classKey in self.tables:
- sorted = self.tables[classKey].keys ()
- sorted.sort ()
- for objId in sorted:
- (ts, config, inst) = self.tables[classKey][objId]
+ ids = self.listOfIds(classKey, tokens[1:])
+ for objId in ids:
+ (ts, config, inst) = self.tables[classKey][self.rawObjId(objId)]
createTime = self.disp.timestamp (ts[1])
destroyTime = "-"
if ts[2] > 0:
destroyTime = self.disp.timestamp (ts[2])
objIndex = self.getObjIndex (classKey, config)
- row = (self.refName (objId), createTime, destroyTime, objIndex)
+ row = (objId, createTime, destroyTime, objIndex)
rows.append (row)
self.disp.table ("Objects of type %s.%s" % (classKey[0], classKey[1]),
("ID", "Created", "Destroyed", "Index"),
@@ -687,10 +690,12 @@ class ManagementData:
tokens = data.split ()
if len (tokens) == 0:
self.listClasses ()
- elif len (tokens) == 1 and not self.isOid (tokens[0]):
- self.listObjects (data)
else:
- self.showObjects (tokens)
+ self.listObjects (tokens)
+
+ def do_show (self, data):
+ tokens = data.split ()
+ self.showObjects (tokens)
def do_schema (self, data):
if data == "":