Skip to content

Replace ConfigPlan status-based approval with Nautobot Approval Workflow - #1119

Draft
nkallergis wants to merge 2 commits into
developfrom
nk-config-plan-approval-workflow
Draft

Replace ConfigPlan status-based approval with Nautobot Approval Workflow#1119
nkallergis wants to merge 2 commits into
developfrom
nk-config-plan-approval-workflow

Conversation

@nkallergis

Copy link
Copy Markdown
Contributor

ConfigPlan now inherits ApprovableModelMixin; new plans automatically trigger a Pending workflow on creation, and Deploy Config Plans (E3025) gates on the workflow being Approved rather than on the legacy "Approved" / "Not Approved" Status values. A migration seeds the default "Config Plan Approval" workflow definition plus three groups (architect / approver / operator) and their permissions; existing pending plans are force-re-approved on upgrade. Admins can amend or delete the workflow definition to customize or disable approvals.

ConfigPlan now inherits ApprovableModelMixin; new plans automatically
trigger a Pending workflow on creation, and Deploy Config Plans (E3025)
gates on the workflow being Approved rather than on the legacy
"Approved" / "Not Approved" Status values. A migration seeds the
default "Config Plan Approval" workflow definition plus three groups
(architect / approver / operator) and their permissions; existing
pending plans are force-re-approved on upgrade. Admins can amend or
delete the workflow definition to customize or disable approvals.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Python 3.10 / Nautobot 3.0.0 CI matrix runs a stricter pylint that
flags the inline `from nautobot.extras.models.approvals import
ApprovalWorkflowDefinition` inside the test method as
`import-outside-toplevel` (C0415), causing the lint step to fail. Move
the import to the file header to keep the matrix green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  nautobot_golden_config
  filters.py
  forms.py
  models.py 903, 907, 911
  tables.py
  nautobot_golden_config/api
  serializers.py
  nautobot_golden_config/nornir_plays
  config_deployment.py
Project Total  

This report was generated by python-coverage-comment-action

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.

1 participant