Skip to content

Commit

Permalink
Go 1.13 error wrapping: Use fmt.Errorf as per 1.13.
Browse files Browse the repository at this point in the history
Use fmt.Errorf as per 1.13. Changed errors.Wrap and errors.Wrapf to use fmt.Errorf.

Fixes #2308
  • Loading branch information
nrchakradhar committed Dec 29, 2019
1 parent ba68281 commit 84fc90b
Show file tree
Hide file tree
Showing 56 changed files with 262 additions and 271 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
- Improve Ansible logs in the Operator container for Ansible-based Operators. ([#2321](https://github.com/operator-framework/operator-sdk/pull/2321))

### Changed

- Changed to go 1.13 way of handling errors. ([#2355](https://github.com/operator-framework/operator-sdk/pull/2355))
- 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))
- 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))
- 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))
Expand Down
11 changes: 5 additions & 6 deletions cmd/operator-sdk/add/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import (
"github.com/operator-framework/operator-sdk/internal/scaffold/input"
"github.com/operator-framework/operator-sdk/internal/util/projutil"

"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)
Expand Down Expand Up @@ -115,7 +114,7 @@ func apiRun(cmd *cobra.Command, args []string) error {
// scaffold a group.go to prevent erroneous gengo parse errors.
group := &scaffold.Group{Resource: r}
if err := scaffoldIfNoPkgFileExists(s, cfg, group); err != nil {
return errors.Wrap(err, "scaffold group file")
return fmt.Errorf("scaffold group file: %w", err)
}

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

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

if !skipGeneration {
Expand All @@ -156,12 +155,12 @@ func apiRun(cmd *cobra.Command, args []string) error {
func scaffoldIfNoPkgFileExists(s *scaffold.Scaffold, cfg *input.Config, f input.File) error {
i, err := f.GetInput()
if err != nil {
return errors.Wrapf(err, "error getting file %s input", i.Path)
return fmt.Errorf("error getting file %s input: %w", i.Path, err)
}
groupDir := filepath.Dir(i.Path)
gdInfos, err := ioutil.ReadDir(groupDir)
if err != nil && !os.IsNotExist(err) {
return errors.Wrapf(err, "error reading dir %s", groupDir)
return fmt.Errorf("error reading dir %s: %w", groupDir, err)
}
if err == nil {
for _, info := range gdInfos {
Expand Down
2 changes: 1 addition & 1 deletion cmd/operator-sdk/add/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ func controllerRun(cmd *cobra.Command, args []string) error {
&scaffold.AddController{Resource: r},
)
if err != nil {
return fmt.Errorf("controller scaffold failed: (%v)", err)
return fmt.Errorf("controller scaffold failed: %w", err)
}

log.Info("Controller generation complete.")
Expand Down
6 changes: 3 additions & 3 deletions cmd/operator-sdk/add/crd.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,12 @@ func crdFunc(cmd *cobra.Command, args []string) error {
},
)
if err != nil {
return fmt.Errorf("crd scaffold failed: (%v)", err)
return fmt.Errorf("crd scaffold failed: %w", err)
}

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

log.Info("CRD generation complete.")
Expand Down Expand Up @@ -128,7 +128,7 @@ func verifyCRDFlags() error {
func verifyCRDDeployPath() error {
wd, err := os.Getwd()
if err != nil {
return fmt.Errorf("failed to determine the full path of the current directory: (%v)", err)
return fmt.Errorf("failed to determine the full path of the current directory: %w", err)
}
// check if the deploy sub-directory exist
_, err = os.Stat(filepath.Join(wd, scaffold.DeployDir))
Expand Down
4 changes: 2 additions & 2 deletions cmd/operator-sdk/build/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ func buildFunc(cmd *cobra.Command, args []string) error {
Env: goBuildEnv,
}
if err := projutil.GoBuild(opts); err != nil {
return fmt.Errorf("failed to build operator binary: (%v)", err)
return fmt.Errorf("failed to build operator binary: %w", err)
}
}

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

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

log.Info("Operator build complete.")
Expand Down
2 changes: 1 addition & 1 deletion cmd/operator-sdk/internal/genutil/crds.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func CRDGen() error {

gvMap, err := k8sutil.ParseGroupSubpackages(scaffold.ApisDir)
if err != nil {
return fmt.Errorf("failed to parse group versions: (%v)", err)
return fmt.Errorf("failed to parse group versions: %w", err)
}
gvb := &strings.Builder{}
for g, vs := range gvMap {
Expand Down
7 changes: 3 additions & 4 deletions cmd/operator-sdk/internal/genutil/k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import (
"github.com/operator-framework/operator-sdk/internal/util/k8sutil"
"github.com/operator-framework/operator-sdk/internal/util/projutil"

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

gvMap, err := k8sutil.ParseGroupSubpackages(scaffold.ApisDir)
if err != nil {
return fmt.Errorf("failed to parse group versions: (%v)", err)
return fmt.Errorf("failed to parse group versions: %w", err)
}
gvb := &strings.Builder{}
for g, vs := range gvMap {
Expand Down Expand Up @@ -91,7 +90,7 @@ func deepcopyGen(hf string, fqApis []string) error {
}

if err := generatorargs.Validate(args); err != nil {
return errors.Wrap(err, "deepcopy-gen argument validation error")
return fmt.Errorf("deepcopy-gen argument validation error: %w", err)
}

err = args.Execute(
Expand All @@ -100,7 +99,7 @@ func deepcopyGen(hf string, fqApis []string) error {
generators.Packages,
)
if err != nil {
return errors.Wrap(err, "deepcopy-gen generator error")
return fmt.Errorf("deepcopy-gen generator error: %w", err)
}
}
return nil
Expand Down
7 changes: 3 additions & 4 deletions cmd/operator-sdk/internal/genutil/openapi.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import (
"github.com/operator-framework/operator-sdk/internal/util/k8sutil"
"github.com/operator-framework/operator-sdk/internal/util/projutil"

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

gvMap, err := k8sutil.ParseGroupSubpackages(scaffold.ApisDir)
if err != nil {
return fmt.Errorf("failed to parse group versions: (%v)", err)
return fmt.Errorf("failed to parse group versions: %w", err)
}
gvb := &strings.Builder{}
for g, vs := range gvMap {
Expand Down Expand Up @@ -83,7 +82,7 @@ func openAPIGen(hf string, fqApis []string) error {
// Print API rule violations to stdout
cargs.ReportFilename = "-"
if err := generatorargs.Validate(args); err != nil {
return errors.Wrap(err, "openapi-gen argument validation error")
return fmt.Errorf("openapi-gen argument validation error: %w", err)
}

err := args.Execute(
Expand All @@ -92,7 +91,7 @@ func openAPIGen(hf string, fqApis []string) error {
generators.Packages,
)
if err != nil {
return errors.Wrap(err, "openapi-gen generator error")
return fmt.Errorf("openapi-gen generator error: %w", err)
}
}
return nil
Expand Down
12 changes: 6 additions & 6 deletions cmd/operator-sdk/migrate/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ func migrateAnsible() error {
case os.IsNotExist(err):
log.Info("No playbook was found, so not including it in the new Dockerfile")
default:
return fmt.Errorf("error trying to stat %s: (%v)", ansible.PlaybookYamlFile, err)
return fmt.Errorf("error trying to stat %s: %w", ansible.PlaybookYamlFile, err)
}
if err := renameDockerfile(); err != nil {
return err
Expand All @@ -111,7 +111,7 @@ func migrateAnsible() error {
if headerFile != "" {
err = s.Execute(cfg, &scaffold.Boilerplate{BoilerplateSrcPath: headerFile})
if err != nil {
return fmt.Errorf("boilerplate scaffold failed: (%v)", err)
return fmt.Errorf("boilerplate scaffold failed: %w", err)
}
s.BoilerplatePath = headerFile
}
Expand All @@ -126,7 +126,7 @@ func migrateAnsible() error {
&ansible.AoLogs{},
)
if err != nil {
return fmt.Errorf("migrate ansible scaffold failed: (%v)", err)
return fmt.Errorf("migrate ansible scaffold failed: %w", err)
}
return nil
}
Expand All @@ -149,7 +149,7 @@ func migrateHelm() error {
if headerFile != "" {
err := s.Execute(cfg, &scaffold.Boilerplate{BoilerplateSrcPath: headerFile})
if err != nil {
return fmt.Errorf("boilerplate scaffold failed: (%v)", err)
return fmt.Errorf("boilerplate scaffold failed: %w", err)
}
s.BoilerplatePath = headerFile
}
Expand All @@ -166,7 +166,7 @@ func migrateHelm() error {
&helm.UserSetup{},
)
if err != nil {
return fmt.Errorf("migrate helm scaffold failed: (%v)", err)
return fmt.Errorf("migrate helm scaffold failed: %w", err)
}
return nil
}
Expand All @@ -176,7 +176,7 @@ func renameDockerfile() error {
newDockerfilePath := dockerfilePath + ".sdkold"
err := os.Rename(dockerfilePath, newDockerfilePath)
if err != nil {
return fmt.Errorf("failed to rename Dockerfile: (%v)", err)
return fmt.Errorf("failed to rename Dockerfile: %w", err)
}
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)
return nil
Expand Down
23 changes: 11 additions & 12 deletions cmd/operator-sdk/new/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import (
"github.com/operator-framework/operator-sdk/internal/util/projutil"

"github.com/ghodss/yaml"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"k8s.io/client-go/discovery"
Expand Down Expand Up @@ -181,7 +180,7 @@ func doGoScaffold() error {
if headerFile != "" {
err := s.Execute(cfg, &scaffold.Boilerplate{BoilerplateSrcPath: headerFile})
if err != nil {
return fmt.Errorf("boilerplate scaffold failed: (%v)", err)
return fmt.Errorf("boilerplate scaffold failed: %w", err)
}
s.BoilerplatePath = headerFile
}
Expand All @@ -207,7 +206,7 @@ func doGoScaffold() error {
&scaffold.Gitignore{},
)
if err != nil {
return fmt.Errorf("new Go scaffold failed: (%v)", err)
return fmt.Errorf("new Go scaffold failed: %w", err)
}
return nil
}
Expand All @@ -220,7 +219,7 @@ func doAnsibleScaffold() error {

resource, err := scaffold.NewResource(apiVersion, kind)
if err != nil {
return fmt.Errorf("invalid apiVersion and kind: (%v)", err)
return fmt.Errorf("invalid apiVersion and kind: %w", err)
}

roleFiles := ansible.RolesFiles{Resource: *resource}
Expand Down Expand Up @@ -264,17 +263,17 @@ func doAnsibleScaffold() error {
&ansible.MoleculeTestLocalPrepare{Resource: *resource},
)
if err != nil {
return fmt.Errorf("new ansible scaffold failed: (%v)", err)
return fmt.Errorf("new ansible scaffold failed: %w", err)
}

// Remove placeholders from empty directories
err = os.Remove(filepath.Join(s.AbsProjectPath, roleFiles.Path))
if err != nil {
return fmt.Errorf("new ansible scaffold failed: (%v)", err)
return fmt.Errorf("new ansible scaffold failed: %w", err)
}
err = os.Remove(filepath.Join(s.AbsProjectPath, roleTemplates.Path))
if err != nil {
return fmt.Errorf("new ansible scaffold failed: (%v)", err)
return fmt.Errorf("new ansible scaffold failed: %w", err)
}

// Decide on playbook.
Expand All @@ -285,13 +284,13 @@ func doAnsibleScaffold() error {
&ansible.Playbook{Resource: *resource},
)
if err != nil {
return fmt.Errorf("new ansible playbook scaffold failed: (%v)", err)
return fmt.Errorf("new ansible playbook scaffold failed: %w", err)
}
}

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

if err := scaffold.UpdateRoleForResource(resource, cfg.AbsProjectPath); err != nil {
return fmt.Errorf("failed to update the RBAC manifest for resource (%v, %v): %w", resource.APIVersion, resource.Kind, err)
return fmt.Errorf("failed to update the RBAC manifest for resource (%v, %w): %w", resource.APIVersion, resource.Kind, err)
}
return nil
}

func verifyFlags() error {
if operatorType != projutil.OperatorTypeGo && operatorType != projutil.OperatorTypeAnsible && operatorType != projutil.OperatorTypeHelm {
return errors.Wrap(projutil.ErrUnknownOperatorType{Type: operatorType}, "value of --type can only be `go`, `ansible`, or `helm`")
return fmt.Errorf("value of --type can only be `go`, `ansible`, or `helm`: %w", projutil.ErrUnknownOperatorType{Type: operatorType})
}
if operatorType != projutil.OperatorTypeAnsible && generatePlaybook {
return fmt.Errorf("value of --generate-playbook can only be used with --type `ansible`")
Expand Down Expand Up @@ -439,7 +438,7 @@ func getDeps() error {
func initGit() error {
log.Info("Running git init")
if err := execProjCmd("git", "init"); err != nil {
return errors.Wrapf(err, "failed to run git init")
return fmt.Errorf("failed to run git init: %w", err)
}
log.Info("Run git init done")
return nil
Expand Down
4 changes: 2 additions & 2 deletions cmd/operator-sdk/olmcatalog/gen-csv.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ func genCSVFunc(cmd *cobra.Command, args []string) error {
},
)
if err != nil {
return fmt.Errorf("catalog scaffold failed: (%v)", err)
return fmt.Errorf("catalog scaffold failed: %w", err)
}

// Write CRD's to the new or updated CSV package dir.
Expand Down Expand Up @@ -165,7 +165,7 @@ func verifyGenCSVFlags() error {
func verifyCSVVersion(version string) error {
v, err := semver.NewVersion(version)
if err != nil {
return fmt.Errorf("%s is not a valid semantic version: (%v)", version, err)
return fmt.Errorf("%s is not a valid semantic version: %w", version, err)
}
// Ensures numerical values composing csvVersion don't contain leading 0's,
// ex. 01.01.01
Expand Down
2 changes: 1 addition & 1 deletion cmd/operator-sdk/printdeps/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func printDepsFunc(cmd *cobra.Command, args []string) error {
projutil.MustInProjectRoot()

if err := printDeps(); err != nil {
return fmt.Errorf("print deps failed: %v", err)
return fmt.Errorf("print deps failed: %w", err)
}
return nil
}
Expand Down
Loading

0 comments on commit 84fc90b

Please sign in to comment.