Skip to content

Commit 31b8be2

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 operator-framework#2308
1 parent 85d4257 commit 31b8be2

File tree

50 files changed

+418
-229
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

+418
-229
lines changed

CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
- 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))
2323

2424
### Changed
25-
25+
- Changes in `errors` wrapped to handle them according to the Go version 1.13+. More info: https://blog.golang.org/go1.13-errors. ([#2355](https://github.com/operator-framework/operator-sdk/pull/2355))
2626
- 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))
2727
- 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))
2828
- 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: %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

+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: %v", 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
@@ -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

+3-3
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/crds.go

+40-4
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,46 @@ func CRDGen() error {
3131

3232
log.Info("Running CRD generator.")
3333

34-
cfg := gen.Config{}
35-
crd := gencrd.NewCRDGo(cfg)
36-
if err := crd.Generate(); err != nil {
37-
return fmt.Errorf("error generating CRDs from APIs in %s: %w", scaffold.ApisDir, err)
34+
gvMap, err := k8sutil.ParseGroupSubpackages(scaffold.ApisDir)
35+
if err != nil {
36+
return fmt.Errorf("failed to parse group versions: %v", err)
37+
}
38+
gvb := &strings.Builder{}
39+
for g, vs := range gvMap {
40+
gvb.WriteString(fmt.Sprintf("%s:%v, ", g, vs))
41+
}
42+
43+
log.Infof("Running CRD generation for Custom Resource group versions: [%v]\n", gvb.String())
44+
45+
s := &scaffold.Scaffold{}
46+
cfg := &input.Config{
47+
Repo: repoPkg,
48+
AbsProjectPath: absProjectPath,
49+
ProjectName: filepath.Base(absProjectPath),
50+
}
51+
crds, err := k8sutil.GetCRDs(scaffold.CRDsDir)
52+
if err != nil {
53+
return err
54+
}
55+
for _, crd := range crds {
56+
g, v, k := crd.Spec.Group, crd.Spec.Version, crd.Spec.Names.Kind
57+
if v == "" {
58+
if len(crd.Spec.Versions) != 0 {
59+
v = crd.Spec.Versions[0].Name
60+
} else {
61+
return fmt.Errorf("crd of group %s kind %s has no version", g, k)
62+
}
63+
}
64+
r, err := scaffold.NewResource(g+"/"+v, k)
65+
if err != nil {
66+
return err
67+
}
68+
err = s.Execute(cfg,
69+
&scaffold.CRD{Resource: r, IsOperatorGo: projutil.IsOperatorGo()},
70+
)
71+
if err != nil {
72+
return err
73+
}
3874
}
3975

4076
log.Info("CRD generation complete.")

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: %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

+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: %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

+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: %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

0 commit comments

Comments
 (0)