Skip to content

Commit 84fc90b

Browse files
committed
Go 1.13 error wrapping: Use fmt.Errorf as per 1.13.
Use fmt.Errorf as per 1.13. Changed errors.Wrap and errors.Wrapf to use fmt.Errorf. Fixes #2308
1 parent ba68281 commit 84fc90b

Some content is hidden

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

56 files changed

+262
-271
lines changed

CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
- Improve Ansible logs in the Operator container for Ansible-based Operators. ([#2321](https://github.com/operator-framework/operator-sdk/pull/2321))
1010

1111
### Changed
12-
12+
- Changed to go 1.13 way of handling errors. ([#2355](https://github.com/operator-framework/operator-sdk/pull/2355))
1313
- 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))
1414
- 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))
1515
- 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

+5-6
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: %w", err)
119118
}
120119

121120
err = s.Execute(cfg,
@@ -127,12 +126,12 @@ func apiRun(cmd *cobra.Command, args []string) error {
127126
&scaffold.CRD{Resource: r, IsOperatorGo: projutil.IsOperatorGo()},
128127
)
129128
if err != nil {
130-
return fmt.Errorf("api scaffold failed: (%v)", err)
129+
return fmt.Errorf("api scaffold failed: %w", err)
131130
}
132131

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

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

cmd/operator-sdk/add/controller.go

+1-1
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: %w", err)
9696
}
9797

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

cmd/operator-sdk/add/crd.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,12 @@ func crdFunc(cmd *cobra.Command, args []string) error {
9595
},
9696
)
9797
if err != nil {
98-
return fmt.Errorf("crd scaffold failed: (%v)", err)
98+
return fmt.Errorf("crd scaffold failed: %w", err)
9999
}
100100

101101
// update deploy/role.yaml for the given resource r.
102102
if err := scaffold.UpdateRoleForResource(resource, cfg.AbsProjectPath); err != nil {
103-
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): (%v)", resource.APIVersion, resource.Kind, err)
103+
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): %w", resource.APIVersion, resource.Kind, err)
104104
}
105105

106106
log.Info("CRD generation complete.")
@@ -128,7 +128,7 @@ func verifyCRDFlags() error {
128128
func verifyCRDDeployPath() error {
129129
wd, err := os.Getwd()
130130
if err != nil {
131-
return fmt.Errorf("failed to determine the full path of the current directory: (%v)", err)
131+
return fmt.Errorf("failed to determine the full path of the current directory: %w", err)
132132
}
133133
// check if the deploy sub-directory exist
134134
_, err = os.Stat(filepath.Join(wd, scaffold.DeployDir))

cmd/operator-sdk/build/cmd.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -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: %w", 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: %w", image, err)
138138
}
139139

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

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func CRDGen() error {
3636

3737
gvMap, err := k8sutil.ParseGroupSubpackages(scaffold.ApisDir)
3838
if err != nil {
39-
return fmt.Errorf("failed to parse group versions: (%v)", err)
39+
return fmt.Errorf("failed to parse group versions: %w", err)
4040
}
4141
gvb := &strings.Builder{}
4242
for g, vs := range gvMap {

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

+3-4
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: %w", 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: %w", 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: %w", err)
104103
}
105104
}
106105
return nil

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

+3-4
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: %w", 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: %w", 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: %w", err)
9695
}
9796
}
9897
return nil

cmd/operator-sdk/migrate/cmd.go

+6-6
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: %w", 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: %w", 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: %w", 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: %w", 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: %w", 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: %w", 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

