diff options
author | Ted Ross <tross@apache.org> | 2008-08-05 15:45:53 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2008-08-05 15:45:53 +0000 |
commit | bb667cf14d21dc8a873636a9cf5e3017f4aa5503 (patch) | |
tree | 61692ad0fee3f5279b9db376dc40862eb74481d8 | |
parent | f7a801b868367d1a294b237e22e382f986c5de83 (diff) | |
download | qpid-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-x | python/commands/qpid-tool | 12 | ||||
-rw-r--r-- | python/qpid/managementdata.py | 31 |
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 == "": |