Skip to content

VPC Pair 4.x Implementation#197

Open
sivakasi-cisco wants to merge 52 commits intoCiscoDevNet:developfrom
sivakasi-cisco:vpc_pair_4x_nd
Open

VPC Pair 4.x Implementation#197
sivakasi-cisco wants to merge 52 commits intoCiscoDevNet:developfrom
sivakasi-cisco:vpc_pair_4x_nd

Conversation

@sivakasi-cisco
Copy link
Copy Markdown
Collaborator

@sivakasi-cisco sivakasi-cisco commented Mar 9, 2026

#230

vPC Pair support for ND 4.x

  • nd_manage_vpc_pair can create, update, delete, override, and gather vPC pairs.

  • The big module logic was split into focused helper files (query, validation, actions, deploy, etc.)

  • We added dedicated vPC Pair endpoints/models/schemas and connected them through the orchestrator + state machine flow.

  • Integration tests were added across all main scenarios (merge/replace/override/delete/gather).

@sivakasi-cisco
Copy link
Copy Markdown
Collaborator Author

Continuation of sivakasi-cisco#1

Comment thread tests/integration/targets/nd_vpc_pair/tasks/base_tasks.yaml
Comment thread tests/integration/targets/nd_vpc_pair/tasks/main.yaml
Comment thread plugins/module_utils/models/manage_vpc_pair/vpc_pair_base.py
Comment thread plugins/module_utils/endpoints/v1/manage/vpc_pair_base_paths.py Outdated
Comment thread plugins/module_utils/endpoints/v1/manage_vpc_pair/vpc_pair_endpoints.py Outdated
Comment thread plugins/module_utils/endpoints/v1/manage/vpc_pair_base_paths.py Outdated
Comment thread plugins/module_utils/manage_vpc_pair/enums.py
Comment thread plugins/module_utils/models/__init__.py Outdated
Comment thread plugins/module_utils/orchestrators/nd_vpc_pair_orchestrator.py Outdated
Comment thread plugins/modules/nd_manage_vpc_pair.py Outdated
Comment thread plugins/modules/nd_manage_vpc_pair.py Outdated
Comment thread plugins/modules/nd_manage_vpc_pair.py Outdated
Comment thread plugins/modules/nd_manage_vpc_pair.py Outdated
Comment thread plugins/modules/nd_manage_vpc_pair.py Outdated
Comment thread plugins/modules/nd_manage_vpc_pair.py
@sivakasi-cisco sivakasi-cisco changed the title VPC Pair 4.x Implementation [WIP] VPC Pair 4.x Implementation Mar 18, 2026
@sivakasi-cisco sivakasi-cisco changed the title [WIP] VPC Pair 4.x Implementation VPC Pair 4.x Implementation Mar 24, 2026
@sivakasi-cisco sivakasi-cisco force-pushed the vpc_pair_4x_nd branch 2 times, most recently from 47f5bb0 to ea2e89c Compare March 25, 2026 17:56
Comment thread plugins/modules/nd_manage_vpc_pair.py Outdated
- resuse existing mixins without more duplicates\
- Adding type annotations to method signatures
- revisited the required imports and removed others
 - run time inputs for verify instead of suppress_verification
 - verify_option/query timers changed as config_action with retries
 - config_action validation
 - config_save knob along with deploy
 - limited external fabric checks for gathered calls
 - explicit field comparison readded in merge
 - vpc_pair details check extended
 - sanity checks, UT additions
  1. Allowed overridden state with empty config to delete all vPC pairs
  2. Keep deleted state guard requiring explicit config
  3. Added empty string normalization in VpcPairDetailsDefault
  4. Integration test changes:
      - Probe fabric peering support
      - Used simple vpc_pair_details_delete_safe payload for stable delete-path tests
      - Add TC8 delete: reject empty config for state=deleted
      - Override TC4: verify empty-config purge-all deletes all pairs
  5. Added nd_info pattern for nd_vpc_pair integ test
# Conflicts:
#	plugins/module_utils/nd_state_machine.py
#	plugins/module_utils/orchestrators/base.py
#	plugins/module_utils/orchestrators/local_user.py
#	plugins/module_utils/orchestrators/manage_fabric_ebgp.py
#	plugins/module_utils/orchestrators/manage_fabric_external.py
#	plugins/module_utils/orchestrators/manage_fabric_ibgp.py
Copy link
Copy Markdown
Collaborator

@allenrobel allenrobel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for being so nit-picky Sivakami. Added comments related to removing legacy Optional and Union.

Comment thread plugins/action/tests/integration/nd_vpc_pair_validate.py Outdated
Comment thread plugins/action/tests/integration/nd_vpc_pair_validate.py Outdated
Comment thread plugins/action/tests/integration/nd_vpc_pair_validate.py Outdated
Comment thread plugins/action/tests/integration/nd_vpc_pair_validate.py Outdated
Comment thread plugins/action/tests/integration/nd_vpc_pair_validate.py Outdated
Comment thread plugins/module_utils/models/manage_vpc_pair/vpc_pair_models.py Outdated
Comment thread plugins/module_utils/models/manage_vpc_pair/vpc_pair_models.py Outdated
Comment thread plugins/module_utils/models/manage_vpc_pair/vpc_pair_models.py Outdated
Comment thread plugins/module_utils/models/manage_vpc_pair/vpc_pair_models.py Outdated
Comment thread plugins/module_utils/models/manage_vpc_pair/vpc_pair_models.py Outdated
@sivakasi-cisco
Copy link
Copy Markdown
Collaborator Author

Sorry for being so nit-picky Sivakami. Added comments related to removing legacy Optional and Union.

No Worries, Allen. Thank you for taking time. Shall make sure that I follow modern annotations

Copy link
Copy Markdown
Collaborator Author

@sivakasi-cisco sivakasi-cisco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed review comments

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.

4 participants