From 3be0d81da7b731aa2bf998916223165c2a49a93e Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Mon, 10 Sep 2018 20:20:32 -0700 Subject: [PATCH] ref(driver): refactor out function type errors Signed-off-by: Adam Reese --- cmd/helm/upgrade.go | 5 +---- pkg/storage/driver/cfgmaps.go | 8 ++++---- pkg/storage/driver/driver.go | 6 +++--- pkg/storage/driver/memory.go | 14 +++++++------- pkg/storage/driver/records.go | 2 +- pkg/storage/driver/secrets.go | 8 ++++---- 6 files changed, 20 insertions(+), 23 deletions(-) diff --git a/cmd/helm/upgrade.go b/cmd/helm/upgrade.go index 841e871c7..30f1198a4 100644 --- a/cmd/helm/upgrade.go +++ b/cmd/helm/upgrade.go @@ -19,7 +19,6 @@ package main import ( "fmt" "io" - "strings" "github.com/pkg/errors" "github.com/spf13/cobra" @@ -125,9 +124,7 @@ func (o *upgradeOptions) run(out io.Writer) error { if o.install { // If a release does not exist, install it. If another error occurs during // the check, ignore the error and continue with the upgrade. - _, err := o.client.ReleaseHistory(o.release, 1) - - if err != nil && strings.Contains(err.Error(), driver.ErrReleaseNotFound(o.release).Error()) { + if _, err := o.client.ReleaseHistory(o.release, 1); err == driver.ErrReleaseNotFound { fmt.Fprintf(out, "Release %q does not exist. Installing it now.\n", o.release) io := &installOptions{ chartPath: chartPath, diff --git a/pkg/storage/driver/cfgmaps.go b/pkg/storage/driver/cfgmaps.go index d200e6934..d91b71b91 100644 --- a/pkg/storage/driver/cfgmaps.go +++ b/pkg/storage/driver/cfgmaps.go @@ -66,7 +66,7 @@ func (cfgmaps *ConfigMaps) Get(key string) (*rspb.Release, error) { obj, err := cfgmaps.impl.Get(key, metav1.GetOptions{}) if err != nil { if apierrors.IsNotFound(err) { - return nil, ErrReleaseNotFound(key) + return nil, ErrReleaseNotFound } cfgmaps.Log("get: failed to get %q: %s", key, err) @@ -132,7 +132,7 @@ func (cfgmaps *ConfigMaps) Query(labels map[string]string) ([]*rspb.Release, err } if len(list.Items) == 0 { - return nil, ErrReleaseNotFound(labels["name"]) + return nil, ErrReleaseNotFound } var results []*rspb.Release @@ -165,7 +165,7 @@ func (cfgmaps *ConfigMaps) Create(key string, rls *rspb.Release) error { // push the configmap object out into the kubiverse if _, err := cfgmaps.impl.Create(obj); err != nil { if apierrors.IsAlreadyExists(err) { - return ErrReleaseExists(key) + return ErrReleaseExists } cfgmaps.Log("create: failed to create: %s", err) @@ -203,7 +203,7 @@ func (cfgmaps *ConfigMaps) Delete(key string) (rls *rspb.Release, err error) { // fetch the release to check existence if rls, err = cfgmaps.Get(key); err != nil { if apierrors.IsNotFound(err) { - return nil, ErrReleaseExists(rls.Name) + return nil, ErrReleaseExists } cfgmaps.Log("delete: failed to get release %q: %s", key, err) diff --git a/pkg/storage/driver/driver.go b/pkg/storage/driver/driver.go index 55e719e6f..1bd8d2e6d 100644 --- a/pkg/storage/driver/driver.go +++ b/pkg/storage/driver/driver.go @@ -24,11 +24,11 @@ import ( var ( // ErrReleaseNotFound indicates that a release is not found. - ErrReleaseNotFound = func(release string) error { return errors.Errorf("release: %q not found", release) } + ErrReleaseNotFound = errors.New("release: not found") // ErrReleaseExists indicates that a release already exists. - ErrReleaseExists = func(release string) error { return errors.Errorf("release: %q already exists", release) } + ErrReleaseExists = errors.New("release: already exists") // ErrInvalidKey indicates that a release key could not be parsed. - ErrInvalidKey = func(release string) error { return errors.Errorf("release: %q invalid key", release) } + ErrInvalidKey = errors.Errorf("release: invalid key") ) // Creator is the interface that wraps the Create method. diff --git a/pkg/storage/driver/memory.go b/pkg/storage/driver/memory.go index 70255095a..df89bfed3 100644 --- a/pkg/storage/driver/memory.go +++ b/pkg/storage/driver/memory.go @@ -53,16 +53,16 @@ func (mem *Memory) Get(key string) (*rspb.Release, error) { case 2: name, ver := elems[0], elems[1] if _, err := strconv.Atoi(ver); err != nil { - return nil, ErrInvalidKey(key) + return nil, ErrInvalidKey } if recs, ok := mem.cache[name]; ok { if r := recs.Get(key); r != nil { return r.rls, nil } } - return nil, ErrReleaseNotFound(key) + return nil, ErrReleaseNotFound default: - return nil, ErrInvalidKey(key) + return nil, ErrInvalidKey } } @@ -131,7 +131,7 @@ func (mem *Memory) Update(key string, rls *rspb.Release) error { rs.Replace(key, newRecord(key, rls)) return nil } - return ErrReleaseNotFound(rls.Name) + return ErrReleaseNotFound } // Delete deletes a release or returns ErrReleaseNotFound. @@ -141,12 +141,12 @@ func (mem *Memory) Delete(key string) (*rspb.Release, error) { elems := strings.Split(key, ".v") if len(elems) != 2 { - return nil, ErrInvalidKey(key) + return nil, ErrInvalidKey } name, ver := elems[0], elems[1] if _, err := strconv.Atoi(ver); err != nil { - return nil, ErrInvalidKey(key) + return nil, ErrInvalidKey } if recs, ok := mem.cache[name]; ok { if r := recs.Remove(key); r != nil { @@ -155,7 +155,7 @@ func (mem *Memory) Delete(key string) (*rspb.Release, error) { return r.rls, nil } } - return nil, ErrReleaseNotFound(key) + return nil, ErrReleaseNotFound } // wlock locks mem for writing diff --git a/pkg/storage/driver/records.go b/pkg/storage/driver/records.go index 886f49080..5bb497e7d 100644 --- a/pkg/storage/driver/records.go +++ b/pkg/storage/driver/records.go @@ -36,7 +36,7 @@ func (rs *records) Add(r *record) error { } if rs.Exists(r.key) { - return ErrReleaseExists(r.key) + return ErrReleaseExists } *rs = append(*rs, r) diff --git a/pkg/storage/driver/secrets.go b/pkg/storage/driver/secrets.go index f5040cb8d..1c9ee96e9 100644 --- a/pkg/storage/driver/secrets.go +++ b/pkg/storage/driver/secrets.go @@ -66,7 +66,7 @@ func (secrets *Secrets) Get(key string) (*rspb.Release, error) { obj, err := secrets.impl.Get(key, metav1.GetOptions{}) if err != nil { if apierrors.IsNotFound(err) { - return nil, ErrReleaseNotFound(key) + return nil, ErrReleaseNotFound } return nil, errors.Wrapf(err, "get: failed to get %q", key) } @@ -123,7 +123,7 @@ func (secrets *Secrets) Query(labels map[string]string) ([]*rspb.Release, error) } if len(list.Items) == 0 { - return nil, ErrReleaseNotFound(labels["name"]) + return nil, ErrReleaseNotFound } var results []*rspb.Release @@ -155,7 +155,7 @@ func (secrets *Secrets) Create(key string, rls *rspb.Release) error { // push the secret object out into the kubiverse if _, err := secrets.impl.Create(obj); err != nil { if apierrors.IsAlreadyExists(err) { - return ErrReleaseExists(rls.Name) + return ErrReleaseExists } return errors.Wrap(err, "create: failed to create") @@ -187,7 +187,7 @@ func (secrets *Secrets) Delete(key string) (rls *rspb.Release, err error) { // fetch the release to check existence if rls, err = secrets.Get(key); err != nil { if apierrors.IsNotFound(err) { - return nil, ErrReleaseExists(rls.Name) + return nil, ErrReleaseExists } return nil, errors.Wrapf(err, "delete: failed to get release %q", key)