From bb667cf14d21dc8a873636a9cf5e3017f4aa5503 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Tue, 5 Aug 2008 15:45:53 +0000 Subject: 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 --- python/commands/qpid-tool | 12 ++++++++---- 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 - Print list of objects of the specified class" - print " list all - Print contents of all objects of specified class" - print " list active - Print contents of all non-deleted objects of specified class" - print " list - Print contents of one or more objects (infer className)" - print " list - Print contents of one or more objects" + print " list active - Print list of non-deleted objects of the specified class" + print " show - Print contents of all objects of specified class" + print " show active - Print contents of all non-deleted objects of specified class" + print " show - Print contents of one or more objects (infer className)" + print " show - Print contents of one or more objects" print " list is space-separated, ranges may be specified (i.e. 1004-1010)" print " call [] - 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 == "": -- cgit v1.2.1