Skip to content

Commit 3dec6d2

Browse files
nrchakradharEric Stroczynski
authored and
Eric Stroczynski
committed
*: use fmt.Errorf with %w/%v for Go 1.13 error wrapping (#2355)
Changed errors.Wrap and errors.Wrapf to use fmt.Errorf as per Go 1.13 error wrapping conventions
1 parent 6d2b87c commit 3dec6d2

File tree

50 files changed

+196
-209
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+196
-209
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- Added [`run`](./doc/cli/operator-sdk_alpha_run.md) and [`cleanup`](./doc/cli/operator-sdk_alpha_cleanup.md) subcommands (under the `alpha` subcommand) to manage deployment/deletion of operators. These commands currently interact with OLM via an in-cluster registry-server created using an operator's on-disk manifests and managed by `operator-sdk`. ([#2402](ttps://github.com/operator-framework/operator-sdk/pull/2402))
66

77
### Changed
8+
- Changed error wrapping according to Go version 1.13+ [error handling](https://blog.golang.org/go1.13-errors). ([#2355](https://github.com/operator-framework/operator-sdk/pull/2355))
89

910
### Deprecated
1011

@@ -24,7 +25,6 @@
2425
- Added support for override values with environment variable expansion in the `watches.yaml` file for Helm-based operators. ([#2325](https://github.com/operator-framework/operator-sdk/pull/2325))
2526

2627
### Changed
27-
2828
- Replace usage of `github.com/operator-framework/operator-sdk/pkg/restmapper.DynamicRESTMapper` with `sigs.k8s.io/controller-runtime/pkg/client/apiutil.DynamicRESTMapper`. ([#2309](https://github.com/operator-framework/operator-sdk/pull/2309))
2929
- Upgraded Helm operator packages and base image from Helm v2 to Helm v3. Cluster state for pre-existing CRs using Helm v2-based operators will be automatically migrated to Helm v3's new release storage format, and existing releases may be upgraded due to changes in Helm v3's label injection. ([#2080](https://github.com/operator-framework/operator-sdk/pull/2080))
3030
- Fail `operator-sdk olm-catalog gen-csv` if it is not run from a project's root, which the command already assumes is the case. ([#2322](https://github.com/operator-framework/operator-sdk/pull/2322))

cmd/operator-sdk/add/api.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"github.com/operator-framework/operator-sdk/internal/scaffold/input"
2626
"github.com/operator-framework/operator-sdk/internal/util/projutil"
2727

28-
"github.com/pkg/errors"
2928
log "github.com/sirupsen/logrus"
3029
"github.com/spf13/cobra"
3130
)
@@ -115,7 +114,7 @@ func apiRun(cmd *cobra.Command, args []string) error {
115114
// scaffold a group.go to prevent erroneous gengo parse errors.
116115
group := &scaffold.Group{Resource: r}
117116
if err := scaffoldIfNoPkgFileExists(s, cfg, group); err != nil {
118-
return errors.Wrap(err, "scaffold group file")
117+
return fmt.Errorf("scaffold group file: %v", err)
119118
}
120119

121120
err = s.Execute(cfg,
@@ -126,12 +125,12 @@ func apiRun(cmd *cobra.Command, args []string) error {
126125
&scaffold.CR{Resource: r},
127126
)
128127
if err != nil {
129-
return fmt.Errorf("api scaffold failed: (%v)", err)
128+
return fmt.Errorf("api scaffold failed: %v", err)
130129
}
131130

132131
// update deploy/role.yaml for the given resource r.
133132
if err := scaffold.UpdateRoleForResource(r, absProjectPath); err != nil {
134-
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): (%v)", r.APIVersion, r.Kind, err)
133+
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): %v", r.APIVersion, r.Kind, err)
135134
}
136135

137136
if !skipGeneration {
@@ -155,12 +154,12 @@ func apiRun(cmd *cobra.Command, args []string) error {
155154
func scaffoldIfNoPkgFileExists(s *scaffold.Scaffold, cfg *input.Config, f input.File) error {
156155
i, err := f.GetInput()
157156
if err != nil {
158-
return errors.Wrapf(err, "error getting file %s input", i.Path)
157+
return fmt.Errorf("error getting file %s input: %v", i.Path, err)
159158
}
160159
groupDir := filepath.Dir(i.Path)
161160
gdInfos, err := ioutil.ReadDir(groupDir)
162161
if err != nil && !os.IsNotExist(err) {
163-
return errors.Wrapf(err, "error reading dir %s", groupDir)
162+
return fmt.Errorf("error reading dir %s: %v", groupDir, err)
164163
}
165164
if err == nil {
166165
for _, info := range gdInfos {

cmd/operator-sdk/add/controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func controllerRun(cmd *cobra.Command, args []string) error {
9292
&scaffold.AddController{Resource: r},
9393
)
9494
if err != nil {
95-
return fmt.Errorf("controller scaffold failed: (%v)", err)
95+
return fmt.Errorf("controller scaffold failed: %v", err)
9696
}
9797

9898
log.Info("Controller generation complete.")

cmd/operator-sdk/add/crd.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func crdFunc(cmd *cobra.Command, args []string) error {
9292
},
9393
)
9494
if err != nil {
95-
return fmt.Errorf("crd scaffold failed: (%v)", err)
95+
return fmt.Errorf("crd scaffold failed: %v", err)
9696
}
9797

9898
// This command does not consider an APIs dir. Instead it adds a plain CRD
@@ -105,7 +105,7 @@ func crdFunc(cmd *cobra.Command, args []string) error {
105105

106106
// update deploy/role.yaml for the given resource r.
107107
if err := scaffold.UpdateRoleForResource(resource, cfg.AbsProjectPath); err != nil {
108-
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): (%v)", resource.APIVersion, resource.Kind, err)
108+
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): %v", resource.APIVersion, resource.Kind, err)
109109
}
110110

111111
log.Info("CRD generation complete.")
@@ -133,7 +133,7 @@ func verifyCRDFlags() error {
133133
func verifyCRDDeployPath() error {
134134
wd, err := os.Getwd()
135135
if err != nil {
136-
return fmt.Errorf("failed to determine the full path of the current directory: (%v)", err)
136+
return fmt.Errorf("failed to determine the full path of the current directory: %v", err)
137137
}
138138
// check if the deploy sub-directory exist
139139
_, err = os.Stat(filepath.Join(wd, scaffold.DeployDir))

cmd/operator-sdk/build/cmd.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func createBuildCommand(imageBuilder, context, dockerFile, image string, imageBu
7676
if bargs != "" {
7777
splitArgs, err := shlex.Split(bargs)
7878
if err != nil {
79-
return nil, fmt.Errorf("image-build-args is not parseable: %w", err)
79+
return nil, fmt.Errorf("image-build-args is not parseable: %v", err)
8080
}
8181
args = append(args, splitArgs...)
8282
}
@@ -120,7 +120,7 @@ func buildFunc(cmd *cobra.Command, args []string) error {
120120
Env: goBuildEnv,
121121
}
122122
if err := projutil.GoBuild(opts); err != nil {
123-
return fmt.Errorf("failed to build operator binary: (%v)", err)
123+
return fmt.Errorf("failed to build operator binary: %v", err)
124124
}
125125
}
126126

@@ -134,7 +134,7 @@ func buildFunc(cmd *cobra.Command, args []string) error {
134134
}
135135

136136
if err := projutil.ExecCmd(buildCmd); err != nil {
137-
return fmt.Errorf("failed to output build image %s: (%v)", image, err)
137+
return fmt.Errorf("failed to output build image %s: %v", image, err)
138138
}
139139

140140
log.Info("Operator build complete.")

cmd/operator-sdk/internal/genutil/k8s.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"github.com/operator-framework/operator-sdk/internal/util/k8sutil"
2626
"github.com/operator-framework/operator-sdk/internal/util/projutil"
2727

28-
"github.com/pkg/errors"
2928
log "github.com/sirupsen/logrus"
3029
generatorargs "k8s.io/code-generator/cmd/deepcopy-gen/args"
3130
"k8s.io/gengo/examples/deepcopy-gen/generators"
@@ -40,7 +39,7 @@ func K8sCodegen() error {
4039

4140
gvMap, err := k8sutil.ParseGroupSubpackages(scaffold.ApisDir)
4241
if err != nil {
43-
return fmt.Errorf("failed to parse group versions: (%v)", err)
42+
return fmt.Errorf("failed to parse group versions: %v", err)
4443
}
4544
gvb := &strings.Builder{}
4645
for g, vs := range gvMap {
@@ -91,7 +90,7 @@ func deepcopyGen(hf string, fqApis []string) error {
9190
}
9291

9392
if err := generatorargs.Validate(args); err != nil {
94-
return errors.Wrap(err, "deepcopy-gen argument validation error")
93+
return fmt.Errorf("deepcopy-gen argument validation error: %v", err)
9594
}
9695

9796
err = args.Execute(
@@ -100,7 +99,7 @@ func deepcopyGen(hf string, fqApis []string) error {
10099
generators.Packages,
101100
)
102101
if err != nil {
103-
return errors.Wrap(err, "deepcopy-gen generator error")
102+
return fmt.Errorf("deepcopy-gen generator error: %v", err)
104103
}
105104
}
106105
return nil

cmd/operator-sdk/internal/genutil/openapi.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"github.com/operator-framework/operator-sdk/internal/util/k8sutil"
2626
"github.com/operator-framework/operator-sdk/internal/util/projutil"
2727

28-
"github.com/pkg/errors"
2928
log "github.com/sirupsen/logrus"
3029
generatorargs "k8s.io/kube-openapi/cmd/openapi-gen/args"
3130
"k8s.io/kube-openapi/pkg/generators"
@@ -39,7 +38,7 @@ func OpenAPIGen() error {
3938

4039
gvMap, err := k8sutil.ParseGroupSubpackages(scaffold.ApisDir)
4140
if err != nil {
42-
return fmt.Errorf("failed to parse group versions: (%v)", err)
41+
return fmt.Errorf("failed to parse group versions: %v", err)
4342
}
4443
gvb := &strings.Builder{}
4544
for g, vs := range gvMap {
@@ -83,7 +82,7 @@ func openAPIGen(hf string, fqApis []string) error {
8382
// Print API rule violations to stdout
8483
cargs.ReportFilename = "-"
8584
if err := generatorargs.Validate(args); err != nil {
86-
return errors.Wrap(err, "openapi-gen argument validation error")
85+
return fmt.Errorf("openapi-gen argument validation error: %v", err)
8786
}
8887

8988
err := args.Execute(
@@ -92,7 +91,7 @@ func openAPIGen(hf string, fqApis []string) error {
9291
generators.Packages,
9392
)
9493
if err != nil {
95-
return errors.Wrap(err, "openapi-gen generator error")
94+
return fmt.Errorf("openapi-gen generator error: %v", err)
9695
}
9796
}
9897
return nil

cmd/operator-sdk/migrate/cmd.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ func migrateAnsible() error {
101101
case os.IsNotExist(err):
102102
log.Info("No playbook was found, so not including it in the new Dockerfile")
103103
default:
104-
return fmt.Errorf("error trying to stat %s: (%v)", ansible.PlaybookYamlFile, err)
104+
return fmt.Errorf("error trying to stat %s: %v", ansible.PlaybookYamlFile, err)
105105
}
106106
if err := renameDockerfile(); err != nil {
107107
return err
@@ -111,7 +111,7 @@ func migrateAnsible() error {
111111
if headerFile != "" {
112112
err = s.Execute(cfg, &scaffold.Boilerplate{BoilerplateSrcPath: headerFile})
113113
if err != nil {
114-
return fmt.Errorf("boilerplate scaffold failed: (%v)", err)
114+
return fmt.Errorf("boilerplate scaffold failed: %v", err)
115115
}
116116
s.BoilerplatePath = headerFile
117117
}
@@ -126,7 +126,7 @@ func migrateAnsible() error {
126126
&ansible.AoLogs{},
127127
)
128128
if err != nil {
129-
return fmt.Errorf("migrate ansible scaffold failed: (%v)", err)
129+
return fmt.Errorf("migrate ansible scaffold failed: %v", err)
130130
}
131131
return nil
132132
}
@@ -149,7 +149,7 @@ func migrateHelm() error {
149149
if headerFile != "" {
150150
err := s.Execute(cfg, &scaffold.Boilerplate{BoilerplateSrcPath: headerFile})
151151
if err != nil {
152-
return fmt.Errorf("boilerplate scaffold failed: (%v)", err)
152+
return fmt.Errorf("boilerplate scaffold failed: %v", err)
153153
}
154154
s.BoilerplatePath = headerFile
155155
}
@@ -166,7 +166,7 @@ func migrateHelm() error {
166166
&helm.UserSetup{},
167167
)
168168
if err != nil {
169-
return fmt.Errorf("migrate helm scaffold failed: (%v)", err)
169+
return fmt.Errorf("migrate helm scaffold failed: %v", err)
170170
}
171171
return nil
172172
}
@@ -176,7 +176,7 @@ func renameDockerfile() error {
176176
newDockerfilePath := dockerfilePath + ".sdkold"
177177
err := os.Rename(dockerfilePath, newDockerfilePath)
178178
if err != nil {
179-
return fmt.Errorf("failed to rename Dockerfile: (%v)", err)
179+
return fmt.Errorf("failed to rename Dockerfile: %v", err)
180180
}
181181
log.Infof("Renamed Dockerfile to %s and replaced with newer version. Compare the new Dockerfile to your old one and manually migrate any customizations", newDockerfilePath)
182182
return nil

cmd/operator-sdk/new/cmd.go

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
"github.com/operator-framework/operator-sdk/internal/util/projutil"
3232

3333
"github.com/ghodss/yaml"
34-
"github.com/pkg/errors"
3534
log "github.com/sirupsen/logrus"
3635
"github.com/spf13/cobra"
3736
"k8s.io/client-go/discovery"
@@ -183,7 +182,7 @@ func doGoScaffold() error {
183182
if headerFile != "" {
184183
err := s.Execute(cfg, &scaffold.Boilerplate{BoilerplateSrcPath: headerFile})
185184
if err != nil {
186-
return fmt.Errorf("boilerplate scaffold failed: (%v)", err)
185+
return fmt.Errorf("boilerplate scaffold failed: %v", err)
187186
}
188187
s.BoilerplatePath = headerFile
189188
}
@@ -209,7 +208,7 @@ func doGoScaffold() error {
209208
&scaffold.Gitignore{},
210209
)
211210
if err != nil {
212-
return fmt.Errorf("new Go scaffold failed: (%v)", err)
211+
return fmt.Errorf("new Go scaffold failed: %v", err)
213212
}
214213
return nil
215214
}
@@ -222,7 +221,7 @@ func doAnsibleScaffold() error {
222221

223222
resource, err := scaffold.NewResource(apiVersion, kind)
224223
if err != nil {
225-
return fmt.Errorf("invalid apiVersion and kind: (%v)", err)
224+
return fmt.Errorf("invalid apiVersion and kind: %v", err)
226225
}
227226

228227
roleFiles := ansible.RolesFiles{Resource: *resource}
@@ -265,7 +264,7 @@ func doAnsibleScaffold() error {
265264
&ansible.MoleculeTestLocalPrepare{Resource: *resource},
266265
)
267266
if err != nil {
268-
return fmt.Errorf("new ansible scaffold failed: (%v)", err)
267+
return fmt.Errorf("new ansible scaffold failed: %v", err)
269268
}
270269

271270
if err = generateCRDNonGo(projectName, *resource); err != nil {
@@ -275,11 +274,11 @@ func doAnsibleScaffold() error {
275274
// Remove placeholders from empty directories
276275
err = os.Remove(filepath.Join(s.AbsProjectPath, roleFiles.Path))
277276
if err != nil {
278-
return fmt.Errorf("new ansible scaffold failed: (%v)", err)
277+
return fmt.Errorf("new ansible scaffold failed: %v", err)
279278
}
280279
err = os.Remove(filepath.Join(s.AbsProjectPath, roleTemplates.Path))
281280
if err != nil {
282-
return fmt.Errorf("new ansible scaffold failed: (%v)", err)
281+
return fmt.Errorf("new ansible scaffold failed: %v", err)
283282
}
284283

285284
// Decide on playbook.
@@ -290,13 +289,13 @@ func doAnsibleScaffold() error {
290289
&ansible.Playbook{Resource: *resource},
291290
)
292291
if err != nil {
293-
return fmt.Errorf("new ansible playbook scaffold failed: (%v)", err)
292+
return fmt.Errorf("new ansible playbook scaffold failed: %v", err)
294293
}
295294
}
296295

297296
// update deploy/role.yaml for the given resource r.
298297
if err := scaffold.UpdateRoleForResource(resource, cfg.AbsProjectPath); err != nil {
299-
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): (%v)", resource.APIVersion, resource.Kind, err)
298+
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): %v", resource.APIVersion, resource.Kind, err)
300299
}
301300
return nil
302301
}
@@ -317,14 +316,14 @@ func doHelmScaffold() error {
317316

318317
resource, chart, err := helm.CreateChart(cfg.AbsProjectPath, createOpts)
319318
if err != nil {
320-
return fmt.Errorf("failed to create helm chart: %w", err)
319+
return fmt.Errorf("failed to create helm chart: %v", err)
321320
}
322321

323322
valuesPath := filepath.Join("<project_dir>", helm.HelmChartsDir, chart.Name(), "values.yaml")
324323

325324
rawValues, err := yaml.Marshal(chart.Values)
326325
if err != nil {
327-
return fmt.Errorf("failed to get raw chart values: %w", err)
326+
return fmt.Errorf("failed to get raw chart values: %v", err)
328327
}
329328
crSpec := fmt.Sprintf("# Default values copied from %s\n\n%s", valuesPath, rawValues)
330329

@@ -354,15 +353,15 @@ func doHelmScaffold() error {
354353
},
355354
)
356355
if err != nil {
357-
return fmt.Errorf("new helm scaffold failed: %w", err)
356+
return fmt.Errorf("new helm scaffold failed: %v", err)
358357
}
359358

360359
if err = generateCRDNonGo(projectName, *resource); err != nil {
361360
return err
362361
}
363362

364363
if err := scaffold.UpdateRoleForResource(resource, cfg.AbsProjectPath); err != nil {
365-
return fmt.Errorf("failed to update the RBAC manifest for resource (%v, %v): %w", resource.APIVersion, resource.Kind, err)
364+
return fmt.Errorf("failed to update the RBAC manifest for resource (%v, %v): %v", resource.APIVersion, resource.Kind, err)
366365
}
367366
return nil
368367
}
@@ -383,7 +382,7 @@ func generateCRDNonGo(projectName string, resource scaffold.Resource) error {
383382

384383
func verifyFlags() error {
385384
if operatorType != projutil.OperatorTypeGo && operatorType != projutil.OperatorTypeAnsible && operatorType != projutil.OperatorTypeHelm {
386-
return errors.Wrap(projutil.ErrUnknownOperatorType{Type: operatorType}, "value of --type can only be `go`, `ansible`, or `helm`")
385+
return fmt.Errorf("value of --type can only be `go`, `ansible`, or `helm`: %v", projutil.ErrUnknownOperatorType{Type: operatorType})
387386
}
388387
if operatorType != projutil.OperatorTypeAnsible && generatePlaybook {
389388
return fmt.Errorf("value of --generate-playbook can only be used with --type `ansible`")
@@ -461,7 +460,7 @@ func getDeps() error {
461460
func initGit() error {
462461
log.Info("Running git init")
463462
if err := execProjCmd("git", "init"); err != nil {
464-
return errors.Wrapf(err, "failed to run git init")
463+
return fmt.Errorf("failed to run git init: %v", err)
465464
}
466465
log.Info("Run git init done")
467466
return nil

cmd/operator-sdk/olmcatalog/gen-csv.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func genCSVFunc(cmd *cobra.Command, args []string) error {
118118
}
119119
err = s.Execute(cfg, csv)
120120
if err != nil {
121-
return fmt.Errorf("catalog scaffold failed: (%v)", err)
121+
return fmt.Errorf("catalog scaffold failed: %v", err)
122122
}
123123

124124
gcfg := gen.Config{
@@ -168,7 +168,7 @@ func verifyGenCSVFlags() error {
168168
func verifyCSVVersion(version string) error {
169169
v, err := semver.NewVersion(version)
170170
if err != nil {
171-
return fmt.Errorf("%s is not a valid semantic version: (%v)", version, err)
171+
return fmt.Errorf("%s is not a valid semantic version: %v", version, err)
172172
}
173173
// Ensures numerical values composing csvVersion don't contain leading 0's,
174174
// ex. 01.01.01

0 commit comments

Comments
 (0)