-
Notifications
You must be signed in to change notification settings - Fork 750
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix portstat parser to accommodate new reminder message in portstat output #7537
Conversation
Signed-off-by: Suvarna Meenakshi <[email protected]>
The pre-commit check detected issues in the files touched by this pull request. For old issues, it is not mandatory to fix them because they were not caused by this change. It is unfair to blame Detailed pre-commit check results: To run the pre-commit checks locally, you can follow below steps:
|
@@ -63,7 +65,9 @@ def parse_portstat(content_lines): | |||
return {} | |||
|
|||
results = {} | |||
for line in content_lines[separation_line_number+1:]: | |||
for line in content_lines[separation_line_number+1:reminder_line_number]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we change this to:
for line in content_lines[separation_line_number+1:reminder_line_number-1]:
?
there are 3 lines I added to the print, 1st and 3rd are 2 empty lines, 2ns line is the Reminder print, the original error failed at the 1st empty line. In this case we don't need line 69-70 then
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(Pdb) content_lines[separation_line_number+1:reminder_line_number]
...
u'Ethernet280 X 0 0.00 B/s 0.00% 0 0 0 0 0.00 B/s 0.00% 0 0 0', u'']
the last empty line will be ignored
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I intentionally did not do "[separation_line_number+1:reminder_line_number-1]" to keep it generic for future.
In future release if a Reminder is added without an additional empty line, then "[separation_line_number+1:reminder_line_number-1]" will miss the last line.
Or in case someone adds an additional empty line also.
So I thought we could parse the output from first line after header till line before "Reminder" and skip any empty EOF lines seen in between
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, that makes sense to me
thanks @SuvarnaMeenakshi for this fix, just added a minor comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
#7537) Signed-off-by: Suvarna Meenakshi <[email protected]>
Description of PR
Summary:
Fixes # (issue)
Type of change
Back port request
Approach
What is the motivation for this PR?
portstat/test_portstat.py::test_portstat_clear fails with error:
How did you do it?
With the recent change in portstat cli sonic-net/sonic-utilities#2466, the output of portstat shows a reminder in multi-asic platforms.
This is causing additional lines to be parsed in portstat output.
This change is to avoid parsing the reminder line or empty line in the portstat output.
How did you verify/test it?
Test case passes on multi-asic Linecard after this fix.
Any platform specific information?
Supported testbed topology if it's a new test case?
Documentation