From 7a9df014b22d1da9642fea6c270ae1479749859e Mon Sep 17 00:00:00 2001 From: wenyiz2021 <91497961+wenyiz2021@users.noreply.github.com> Date: Tue, 13 Jun 2023 10:10:32 -0700 Subject: [PATCH 1/5] fix precedence --- scripts/portstat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/portstat b/scripts/portstat index 43746cc1c3e..6294ba57a93 100755 --- a/scripts/portstat +++ b/scripts/portstat @@ -338,7 +338,7 @@ class Portstat(object): print(table_as_json(table, header)) else: print(tabulate(table, header, tablefmt='simple', stralign='right')) - if multi_asic.is_multi_asic() or device_info.is_chassis() and not use_json: + if (multi_asic.is_multi_asic() or device_info.is_chassis()) and not use_json: print("\nReminder: Please execute 'show interface counters -d all' to include internal links\n") def cnstat_intf_diff_print(self, cnstat_new_dict, cnstat_old_dict, intf_list): @@ -556,7 +556,7 @@ class Portstat(object): print(table_as_json(table, header)) else: print(tabulate(table, header, tablefmt='simple', stralign='right')) - if multi_asic.is_multi_asic() or device_info.is_chassis() and not use_json: + if (multi_asic.is_multi_asic() or device_info.is_chassis()) and not use_json: print("\nReminder: Please execute 'show interface counters -d all' to include internal links\n") def main(): From 6bd7d94a8bbf387b4a76efff6ae4aea4be7dbf9d Mon Sep 17 00:00:00 2001 From: wenyiz2021 <91497961+wenyiz2021@users.noreply.github.com> Date: Tue, 13 Jun 2023 10:25:19 -0700 Subject: [PATCH 2/5] add UT --- tests/portstat_test.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/portstat_test.py b/tests/portstat_test.py index bf7a2db190b..0d9092a4ac9 100644 --- a/tests/portstat_test.py +++ b/tests/portstat_test.py @@ -192,6 +192,12 @@ Reminder: Please execute 'show interface counters -d all' to include internal links """ +multi_asic_external_intf_counters_use_json = """\ + IFACE STATE RX_OK RX_BPS RX_UTIL RX_ERR RX_DRP RX_OVR TX_OK TX_BPS TX_UTIL TX_ERR TX_DRP TX_OVR +--------- ------- ------- -------- --------- -------- -------- -------- ------- -------- --------- -------- -------- -------- +Ethernet0 U 8 0.00 B/s 0.00% 10 100 N/A 10 0.00 B/s 0.00% N/A N/A N/A +Ethernet4 U 4 0.00 B/s 0.00% 0 1,000 N/A 40 0.00 B/s 0.00% N/A N/A N/A +""" intf_invalid_asic_error = """ValueError: Unknown Namespace asic99""" @@ -528,6 +534,13 @@ def test_multi_asic_invalid_asic(self): assert return_code == 1 assert result == intf_invalid_asic_error + def test_multi_asic_use_json(self): + return_code, result = get_result_and_return_code(['portstat', '-j']) + print("return_code: {}".format(return_code)) + print("result = {}".format(result)) + assert return_code == 1 + assert result == multi_asic_external_intf_counters_use_json + @classmethod def teardown_class(cls): print("TEARDOWN") From 4120461812a2959a78a61ac6656bc068b328d298 Mon Sep 17 00:00:00 2001 From: wenyiz2021 <91497961+wenyiz2021@users.noreply.github.com> Date: Tue, 13 Jun 2023 10:48:03 -0700 Subject: [PATCH 3/5] Update portstat_test.py --- tests/portstat_test.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/portstat_test.py b/tests/portstat_test.py index 0d9092a4ac9..6297fb5d8b3 100644 --- a/tests/portstat_test.py +++ b/tests/portstat_test.py @@ -527,19 +527,19 @@ def test_multi_asic_clear_intf_counters(self): assert return_code == 0 verify_after_clear(result, mutli_asic_intf_counters_after_clear) - def test_multi_asic_invalid_asic(self): - return_code, result = get_result_and_return_code(['portstat', '-n', 'asic99']) + def test_multi_asic_use_json(self): + return_code, result = get_result_and_return_code(['portstat', '-j']) print("return_code: {}".format(return_code)) print("result = {}".format(result)) - assert return_code == 1 - assert result == intf_invalid_asic_error + assert return_code == 0 + assert result == multi_asic_external_intf_counters_use_json - def test_multi_asic_use_json(self): - return_code, result = get_result_and_return_code(['portstat', '-j']) + def test_multi_asic_invalid_asic(self): + return_code, result = get_result_and_return_code(['portstat', '-n', 'asic99']) print("return_code: {}".format(return_code)) print("result = {}".format(result)) assert return_code == 1 - assert result == multi_asic_external_intf_counters_use_json + assert result == intf_invalid_asic_error @classmethod def teardown_class(cls): From 26821cd61688353d325e80bf7bad37bbd74e347d Mon Sep 17 00:00:00 2001 From: wenyiz2021 <91497961+wenyiz2021@users.noreply.github.com> Date: Tue, 13 Jun 2023 11:14:26 -0700 Subject: [PATCH 4/5] Update portstat_test.py --- tests/portstat_test.py | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/tests/portstat_test.py b/tests/portstat_test.py index 6297fb5d8b3..59ab7ed21a3 100644 --- a/tests/portstat_test.py +++ b/tests/portstat_test.py @@ -193,10 +193,38 @@ """ multi_asic_external_intf_counters_use_json = """\ - IFACE STATE RX_OK RX_BPS RX_UTIL RX_ERR RX_DRP RX_OVR TX_OK TX_BPS TX_UTIL TX_ERR TX_DRP TX_OVR ---------- ------- ------- -------- --------- -------- -------- -------- ------- -------- --------- -------- -------- -------- -Ethernet0 U 8 0.00 B/s 0.00% 10 100 N/A 10 0.00 B/s 0.00% N/A N/A N/A -Ethernet4 U 4 0.00 B/s 0.00% 0 1,000 N/A 40 0.00 B/s 0.00% N/A N/A N/A +{ + "Ethernet0": { + "RX_BPS": "0.00 B/s", + "RX_DRP": "0", + "RX_ERR": "0", + "RX_OK": "0", + "RX_OVR": "N/A", + "RX_UTIL": "0.00%", + "STATE": "U", + "TX_BPS": "0.00 B/s", + "TX_DRP": "N/A", + "TX_ERR": "N/A", + "TX_OK": "0", + "TX_OVR": "N/A", + "TX_UTIL": "0.00%" + }, + "Ethernet4": { + "RX_BPS": "0.00 B/s", + "RX_DRP": "0", + "RX_ERR": "0", + "RX_OK": "0", + "RX_OVR": "N/A", + "RX_UTIL": "0.00%", + "STATE": "U", + "TX_BPS": "0.00 B/s", + "TX_DRP": "N/A", + "TX_ERR": "N/A", + "TX_OK": "0", + "TX_OVR": "N/A", + "TX_UTIL": "0.00%" + } +} """ intf_invalid_asic_error = """ValueError: Unknown Namespace asic99""" From e1ee9ec3299f8dc84cdb0b55e7a8a4df404a0606 Mon Sep 17 00:00:00 2001 From: wenyiz2021 <91497961+wenyiz2021@users.noreply.github.com> Date: Tue, 13 Jun 2023 14:45:25 -0700 Subject: [PATCH 5/5] Update portstat_test.py --- tests/portstat_test.py | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/tests/portstat_test.py b/tests/portstat_test.py index 59ab7ed21a3..885c06662f4 100644 --- a/tests/portstat_test.py +++ b/tests/portstat_test.py @@ -192,41 +192,6 @@ Reminder: Please execute 'show interface counters -d all' to include internal links """ -multi_asic_external_intf_counters_use_json = """\ -{ - "Ethernet0": { - "RX_BPS": "0.00 B/s", - "RX_DRP": "0", - "RX_ERR": "0", - "RX_OK": "0", - "RX_OVR": "N/A", - "RX_UTIL": "0.00%", - "STATE": "U", - "TX_BPS": "0.00 B/s", - "TX_DRP": "N/A", - "TX_ERR": "N/A", - "TX_OK": "0", - "TX_OVR": "N/A", - "TX_UTIL": "0.00%" - }, - "Ethernet4": { - "RX_BPS": "0.00 B/s", - "RX_DRP": "0", - "RX_ERR": "0", - "RX_OK": "0", - "RX_OVR": "N/A", - "RX_UTIL": "0.00%", - "STATE": "U", - "TX_BPS": "0.00 B/s", - "TX_DRP": "N/A", - "TX_ERR": "N/A", - "TX_OK": "0", - "TX_OVR": "N/A", - "TX_UTIL": "0.00%" - } -} -""" - intf_invalid_asic_error = """ValueError: Unknown Namespace asic99""" intf_counters_detailed = """\ @@ -555,13 +520,6 @@ def test_multi_asic_clear_intf_counters(self): assert return_code == 0 verify_after_clear(result, mutli_asic_intf_counters_after_clear) - def test_multi_asic_use_json(self): - return_code, result = get_result_and_return_code(['portstat', '-j']) - print("return_code: {}".format(return_code)) - print("result = {}".format(result)) - assert return_code == 0 - assert result == multi_asic_external_intf_counters_use_json - def test_multi_asic_invalid_asic(self): return_code, result = get_result_and_return_code(['portstat', '-n', 'asic99']) print("return_code: {}".format(return_code))