Fix portstat parser to accommodate new reminder message in portstat output#7537
Conversation
Signed-off-by: Suvarna Meenakshi <sumeenak@microsoft.com>
|
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:
|
|
|
||
| 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.
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.
(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.
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.
ok, that makes sense to me
|
thanks @SuvarnaMeenakshi for this fix, just added a minor comment |
#7537) Signed-off-by: Suvarna Meenakshi <sumeenak@microsoft.com>
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