Skip to content

Commit 4fda76e

Browse files
authored
Merge pull request #4748 from kersten/refactor/wrap-deploy-image-plugin-errors
🌱 (chore): wrap deploy-image plugin errors with contextual messages
2 parents ecf5771 + 31780a8 commit 4fda76e

File tree

2 files changed

+18
-9
lines changed
  • pkg/plugins/golang/deploy-image/v1alpha1

2 files changed

+18
-9
lines changed

pkg/plugins/golang/deploy-image/v1alpha1/api.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func (p *createAPISubcommand) InjectResource(res *resource.Resource) error {
138138
p.options.UpdateResource(p.resource, p.config)
139139

140140
if err := p.resource.Validate(); err != nil {
141-
return err
141+
return fmt.Errorf("error validating resource: %w", err)
142142
}
143143

144144
// Check that the provided group can be added to the project
@@ -186,17 +186,17 @@ func (p *createAPISubcommand) Scaffold(fs machinery.Filesystem) error {
186186
scaffolder.InjectFS(fs)
187187
err := scaffolder.Scaffold()
188188
if err != nil {
189-
return err
189+
return fmt.Errorf("error scaffolding deploy-image plugin: %w", err)
190190
}
191191

192192
// Track the resources following a declarative approach
193193
cfg := PluginConfig{}
194-
if err := p.config.DecodePluginConfig(pluginKey, &cfg); errors.As(err, &config.UnsupportedFieldError{}) {
194+
if err = p.config.DecodePluginConfig(pluginKey, &cfg); errors.As(err, &config.UnsupportedFieldError{}) {
195195
// Skip tracking as the config doesn't support per-plugin configuration
196196
return nil
197197
} else if err != nil && !errors.As(err, &config.PluginKeyNotFoundError{}) {
198198
// Fail unless the key wasn't found, which just means it is the first resource tracked
199-
return err
199+
return fmt.Errorf("error decoding plugin configuration: %w", err)
200200
}
201201

202202
configDataOptions := options{
@@ -212,25 +212,30 @@ func (p *createAPISubcommand) Scaffold(fs machinery.Filesystem) error {
212212
Kind: p.resource.GVK.Kind,
213213
Options: configDataOptions,
214214
})
215-
return p.config.EncodePluginConfig(pluginKey, cfg)
215+
216+
if err = p.config.EncodePluginConfig(pluginKey, cfg); err != nil {
217+
return fmt.Errorf("error encoding plugin configuration: %w", err)
218+
}
219+
220+
return nil
216221
}
217222

218223
func (p *createAPISubcommand) PostScaffold() error {
219224
err := util.RunCmd("Update dependencies", "go", "mod", "tidy")
220225
if err != nil {
221-
return err
226+
return fmt.Errorf("error updating go dependencies: %w", err)
222227
}
223228
if p.runMake && p.resource.HasAPI() {
224229
err = util.RunCmd("Running make", "make", "generate")
225230
if err != nil {
226-
return err
231+
return fmt.Errorf("ailed running make generate: %w", err)
227232
}
228233
}
229234

230235
if p.runManifests && p.resource.HasAPI() {
231236
err = util.RunCmd("Running make", "make", "manifests")
232237
if err != nil {
233-
return err
238+
return fmt.Errorf("failed running make manifests: %w", err)
234239
}
235240
}
236241

pkg/plugins/golang/deploy-image/v1alpha1/scaffolds/api.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,11 @@ func (s *apiScaffolder) scaffoldCreateAPIFromGolang() error {
294294
golangV4Scaffolder := golangv4scaffolds.NewAPIScaffolder(s.config,
295295
s.resource, true)
296296
golangV4Scaffolder.InjectFS(s.fs)
297-
return golangV4Scaffolder.Scaffold()
297+
if err := golangV4Scaffolder.Scaffold(); err != nil {
298+
return fmt.Errorf("error scaffolding golang files for the APIs: %v", err)
299+
}
300+
301+
return nil
298302
}
299303

300304
const containerTemplate = `Containers: []corev1.Container{{

0 commit comments

Comments
 (0)