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
nxos_interfaces: RMB state fixes #63960
nxos_interfaces: RMB state fixes #63960
Conversation
The test
The test
|
shipit |
cc @trishnaguha |
recheck |
Looks like CI is green on this one. Here's the result of the latest run with this PR added as a depends-on. |
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.
Looks good to me. Thanks for the fix!
lib/ansible/module_utils/network/nxos/config/interfaces/interfaces.py
Outdated
Show resolved
Hide resolved
Build succeeded (third-party-check pipeline).
|
@NilashishC Please cherry-pick to 2.9.x -Thanks |
SUMMARY
nxos_interfaces
hit a number of failures in our regression testbeds. When I dug into it I found a number of issues including but not limited to:cross-platform issues
different default states depending on interface types
idempotence issues
unnecessarily changing state on attributes that will cause churn in a network; e.g. changing
description
withstate: replaced
would result in togglingenabled
off and on, even whenenabled
was already at the desired state.did not handle non-existent virtual interfaces correctly
enable
default state is dependent on device type, interface type, and the state of thesystem default switchport
configurations. I've left comments in the code as well but I'll include them here for PR clarity. The gist is that "factory default" for enable really only applies to L3 interfaces and thatsystem default switchport
config commands define the defaults for L2 interfaces:I added a fairly involved Unit Test that covers a wide variety of common scenarios and tests each of the merged/deleted/replaced/overridden states. I believe that if you review those scenarios first it will help to understand the logic I added to this module.
The changeset in this PR now passes all of the Unit Tests, and all of the regression tests are now passing on our regression testbeds:
N3K/N6K/N7K/N9K/NXOSv
(internal IDs:n3k-173,n6k-77,n7k-99,dt-n9k5-1,n7k-j,evergreen-nx-1,greensboro-nx-1,hamilton-nx-1,camden-nx-1
)ISSUE TYPE
COMPONENT NAME
nxos_interfaces
ADDITIONAL INFORMATION