This is an automated email from the ASF dual-hosted git repository. chug pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git
The following commit(s) were added to refs/heads/main by this push: new 6f75d1f DISPATCH-2276: Accomodate hex values in 0.36+ qpid-proton logging (#1525) 6f75d1f is described below commit 6f75d1f3dc1600204289e54ed395a22e5e486f26 Author: Chuck Rolke <ch...@users.noreply.github.com> AuthorDate: Tue Feb 22 12:09:59 2022 -0500 DISPATCH-2276: Accomodate hex values in 0.36+ qpid-proton logging (#1525) * DISPATCH-2276: Accomodate hex values in 0.36+ qpid-proton logging * Fix code that extracts integer values during AMQP analysis * Convert ints from hex to decimal for web display of values line link and session numbers and credit. * DISPATCH-2276: Topology disposition test does not need to import proton Co-authored-by: chug <chug@taj.localdomain> Co-authored-by: Chuck Rolke <c...@apache.org> --- tests/system_tests_topology_disposition.py | 2 -- tools/scraper/amqp_detail.py | 8 ++++---- tools/scraper/parser.py | 3 +++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/system_tests_topology_disposition.py b/tests/system_tests_topology_disposition.py index 25e8046..22b684c 100644 --- a/tests/system_tests_topology_disposition.py +++ b/tests/system_tests_topology_disposition.py @@ -23,7 +23,6 @@ import time import unittest from subprocess import PIPE, STDOUT -import proton from proton import Message from proton.handlers import MessagingHandler from proton.reactor import Container @@ -406,7 +405,6 @@ class TopologyDispositionTests (TestCase): self.assertIsNone(error) self.assertIsNone(error) - @unittest.skipIf(proton.VERSION > (0, 36, 0), "see DISPATCH-2276") def test_04_scraper_tool(self): name = 'test_04' error = str(None) diff --git a/tools/scraper/amqp_detail.py b/tools/scraper/amqp_detail.py index 0b2c3cd..b1c8147 100755 --- a/tools/scraper/amqp_detail.py +++ b/tools/scraper/amqp_detail.py @@ -681,7 +681,7 @@ class AllDetails(): sdispmap = sess.rx_rcvr_disposition_map if splf.data.is_receiver else sess.rx_sndr_disposition_map else: sdispmap = sess.tx_rcvr_disposition_map if splf.data.is_receiver else sess.tx_sndr_disposition_map - for sdid in range(int(splf.data.first), (int(splf.data.last) + 1)): + for sdid in range(int(splf.data.first, 0), (int(splf.data.last, 0) + 1)): did = str(sdid) if did in sdispmap: old_splf = sdispmap[did] @@ -829,7 +829,7 @@ class AllDetails(): tod_of_second_attach = plf.datetime if look_for_sender_delivery_id: if plf.data.name == "attach" and not plf.data.is_receiver: - current_delivery = int(plf.data.described_type.dict.get("initial-delivery_count", "0")) + current_delivery = int(plf.data.described_type.dict.get("initial-delivery_count", "0"), 0) delivery_limit = current_delivery look_for_sender_delivery_id = False @@ -838,7 +838,7 @@ class AllDetails(): # a flow in the normal direction updates the delivery limit dc = plf.data.described_type.dict.get("delivery-count", "0") lc = plf.data.described_type.dict.get("link-credit", "0") - delivery_limit = int(dc) + int(lc) # TODO: wrap at 32-bits + delivery_limit = int(dc, 0) + int(lc, 0) # TODO: wrap at 32-bits if n_attaches < 2: # a working flow before sender attach - cancel initial stall init_stall = False @@ -858,7 +858,7 @@ class AllDetails(): else: # flow in the opposite direction updates the senders current delivery # normally used to consume credit in response to a drain from receiver - current_delivery = int(plf.data.described_type.dict.get("initial-delivery_count", "0")) + current_delivery = int(plf.data.described_type.dict.get("initial-delivery_count", "0"), 0) elif plf.data.transfer: if plf.data.direction == dir_of_xfer: diff --git a/tools/scraper/parser.py b/tools/scraper/parser.py index 4e1f4cd..e5217bf 100755 --- a/tools/scraper/parser.py +++ b/tools/scraper/parser.py @@ -296,6 +296,9 @@ class DescribedType: if '=' not in fields[0]: raise ValueError("Field does not contain equal sign '%s'" % fields[0]) key, val = DescribedType.get_key_and_val(fields[0]) + # New proton logging uses hex strings. Convert to decimal strings. + if val.startswith("0x"): + val = str(int(val, 0)) del fields[0] if DescribedType.is_dtype_name(val): # recursing to process subtype --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org