+11-12
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import (
2929
"github.com/operator-framework/operator-sdk/internal/util/projutil"
3030

3131
"github.com/ghodss/yaml"
32-
"github.com/pkg/errors"
3332
log "github.com/sirupsen/logrus"
3433
"github.com/spf13/cobra"
3534
"k8s.io/client-go/discovery"
@@ -181,7 +180,7 @@ func doGoScaffold() error {
181180
if headerFile != "" {
182181
err := s.Execute(cfg, &scaffold.Boilerplate{BoilerplateSrcPath: headerFile})
183182
if err != nil {
184-
return fmt.Errorf("boilerplate scaffold failed: (%v)", err)
183+
return fmt.Errorf("boilerplate scaffold failed: %w", err)
185184
}
186185
s.BoilerplatePath = headerFile
187186
}
@@ -207,7 +206,7 @@ func doGoScaffold() error {
207206
&scaffold.Gitignore{},
208207
)
209208
if err != nil {
210-
return fmt.Errorf("new Go scaffold failed: (%v)", err)
209+
return fmt.Errorf("new Go scaffold failed: %w", err)
211210
}
212211
return nil
213212
}
@@ -220,7 +219,7 @@ func doAnsibleScaffold() error {
220219

221220
resource, err := scaffold.NewResource(apiVersion, kind)
222221
if err != nil {
223-
return fmt.Errorf("invalid apiVersion and kind: (%v)", err)
222+
return fmt.Errorf("invalid apiVersion and kind: %w", err)
224223
}
225224

226225
roleFiles := ansible.RolesFiles{Resource: *resource}
@@ -264,17 +263,17 @@ func doAnsibleScaffold() error {
264263
&ansible.MoleculeTestLocalPrepare{Resource: *resource},
265264
)
266265
if err != nil {
267-
return fmt.Errorf("new ansible scaffold failed: (%v)", err)
266+
return fmt.Errorf("new ansible scaffold failed: %w", err)
268267
}
269268

270269
// Remove placeholders from empty directories
271270
err = os.Remove(filepath.Join(s.AbsProjectPath, roleFiles.Path))
272271
if err != nil {
273-
return fmt.Errorf("new ansible scaffold failed: (%v)", err)
272+
return fmt.Errorf("new ansible scaffold failed: %w", err)
274273
}
275274
err = os.Remove(filepath.Join(s.AbsProjectPath, roleTemplates.Path))
276275
if err != nil {
277-
return fmt.Errorf("new ansible scaffold failed: (%v)", err)
276+
return fmt.Errorf("new ansible scaffold failed: %w", err)
278277
}
279278

280279
// Decide on playbook.
@@ -285,13 +284,13 @@ func doAnsibleScaffold() error {
285284
&ansible.Playbook{Resource: *resource},
286285
)
287286
if err != nil {
288-
return fmt.Errorf("new ansible playbook scaffold failed: (%v)", err)
287+
return fmt.Errorf("new ansible playbook scaffold failed: %w", err)
289288
}
290289
}
291290

292291
// update deploy/role.yaml for the given resource r.
293292
if err := scaffold.UpdateRoleForResource(resource, cfg.AbsProjectPath); err != nil {
294-
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): (%v)", resource.APIVersion, resource.Kind, err)
293+
return fmt.Errorf("failed to update the RBAC manifest for the resource (%v, %v): %w", resource.APIVersion, resource.Kind, err)
295294
}
296295
return nil
297296
}
@@ -354,14 +353,14 @@ func doHelmScaffold() error {
354353
}
355354

356355
if err := scaffold.UpdateRoleForResource(resource, cfg.AbsProjectPath); err != nil {
357-
return fmt.Errorf("failed to update the RBAC manifest for resource (%v, %v): %w", resource.APIVersion, resource.Kind, err)
356+
return fmt.Errorf("failed to update the RBAC manifest for resource (%v, %w): %w", resource.APIVersion, resource.Kind, err)
358357
}
359358
return nil
360359
}
361360

362361
func verifyFlags() error {
363362
if operatorType != projutil.OperatorTypeGo && operatorType != projutil.OperatorTypeAnsible && operatorType != projutil.OperatorTypeHelm {
364-
return errors.Wrap(projutil.ErrUnknownOperatorType{Type: operatorType}, "value of --type can only be `go`, `ansible`, or `helm`")
363+
return fmt.Errorf("value of --type can only be `go`, `ansible`, or `helm`: %w", projutil.ErrUnknownOperatorType{Type: operatorType})
365364
}
366365
if operatorType != projutil.OperatorTypeAnsible && generatePlaybook {
367366
return fmt.Errorf("value of --generate-playbook can only be used with --type `ansible`")
@@ -439,7 +438,7 @@ func getDeps() error {
439438
func initGit() error {
440439
log.Info("Running git init")
441440
if err := execProjCmd("git", "init"); err != nil {
442-
return errors.Wrapf(err, "failed to run git init")
441+
return fmt.Errorf("failed to run git init: %w", err)
443442
}
444443
log.Info("Run git init done")
445444
return nil

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ func genCSVFunc(cmd *cobra.Command, args []string) error {
124124
},
125125
)
126126
if err != nil {
127-
return fmt.Errorf("catalog scaffold failed: (%v)", err)
127+
return fmt.Errorf("catalog scaffold failed: %w", err)
128128
}
129129

130130
// Write CRD's to the new or updated CSV package dir.
@@ -165,7 +165,7 @@ func verifyGenCSVFlags() error {
165165
func verifyCSVVersion(version string) error {
166166
v, err := semver.NewVersion(version)
167167
if err != nil {
168-
return fmt.Errorf("%s is not a valid semantic version: (%v)", version, err)
168+
return fmt.Errorf("%s is not a valid semantic version: %w", version, err)
169169
}
170170
// Ensures numerical values composing csvVersion don't contain leading 0's,
171171
// ex. 01.01.01

cmd/operator-sdk/printdeps/cmd.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func printDepsFunc(cmd *cobra.Command, args []string) error {
4444
projutil.MustInProjectRoot()
4545

4646
if err := printDeps(); err != nil {
47-
return fmt.Errorf("print deps failed: %v", err)
47+
return fmt.Errorf("print deps failed: %w", err)
4848
}
4949
return nil
5050
}

0 commit comments

Comments
 (0)