You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gm...@apache.org on 2016/12/08 14:13:14 UTC

qpid-dispatch git commit: DISPATCH-556 - Default limit of rows obtained by qdstat to 1000

Repository: qpid-dispatch
Updated Branches:
  refs/heads/master b794973eb -> 07eb9c404


DISPATCH-556 - Default limit of rows obtained by qdstat to 1000

(cherry picked from commit 37f0b705f65c8f6d6074a7be101f857c49f8d7e8)


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/07eb9c40
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/07eb9c40
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/07eb9c40

Branch: refs/heads/master
Commit: 07eb9c404bd3375c95993c0ddb7cec4bf1d33dd9
Parents: b794973
Author: Ganesh Murthy <gm...@redhat.com>
Authored: Wed Dec 7 16:33:44 2016 -0500
Committer: Ganesh Murthy <gm...@redhat.com>
Committed: Thu Dec 8 09:12:32 2016 -0500

----------------------------------------------------------------------
 tests/system_tests_link_routes.py | 17 ++++++++++++-----
 tests/system_tests_qdstat.py      | 18 ++++++++++++++++--
 tools/qdstat                      | 27 ++++++++++++++++++---------
 3 files changed, 46 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/07eb9c40/tests/system_tests_link_routes.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_link_routes.py b/tests/system_tests_link_routes.py
index ada1795..15749dc 100644
--- a/tests/system_tests_link_routes.py
+++ b/tests/system_tests_link_routes.py
@@ -119,9 +119,12 @@ class LinkRouteTest(TestCase):
         # bit more time for the routers to stabilize.
         sleep(2)
 
-    def run_qdstat_linkRoute(self, address):
+    def run_qdstat_linkRoute(self, address, args=None):
+        cmd = ['qdstat', '--bus', str(address), '--timeout', str(TIMEOUT) ] + ['--linkroute']
+        if args:
+            cmd = cmd + args
         p = self.popen(
-            ['qdstat', '--bus', str(address), '--timeout', str(TIMEOUT) ] + ['--linkroute'],
+            cmd,
             name='qdstat-'+self.id(), stdout=PIPE, expect=None)
 
         out = p.communicate()[0]
@@ -196,9 +199,6 @@ class LinkRouteTest(TestCase):
         out = self.run_qdmanage(cmd=cmd, address=self.routers[1].addresses[0])
         self.assertTrue(identity in out)
 
-
-
-
     def test_bbb_qdstat_link_routes_routerB(self):
         """
         Runs qdstat on router B to make sure that router B has two link routes, one 'in' and one 'out'
@@ -209,6 +209,13 @@ class LinkRouteTest(TestCase):
         self.assertEqual(out_list.count('in'), 2)
         self.assertEqual(out_list.count('out'), 2)
 
+        parts = out.split("\n")
+        self.assertEqual(len(parts), 8)
+
+        out = self.run_qdstat_linkRoute(self.routers[1].addresses[0], args=['--limit=1'])
+        parts = out.split("\n")
+        self.assertEqual(len(parts), 5)
+
     def test_ccc_qdstat_link_routes_routerC(self):
         """
         Runs qdstat on router C to make sure that router C has two link routes, one 'in' and one 'out'

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/07eb9c40/tests/system_tests_qdstat.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_qdstat.py b/tests/system_tests_qdstat.py
index 016acae..d54f7df 100644
--- a/tests/system_tests_qdstat.py
+++ b/tests/system_tests_qdstat.py
@@ -62,13 +62,27 @@ class QdstatTest(system_test.TestCase):
         self.run_qdstat(['--connections'], r'host.*container.*role')
 
     def test_links(self):
-        self.run_qdstat(['--links'], r'endpoint.*out.*local.*temp.')
+        out = self.run_qdstat(['--links'], r'endpoint.*out.*local.*temp.')
+        parts = out.split("\n")
+        self.assertEqual(len(parts), 6)
+
+    def test_links_with_limit(self):
+        out = self.run_qdstat(['--links', '--limit=1'])
+        parts = out.split("\n")
+        self.assertEqual(len(parts), 5)
 
     def test_nodes(self):
         self.run_qdstat(['--nodes'], r'No Router List')
 
     def test_address(self):
-        self.run_qdstat(['--address'], r'\$management')
+        out = self.run_qdstat(['--address'], r'\$management')
+        parts = out.split("\n")
+        self.assertEqual(len(parts), 8)
+
+    def test_address_with_limit(self):
+        out = self.run_qdstat(['--address', '--limit=1'])
+        parts = out.split("\n")
+        self.assertEqual(len(parts), 5)
 
     def test_memory(self):
         out = self.run_qdstat(['--memory'])

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/07eb9c40/tools/qdstat
----------------------------------------------------------------------
diff --git a/tools/qdstat b/tools/qdstat
index 5bd076f..a6c98e0 100755
--- a/tools/qdstat
+++ b/tools/qdstat
@@ -52,7 +52,11 @@ def parse_args(argv):
     parser.add_option("--linkroutes", help="Show Link Routes",              action="store_const", const="linkroutes", dest="show")
     parser.add_option("-v", "--verbose", help="Show maximum detail",        action="store_true", dest="verbose")
     parser.add_option("--log", help="Show recent log entries", action="store_const", const="log", dest="show")
