Skip to content
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

Interface module resets PO and VPC members (previous module behaviour used to check if member ports were part of PO and throw error) #372

Open
mthurstocisco opened this issue Feb 12, 2025 · 1 comment

Comments

@mthurstocisco
Copy link
Contributor

mthurstocisco commented Feb 12, 2025

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Ansible Version and collection version

DCNM version

  • V 3.6.0

Affected module(s)

  • dcnm_interface

Ansible Playbook

# Copy-paste your anisble playbook here 

Debug Output

Expected Behavior

When trying to configure a trunk or access interface that is part of a port channel or vpc, module should not allow update of most aspects of the interface (as per the GUI, if the policy on the port is int_vpc_trunk_po_member_11_1 then the only editable fields are Interface Description, Freeform Config and Interface Admin State). When trying to update other fields the module should throw an error to say the port is part of a port channel or VPC (as per older versions of the module).

Actual Behavior

The member interface gets completely reset, all the po/vpc membership config is removed from the port thus removing the interface from the po/vpc.

Steps to Reproduce

Configure a VPC or PO, add a member interface then try to update any aspect of the member interface and the interface will be removed from the VPC/PO. In the GUI the VPC/PO will still show the member ports in its configuration but all channel membership configuration will be removed from the member interface.

References

Having had a quick look at the code, it appears that anytime there is a difference between the policy on a port as part of the input to the playbook and the policy on the interface on NDFC then no key/value comparison is done and the input to the playbook is just pushed as a whole to NDFC.

As I read it, there will need to be some special cases in the key/value comparison to handle po/vpc membership and to make sure we push the correct (existing in NDFC) policy back to the interface in NDFC

@mthurstocisco
Copy link
Contributor Author

@mikewiebe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant