mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-30 01:27:59 +00:00
* feat: state rm * review feedback * fix conflict for pegomock generation code * adopt state command into allow-commands * fix conflicts * fix: state rm works on workspace * notify import/state rm discard plan file * fix lint * use repeat instead warning for re-plan * perl -pi -e 's!\* 🔁 plan file was discarded. to!🚮 A plan file was discarded. Re-plan would be required before applying.\n\n\* 🔁 To!g' server/**/* * follow main branch
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package raw
|
|
|
|
import (
|
|
validation "github.com/go-ozzo/ozzo-validation"
|
|
"github.com/runatlantis/atlantis/server/core/config/valid"
|
|
)
|
|
|
|
type Workflow struct {
|
|
Apply *Stage `yaml:"apply,omitempty" json:"apply,omitempty"`
|
|
Plan *Stage `yaml:"plan,omitempty" json:"plan,omitempty"`
|
|
PolicyCheck *Stage `yaml:"policy_check,omitempty" json:"policy_check,omitempty"`
|
|
Import *Stage `yaml:"import,omitempty" json:"import,omitempty"`
|
|
StateRm *Stage `yaml:"state_rm,omitempty" json:"state_rm,omitempty"`
|
|
}
|
|
|
|
func (w Workflow) Validate() error {
|
|
return validation.ValidateStruct(&w,
|
|
validation.Field(&w.Apply),
|
|
validation.Field(&w.Plan),
|
|
validation.Field(&w.PolicyCheck),
|
|
validation.Field(&w.Import),
|
|
validation.Field(&w.StateRm),
|
|
)
|
|
}
|
|
|
|
func (w Workflow) toValidStage(stage *Stage, defaultStage valid.Stage) valid.Stage {
|
|
if stage == nil || stage.Steps == nil {
|
|
return defaultStage
|
|
}
|
|
|
|
return stage.ToValid()
|
|
}
|
|
|
|
func (w Workflow) ToValid(name string) valid.Workflow {
|
|
v := valid.Workflow{
|
|
Name: name,
|
|
}
|
|
|
|
v.Apply = w.toValidStage(w.Apply, valid.DefaultApplyStage)
|
|
v.Plan = w.toValidStage(w.Plan, valid.DefaultPlanStage)
|
|
v.PolicyCheck = w.toValidStage(w.PolicyCheck, valid.DefaultPolicyCheckStage)
|
|
v.Import = w.toValidStage(w.Import, valid.DefaultImportStage)
|
|
v.StateRm = w.toValidStage(w.StateRm, valid.DefaultStateRmStage)
|
|
|
|
return v
|
|
}
|