Test is relying on duthost method get_crm_resources method (parses info from crm show resources all output) to get "fdb_entry" crm resource values. If output is empty for some reason then duthost.get_crm_resources().get("main_resources") will be empty and thus lead to AttributeError: 'NoneType' object has no attribute 'get' during get_crm_resources() failure if we try to access "fdb_entry" key.
How did you do it?
https://github.com/sonic-net/sonic-mgmt/pull/11127 has introduced retry mechanism in case of empty output but condition is incorrect (len(duthost.get_crm_resources()) will never be 0, as duthost.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?
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/330Type 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?
https://github.com/sonic-net/sonic-mgmt/pull/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