[sonic-mgmt] Fix "fdb/test_fdb_mac_move.py" AttributeError failure #15704
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: Fix "fdb/test_fdb_mac_move.py" failure with
AttributeError: 'NoneType' object has no attribute...
Fixes # https://github.com/aristanetworks/sonic-qual.msft/issues/330
Type of change
Back port request
Approach
What is the motivation for this PR?
Test is relying on duthost method
get_crm_resources
method (parses info fromcrm show resources all
output) to get "fdb_entry" crm resource values. If output is empty for some reason thenduthost.get_crm_resources().get("main_resources")
will be empty and thus lead toAttributeError: 'NoneType' object has no attribute 'get' during get_crm_resources()
failure if we try to access "fdb_entry" key.How did you do it?
#11127 has introduced retry mechanism in case of empty output but condition is incorrect (
len(duthost.get_crm_resources())
will never be 0, asduthost.get_crm_resources()
will return{'main_resources': {}, 'acl_resources': [], 'table_resources': []}
if command output is empty). Correcting this PR change to check for "main_resources" fixes the issue.How did you verify/test it?
Stressed the test and failure is not observed.
Any platform specific information?
Supported testbed topology if it's a new test case?
Documentation