Skip to content

ND Interface Aggregator - #522

Draft
mikewiebe wants to merge 4 commits into
CiscoDevNet:developfrom
mikewiebe:interface_aggregator
Draft

ND Interface Aggregator#522
mikewiebe wants to merge 4 commits into
CiscoDevNet:developfrom
mikewiebe:interface_aggregator

Conversation

@mikewiebe

@mikewiebe mikewiebe commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Related Issue(s)

Resolves #456

Proposed Changes

  • Adds cisco.nd.nd_interfaces_workflow, a single aggregate workflow for the ten interface families currently available on develop.
  • Shares fabric resolution and paginated interface inventory snapshots across resource groups to avoid redundant controller GETs.
  • Separates validation and planning from mutation, including cross-family conflict detection, check-mode planning, consolidated configuration actions, and post-mutation state reconciliation.
  • Preserves the standalone interface-module behavior while allowing the aggregate workflow to reuse the same models and orchestrators.
  • Keeps cisco.nd.nd_interface_flow_rules outside the aggregator scope.

Why manage_vpc_pair/resources.py changes

VpcPairStateMachine already had a private _manage_override_deletions(override_exceptions) helper on develop. The shared NDStateMachine also had a same-named method. The interface-aggregator planning refactor changed the shared method to accept an optional NDStatePlan, allowing a plan calculated before mutation to be reused during execution.

That signature change exposed the pre-existing name collision as a pylint arguments-renamed failure: the shared method expects a state plan, while the vPC helper expects a list of pair identifiers that must be retained. The specialized vPC helper and its sole caller are therefore renamed to _manage_vpc_override_deletions(override_exceptions). This is a behavior-preserving compatibility change that avoids an incompatible override contract. A focused regression test verifies that override exceptions remain retained while other stale vPC pairs are deleted.

Test Notes

  • Focused Python 3.11 Docker unit tests for the workflow coordinator and vPC resource service: 12 passed.
  • Targeted no-smart-quotes and pylint Docker sanity checks: passed.
  • Full ansible-test sanity --docker --python 3.11 -v --color --truncate 0: all 32 sanity checks passed with exit status 0.
  • git diff --check: passed.

Cisco Nexus Dashboard Version

No Nexus Dashboard API behavior is changed by the vPC compatibility rename.

Related ND API Resource Category

  • analyze
  • infa
  • manage
  • onemanage
  • other

Checklist

  • Latest commit incorporates current develop with merge conflicts resolved
  • New or updated module documentation has been made accordingly
  • Assigned the proper reviewers

@mikewiebe
mikewiebe marked this pull request as ready for review August 25, 2026 14:56
@mikewiebe
mikewiebe marked this pull request as draft August 25, 2026 14:56
@mikewiebe mikewiebe changed the title Initial Interface Aggregator Work ND Interface Aggregator Aug 25, 2026
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

Successfully merging this pull request may close these issues.

Add aggregate nd_interfaces_workflow coordinator with shared interface-state snapshots

1 participant