-    parser.add_option("--limit", help="Limit number of log entries", type="int")
+
+    # This limit can be used to limit the number of output rows and can be used in conjunction with options
+    # like -c, -l, -a, --autolinks, --linkroutes and --log.
+    # By default, the limit is set to 1000 rows.
+    parser.add_option("--limit", help="Limit number of output rows", type="int", default=1000)
 
     opts, args = parser.parse_args(args=argv)
 
@@ -74,13 +78,13 @@ class BusManager(Node):
                             ssl_domain=opts_ssl_domain(opts),
                             sasl=opts_sasl(self.opts)))
 
-    def query(self, entity_type, attribute_names=None):
+    def query(self, entity_type, attribute_names=None, limit=None):
         if attribute_names:
             unames = []
             for a in attribute_names:
                 unames.append(unicode(a))
             attribute_names = unames
-        return super(BusManager, self).query(entity_type, attribute_names).get_entities()
+        return super(BusManager, self).query(entity_type, attribute_names, count=limit).get_entities()
 
     def connAuth(self, conn):
         ##
@@ -127,7 +131,7 @@ class BusManager(Node):
 
         rows = []
 
-        objects = self.query('org.apache.qpid.dispatch.connection')
+        objects = self.query('org.apache.qpid.dispatch.connection', limit=self.opts.limit)
 
         for conn in objects:
             row = []
@@ -255,7 +259,8 @@ class BusManager(Node):
                 'capacity', 'undeliveredCount', 'unsettledCount', 'deliveryCount',
                 'presettledCount', 'acceptedCount', 'rejectedCount', 'releasedCount',
                 'modifiedCount', 'adminStatus', 'operStatus', 'linkName')
-        objects = self.query('org.apache.qpid.dispatch.router.link', cols)
+
+        objects = self.query('org.apache.qpid.dispatch.router.link', cols, limit=self.opts.limit)
 
         for link in objects:
             row = []
@@ -300,7 +305,7 @@ class BusManager(Node):
         cols = ('id', 'nextHop', 'routerLink', 'lastTopoChange')
         if self.opts.verbose:
             cols += ('cost', 'linkState', 'validOrigins')
-        objects  = self.query('org.apache.qpid.dispatch.router.node', cols)
+        objects  = self.query('org.apache.qpid.dispatch.router.node', cols, limit=self.opts.limit)
 
         # Find the most recent topo change in this neighborhood.
         lastTopoChange = 0.0
@@ -356,7 +361,8 @@ class BusManager(Node):
         cols = ('distribution', 'inProcess', 'subscriberCount', 'remoteCount',
                 'containerCount', 'deliveriesIngress', 'deliveriesEgress',
                 'deliveriesTransit', 'deliveriesToContainer', 'deliveriesFromContainer')
-        objects = self.query('org.apache.qpid.dispatch.router.address', cols)
+
+        objects = self.query('org.apache.qpid.dispatch.router.address', cols, limit=self.opts.limit)
 
         for addr in objects:
             row = []
@@ -392,7 +398,8 @@ class BusManager(Node):
         rows = []
 
         cols = ('addr', 'dir', 'phase', 'externalAddr', 'linkRef', 'operStatus', 'lastError')
-        objects = self.query('org.apache.qpid.dispatch.router.config.autoLink', cols)
+
+        objects = self.query('org.apache.qpid.dispatch.router.config.autoLink', cols, limit=self.opts.limit)
 
         for al in objects:
             row = []
@@ -419,7 +426,8 @@ class BusManager(Node):
         rows = []
 
         cols = ('prefix', 'dir', 'distribution', 'operStatus')
-        link_routes = self.query('org.apache.qpid.dispatch.router.config.linkRoute', cols)
+
+        link_routes = self.query('org.apache.qpid.dispatch.router.config.linkRoute', cols, limit=self.opts.limit)
 
         for link_route in link_routes:
             row = []
@@ -449,6 +457,7 @@ class BusManager(Node):
         cols = ('identity', 'typeSize', 'transferBatchSize', 'localFreeListMax',
                 'totalAllocFromHeap', 'heldByThreads', 'batchesRebalancedToThreads',
                 'batchesRebalancedToGlobal')
+
         objects = self.query('org.apache.qpid.dispatch.allocator', cols)
 
         for t in objects:


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org