Skip to content

Commit ea02ac6

Browse files
committed
alpha: add verification for defaults set
1 parent c6848c8 commit ea02ac6

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

pkg/config/project_normalization.go

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,36 @@ func (p *Project) Normalize() error {
116116
return err
117117
}
118118

119+
func (p *Project) checkAndNormalizeDefaults() error {
120+
if p.Defaults.Run.Plugin != "" && !p.FindLoadedPlugin(p.Defaults.Run.Plugin).HasAction(plugins.ActionRun) {
121+
return p.yamlError("$.defaults.run.plugin", fmt.Sprintf("plugin '%s' can't be used for run", p.Defaults.Run.Plugin))
122+
}
123+
124+
if p.Defaults.Deploy.Plugin != "" && !p.FindLoadedPlugin(p.Defaults.Deploy.Plugin).HasAction(plugins.ActionDeploy) {
125+
return p.yamlError("$.defaults.deploy.plugin", fmt.Sprintf("plugin '%s' can't be used for deploy", p.Defaults.Deploy.Plugin))
126+
}
127+
128+
if p.Defaults.DNS.Plugin != "" && !p.FindLoadedPlugin(p.Defaults.DNS.Plugin).HasAction(plugins.ActionDNS) {
129+
return p.yamlError("$.defaults.dns.plugin", fmt.Sprintf("plugin '%s' can't be used for dns", p.Defaults.DNS.Plugin))
130+
}
131+
132+
for _, plug := range p.LoadedPlugins() {
133+
if plug.HasAction(plugins.ActionDeploy) && p.Defaults.Deploy.Plugin == "" {
134+
p.Defaults.Deploy.Plugin = plug.Name
135+
}
136+
137+
if plug.HasAction(plugins.ActionDNS) && p.Defaults.DNS.Plugin == "" {
138+
p.Defaults.DNS.Plugin = plug.Name
139+
}
140+
141+
if plug.HasAction(plugins.ActionRun) && p.Defaults.Run.Plugin == "" {
142+
p.Defaults.Run.Plugin = plug.Name
143+
}
144+
}
145+
146+
return nil
147+
}
148+
119149
// Logic validation after everything is loaded, e.g. check for supported types.
120150
func (p *Project) FullCheck() error {
121151
err := func() error {
@@ -143,21 +173,7 @@ func (p *Project) FullCheck() error {
143173
return err
144174
}
145175

146-
for _, plug := range p.LoadedPlugins() {
147-
if plug.HasAction(plugins.ActionDeploy) && p.Defaults.Deploy.Plugin == "" {
148-
p.Defaults.Deploy.Plugin = plug.Name
149-
}
150-
151-
if plug.HasAction(plugins.ActionDNS) && p.Defaults.DNS.Plugin == "" {
152-
p.Defaults.DNS.Plugin = plug.Name
153-
}
154-
155-
if plug.HasAction(plugins.ActionRun) && p.Defaults.Run.Plugin == "" {
156-
p.Defaults.Run.Plugin = plug.Name
157-
}
158-
}
159-
160-
return nil
176+
return p.checkAndNormalizeDefaults()
161177
}()
162178

163179
if err != nil {

0 commit comments

Comments
 (0)