nd_interface_loopback: align deploy control to config_actions.deploy#366
Open
allenrobel wants to merge 3 commits into
Open
nd_interface_loopback: align deploy control to config_actions.deploy#366allenrobel wants to merge 3 commits into
allenrobel wants to merge 3 commits into
Conversation
allenrobel
requested review from
akinross,
anvitha-jain,
gmicol,
lhercot,
mikewiebe,
mtarking,
sajagana,
samiib and
shrsr
as code owners
June 30, 2026 01:10
There was a problem hiding this comment.
Pull request overview
Aligns nd_interface_loopback’s “deploy after mutation” toggle with the interface-module convention by nesting it under config_actions.deploy instead of a flat top-level deploy option, and updates the loopback integration scenario accordingly.
Changes:
- Replace module option
deploy: boolwithconfig_actions: { deploy: bool }in DOCUMENTATION/EXAMPLES and inargument_spec. - Update the module runtime read site to set
model_orchestrator.deployfromconfig_actions.deploy(defaulting totrue). - Update the loopback integration “no-deploy” task to use the new
config_actions.deployshape.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
plugins/modules/nd_interface_loopback.py |
Moves deploy control under config_actions.deploy in docs, examples, argspec, and orchestration setup. |
tests/integration/targets/nd_interface_loopback/tasks/merged.yaml |
Updates the no-deploy integration task to pass config_actions: { deploy: false }. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
allenrobel
force-pushed
the
align-loopback-config-actions-deploy
branch
from
June 30, 2026 16:20
c057fba to
cdfefda
Compare
allenrobel
added a commit
that referenced
this pull request
Jul 2, 2026
The module has not shipped in a release; 1.4.0 predates its actual availability. Align version_added with the current collection version so the config_actions change is not a post-release break. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Deb5UWoTfAZa6kq7khAEu6
allenrobel
marked this pull request as draft
July 2, 2026 19:21
allenrobel
added a commit
that referenced
this pull request
Jul 3, 2026
The module has not shipped in a release; 1.4.0 predates its actual availability. Align version_added with the current collection version so the config_actions change is not a post-release break. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Deb5UWoTfAZa6kq7khAEu6
allenrobel
force-pushed
the
align-loopback-config-actions-deploy
branch
from
July 3, 2026 01:34
443250a to
6975466
Compare
allenrobel
added a commit
that referenced
this pull request
Jul 9, 2026
The module has not shipped in a release; 1.4.0 predates its actual availability. Align version_added with the current collection version so the config_actions change is not a post-release break. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Deb5UWoTfAZa6kq7khAEu6
allenrobel
force-pushed
the
align-loopback-config-actions-deploy
branch
from
July 9, 2026 16:55
6975466 to
a943ecb
Compare
allenrobel
added a commit
that referenced
this pull request
Jul 13, 2026
The module has not shipped in a release; 1.4.0 predates its actual availability. Align version_added with the current collection version so the config_actions change is not a post-release break. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Deb5UWoTfAZa6kq7khAEu6
allenrobel
force-pushed
the
align-loopback-config-actions-deploy
branch
from
July 13, 2026 17:09
a943ecb to
ee84b7d
Compare
allenrobel
added a commit
that referenced
this pull request
Jul 16, 2026
The module has not shipped in a release; 1.4.0 predates its actual availability. Align version_added with the current collection version so the config_actions change is not a post-release break. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Deb5UWoTfAZa6kq7khAEu6
allenrobel
force-pushed
the
align-loopback-config-actions-deploy
branch
from
July 16, 2026 00:46
ee84b7d to
5a73abd
Compare
allenrobel
added a commit
that referenced
this pull request
Jul 19, 2026
The module has not shipped in a release; 1.4.0 predates its actual availability. Align version_added with the current collection version so the config_actions change is not a post-release break. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Deb5UWoTfAZa6kq7khAEu6
allenrobel
force-pushed
the
align-loopback-config-actions-deploy
branch
from
July 19, 2026 18:17
5a73abd to
2308c2d
Compare
Replace the flat top-level `deploy` boolean with a `config_actions` dict carrying a single `deploy` key, matching the convention already used by the unmerged interface modules (svi, ethernet_trunk_host, subinterface_managed, subinterface_unmanaged). Changes DOCUMENTATION, EXAMPLES, the argument_spec, and the read site. No deprecation/changelog fragment: the module is unreleased (released changelog stops at 1.2.0; galaxy 1.5.0), so nothing shipped is broken. Closes #364 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H5FaXWEXvkgJUrUBZbfdFA
The module has not shipped in a release; 1.4.0 predates its actual availability. Align version_added with the current collection version so the config_actions change is not a post-release break. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Deb5UWoTfAZa6kq7khAEu6
allenrobel
force-pushed
the
align-loopback-config-actions-deploy
branch
from
July 22, 2026 16:12
2308c2d to
c44dddc
Compare
Now that #387 is merged, build the `config_actions` block via `config_actions_spec(include=("deploy",))` from `nd_argument_specs.py` instead of the hand-written dict (which the fragment reproduces byte-for-byte), and re-point the `nd_argument_spec` import from the legacy `nd.py` to `nd_argument_specs.py` — completing the #384 task-1 checkbox for this module. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TnSktMFZGRafkf5GbuBwwm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR and #403 (loopback
policy_typediscriminated union) both modifyplugins/modules/nd_interface_loopback.pyin the same regions (options block, EXAMPLES,
main()), so textual conflicts between them are guaranteed. #403 isalready held until #422 merges and owes a substantial rebase at that point (per the merge-ordering section in its
body). Merging this small PR first lets #403 absorb the
config_actions.deploychange in that one rebase italready owes. The reverse order works but is more expensive: this PR would have to re-express deploy control
against the union-era module (which by then documents nine policy templates across two OSes).
Translation:
Related Issue(s)
Closes #364
Also checks off the #384 task-1 box for this module: its argspec imports now come from
nd_argument_specs.pyinstead of the legacynd.py.Proposed Changes
Align
nd_interface_loopbackdeploy control with the convention used by the unmerged interfacemodules: replace the flat top-level
deployboolean with aconfig_actionsdict whose single keyis
deploy.deploy:option replaced byconfig_actions:(dict) with adeploysuboption (type: bool, defaulttrue).deploy: false→config_actions: { deploy: false }.argument_spec:deploy=dict(...)→config_actions_spec(include=("deploy",)), the shared fragment added by Relocate nd_argument_spec to nd_argument_specs.py; add config_actions_spec fragment #387(reproduces the deploy-only block hand-written in the sibling interface modules byte-for-byte).
nd_argument_specimport re-pointed from legacynd.pytond_argument_specs.py(Tracking: Gen-3 argspec imports via nd_argument_specs.py #384 task 1 for this module).config_actions.deploy(defaulttrue) and setsorchestrator.deploy.version_addedcorrected to2.0.0(review feedback).Deploy scope and batching are unchanged (interface-scope
interfaceActions/deploy, one bulk call per run);only the toggle moves under
config_actions.No deprecation/changelog fragment: the module is unreleased (released changelog stops at 1.2.0;
galaxy 1.5.0), so nothing shipped is broken.
Test Notes
ndblack --check/ndisort --check-only: clean.ndpylint: 10.00/10;ndmypy: only the pre-existing environmentalansible_collections.*import-resolution error on the unchanged import block; no new findings from this change.
ndtest --test validate-modules plugins/modules/nd_interface_loopback.py: passes (exit 0) —confirms DOCUMENTATION
suboptionsmatch the fragment-built argspecoptions.ndpytest tests/unit/module_utils/orchestrators/test_loopback_interface.py tests/unit/module_utils/test_nd_argument_specs.py: 28 passed.merged.yamlno-deploy task updated to the new param shape.Cisco Nexus Dashboard Version
4.2.1
Related ND API Resource Category
Checklist
🤖 Generated with Claude Code