Fix PortChannel name matching in verify_attr_change to handle leading spaces#18301
Merged
StormLiangMS merged 1 commit intosonic-net:masterfrom May 13, 2025
Merged
Conversation
Signed-off-by: zitingguo <zitingguo@microsoft.com>
Collaborator
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
ZhaohuiS
reviewed
May 9, 2025
StormLiangMS
approved these changes
May 13, 2025
Collaborator
StormLiangMS
left a comment
There was a problem hiding this comment.
I think Zhaohui's suggestion makes sense. However, since this PR is intended to fix the bug, we can accept this change for now and consider using a more generic way to parse the output later? @ZhaohuiS
mssonicbld
pushed a commit
to mssonicbld/sonic-mgmt
that referenced
this pull request
May 13, 2025
… spaces (sonic-net#18301) What is the motivation for this PR? test_portchannel_interface_tc2_attributes failed with the following error: if attr == "mtu": output = duthost.shell("show interfaces status | grep -w '^{}' | awk '{{print $4}}'".format(po_name)) > pytest_assert(output['stdout'] == value, "{} attribute {} failed to change to {}".format(po_name, attr, value)) E Failed: PortChannel102 attribute mtu failed to change to 3324 This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces: PortChannel102 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel104 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel106 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel108 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel109 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1010 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1011 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1012 N/A 100G 9100 N/A N/A routed up up N/A N/A This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output. How did you do it? Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly. How did you verify/test it? Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT. generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes PASSED
mssonicbld
pushed a commit
to mssonicbld/sonic-mgmt
that referenced
this pull request
May 13, 2025
… spaces (sonic-net#18301) What is the motivation for this PR? test_portchannel_interface_tc2_attributes failed with the following error: if attr == "mtu": output = duthost.shell("show interfaces status | grep -w '^{}' | awk '{{print $4}}'".format(po_name)) > pytest_assert(output['stdout'] == value, "{} attribute {} failed to change to {}".format(po_name, attr, value)) E Failed: PortChannel102 attribute mtu failed to change to 3324 This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces: PortChannel102 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel104 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel106 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel108 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel109 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1010 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1011 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1012 N/A 100G 9100 N/A N/A routed up up N/A N/A This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output. How did you do it? Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly. How did you verify/test it? Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT. generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes PASSED
Collaborator
|
Cherry-pick PR to 202411: #18374 |
Collaborator
|
Cherry-pick PR to 202405: #18375 |
mssonicbld
pushed a commit
to mssonicbld/sonic-mgmt
that referenced
this pull request
Jul 8, 2025
… spaces (sonic-net#18301) What is the motivation for this PR? test_portchannel_interface_tc2_attributes failed with the following error: if attr == "mtu": output = duthost.shell("show interfaces status | grep -w '^{}' | awk '{{print $4}}'".format(po_name)) > pytest_assert(output['stdout'] == value, "{} attribute {} failed to change to {}".format(po_name, attr, value)) E Failed: PortChannel102 attribute mtu failed to change to 3324 This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces: PortChannel102 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel104 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel106 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel108 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel109 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1010 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1011 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1012 N/A 100G 9100 N/A N/A routed up up N/A N/A This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output. How did you do it? Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly. How did you verify/test it? Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT. generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes PASSED
Collaborator
|
Cherry-pick PR to 202411: #19458 |
7 tasks
mssonicbld
pushed a commit
to mssonicbld/sonic-mgmt
that referenced
this pull request
Jul 8, 2025
… spaces (sonic-net#18301) What is the motivation for this PR? test_portchannel_interface_tc2_attributes failed with the following error: if attr == "mtu": output = duthost.shell("show interfaces status | grep -w '^{}' | awk '{{print $4}}'".format(po_name)) > pytest_assert(output['stdout'] == value, "{} attribute {} failed to change to {}".format(po_name, attr, value)) E Failed: PortChannel102 attribute mtu failed to change to 3324 This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces: PortChannel102 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel104 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel106 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel108 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel109 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1010 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1011 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1012 N/A 100G 9100 N/A N/A routed up up N/A N/A This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output. How did you do it? Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly. How did you verify/test it? Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT. generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes PASSED
Collaborator
|
Cherry-pick PR to 202405: #19459 |
7 tasks
mssonicbld
pushed a commit
that referenced
this pull request
Jul 9, 2025
… spaces (#18301) What is the motivation for this PR? test_portchannel_interface_tc2_attributes failed with the following error: if attr == "mtu": output = duthost.shell("show interfaces status | grep -w '^{}' | awk '{{print $4}}'".format(po_name)) > pytest_assert(output['stdout'] == value, "{} attribute {} failed to change to {}".format(po_name, attr, value)) E Failed: PortChannel102 attribute mtu failed to change to 3324 This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces: PortChannel102 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel104 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel106 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel108 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel109 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1010 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1011 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1012 N/A 100G 9100 N/A N/A routed up up N/A N/A This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output. How did you do it? Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly. How did you verify/test it? Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT. generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes PASSED
sdszhang
pushed a commit
to sdszhang/sonic-mgmt
that referenced
this pull request
Aug 2, 2025
Code sync sonic-net/sonic-mgmt:202411 => 202412 ``` * 3124d52 (HEAD -> code-sync-202412, origin/code-sync-202412) r12f 250710:1626 - Merge remote-tracking branch 'base/202411' into code-sync-202412 |\ | * b1b95dc (base/202411) zitingguo-ms 250513:1848 - Fix PortChannel name matching in verify_attr_change to handle leading spaces (sonic-net#18301) | * 7461bf3 wrideout-arista 250604:1542 - Determine if the eos switch is running in multiagent mode, and stop/start the (sonic-net#18748) | * 4346afd Dashuai Zhang 250411:0103 - update d18u8s4 PT0 ASN to 4 bytes (sonic-net#17888) | * de1b1b4 Ryangwaite 250709:1028 - Skip multi-hop upgrade tests on non-T0 testbeds (sonic-net#19078) (sonic-net#19326) | * 573d42d Cong Hou 250709:0232 - Update the skip for test test_qos_dscp_mapping.py (sonic-net#19381) | * 3eb65b9 Yawen 250708:1743 - Unskip test_qos_sai for dualtor-aa-64-breakout (sonic-net#19363) | * f0c9705 Cong Hou 250707:2351 - xfail generic hash test on dualtor (sonic-net#19383) | * d378110 eyakubch 250707:0546 - Reduce flakiness of test_l2_configure.py. (sonic-net#18831) | * 043dba8 ShiyanWangMS 250703:0935 - Fix the ignore pattern - leapsecond file expired warning (sonic-net#19332) | * 92af38f zitingguo-ms 250703:1958 - Unskip testQosSaiHeadroomPoolWatermark on t0-d18u8s4 (sonic-net#19287) (sonic-net#19342) | * 0b7e4de Chuan Wu 250704:0334 - Add background traffic for test_pfc_pause_extra_lossless test (sonic-net#19218) ```
opcoder0
pushed a commit
to opcoder0/sonic-mgmt
that referenced
this pull request
Dec 8, 2025
… spaces (sonic-net#18301) What is the motivation for this PR? test_portchannel_interface_tc2_attributes failed with the following error: if attr == "mtu": output = duthost.shell("show interfaces status | grep -w '^{}' | awk '{{print $4}}'".format(po_name)) > pytest_assert(output['stdout'] == value, "{} attribute {} failed to change to {}".format(po_name, attr, value)) E Failed: PortChannel102 attribute mtu failed to change to 3324 This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces: PortChannel102 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel104 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel106 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel108 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel109 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1010 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1011 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1012 N/A 100G 9100 N/A N/A routed up up N/A N/A This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output. How did you do it? Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly. How did you verify/test it? Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT. generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes PASSED Signed-off-by: opcoder0 <110003254+opcoder0@users.noreply.github.com>
AharonMalkin
pushed a commit
to AharonMalkin/sonic-mgmt
that referenced
this pull request
Dec 16, 2025
… spaces (sonic-net#18301) What is the motivation for this PR? test_portchannel_interface_tc2_attributes failed with the following error: if attr == "mtu": output = duthost.shell("show interfaces status | grep -w '^{}' | awk '{{print $4}}'".format(po_name)) > pytest_assert(output['stdout'] == value, "{} attribute {} failed to change to {}".format(po_name, attr, value)) E Failed: PortChannel102 attribute mtu failed to change to 3324 This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces: PortChannel102 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel104 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel106 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel108 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel109 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1010 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1011 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1012 N/A 100G 9100 N/A N/A routed up up N/A N/A This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output. How did you do it? Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly. How did you verify/test it? Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT. generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes PASSED Signed-off-by: Aharon Malkin <amalkin@nvidia.com>
gshemesh2
pushed a commit
to gshemesh2/sonic-mgmt
that referenced
this pull request
Dec 21, 2025
… spaces (sonic-net#18301) What is the motivation for this PR? test_portchannel_interface_tc2_attributes failed with the following error: if attr == "mtu": output = duthost.shell("show interfaces status | grep -w '^{}' | awk '{{print $4}}'".format(po_name)) > pytest_assert(output['stdout'] == value, "{} attribute {} failed to change to {}".format(po_name, attr, value)) E Failed: PortChannel102 attribute mtu failed to change to 3324 This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces: PortChannel102 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel104 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel106 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel108 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel109 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1010 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1011 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1012 N/A 100G 9100 N/A N/A routed up up N/A N/A This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output. How did you do it? Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly. How did you verify/test it? Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT. generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes PASSED Signed-off-by: Guy Shemesh <gshemesh@nvidia.com>
gshemesh2
pushed a commit
to gshemesh2/sonic-mgmt
that referenced
this pull request
Jan 26, 2026
… spaces (sonic-net#18301) What is the motivation for this PR? test_portchannel_interface_tc2_attributes failed with the following error: if attr == "mtu": output = duthost.shell("show interfaces status | grep -w '^{}' | awk '{{print $4}}'".format(po_name)) > pytest_assert(output['stdout'] == value, "{} attribute {} failed to change to {}".format(po_name, attr, value)) E Failed: PortChannel102 attribute mtu failed to change to 3324 This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces: PortChannel102 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel104 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel106 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel108 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel109 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1010 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1011 N/A 100G 9100 N/A N/A routed up up N/A N/A PortChannel1012 N/A 100G 9100 N/A N/A routed up up N/A N/A This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output. How did you do it? Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly. How did you verify/test it? Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT. generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes PASSED Signed-off-by: Guy Shemesh <gshemesh@nvidia.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of PR
Summary:
Fixes # (issue)
Type of change
Back port request
Approach
What is the motivation for this PR?
test_portchannel_interface_tc2_attributes failed with the following error:
This is due to cmd "show interfaces status | grep -w '^{}' | awk '{{print $4}}'" failed to filter out the correct PortChannel interface line when the PortChannel name is indented with spaces:
This PR updates the verify_attr_change function in test_portchannel_interface.py to correctly handle leading spaces in the PortChannel name when parsing interface status output.
How did you do it?
Modified the grep pattern from '^{}' to ^[[:space:]]*{} to match interface lines with leading spaces robustly.
How did you verify/test it?
Run generic_config_updater/test_portchannel_interface.py::test_portchannel_interface_tc2_attributes manually on DUT.
Any platform specific information?
Supported testbed topology if it's a new test case?
Documentation
Signed-off-by: zitingguo-ms zitingguo@microsoft.com