sonic-net / sonic-mgmt

Configuration management examples for SONiC
Other
200 stars 731 forks source link

[sonic-mgmt] Fix "fdb/test_fdb_mac_move.py" AttributeError failure #15704

Open vkjammala-arista opened 3 days ago

vkjammala-arista commented 3 days ago

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 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?

Documentation