feat(config): add --intent-rollback flag for intentional rollback via config bounce#82
Merged
Conversation
…g bounce Add --no-commit option to the config subcommand. When specified, applies the set commands with commit confirmed but intentionally skips the final commit, allowing JUNOS to auto-rollback after --confirm minutes. Useful for restarting services (e.g. syslog on EX3400 post-upgrade) that lack a request...restart command. --no-commit and --no-confirm are mutually exclusive. Tests and docs updated. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…st, fix rpm.yml release create - Rename --no-commit / no_commit -> --intent-rollback / intent_rollback throughout (cli.py, upgrade.py, tests, docs en/ja, README en/ja) - Add test for --intent-rollback + --no-confirm mutual exclusion (exit 1) - Fix confirm_timeout docstring: applies to "confirmed" and "intent_rollback" - rpm.yml: pass --repo to gh release create fallback to fix git discovery failure inside rockylinux:9 container Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This was referenced May 8, 2026
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.
Summary
--intent-rollbackoption to theconfigsubcommandcommit confirmed Nbut intentionally skips the finalcommit— JUNOS auto-rolls back afterNminutes (default: 1)request ... restartcommand (e.g. syslog on EX3400 after firmware upgrade:deactivate system syslog; commit confirmed 1bounces the process)--intent-rollbackand--no-confirmare mutually exclusive (returns exit code 1 with error message)gh release createfallback passes--repoto avoid git discovery failure in rockylinux:9 containerFiles changed
junos_ops/cli.py--intent-rollbackargument, mutual exclusion check, default valuejunos_ops/upgrade.pyelif intent_rollback:branch inload_config()— sendscommit confirmed N, skips health check and final committests/test_config_push.pyTestIntentRollbackclass (4 tests including mutual exclusion)docs/config.md/docs/config.ja.md--intent-rollbackto options table and new "Intentional Rollback" sectionREADME.md/README.ja.md--intent-rollbackin config subcommand description.github/workflows/rpm.yml--repotogh release createfallbackTest plan
pytest tests/ -v --tb=short— 293 tests pass--intent-rollbackskips final commit (onlycommit(confirm=N)is called)--intent-rollback --no-confirmis rejected with exit code 1confirm_timeoutis passed through tocommit(confirm=N)🤖 Generated with Claude Code