fix/remove-errors-pkg

This commit is contained in:
lzj 2021-06-23 19:20:57 +08:00
parent 7b24c7e4a7
commit 7cf30d5690
4 changed files with 37 additions and 42 deletions

View File

@ -20,11 +20,10 @@ import (
"context" "context"
"encoding/json" "encoding/json"
"flag" "flag"
"fmt"
"io/ioutil" "io/ioutil"
"time" "time"
"github.com/pkg/errors"
storagev1 "k8s.io/api/storage/v1" storagev1 "k8s.io/api/storage/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@ -168,7 +167,7 @@ func AddDriverDefinition(filename string) error {
return err return err
} }
if driver.DriverInfo.Name == "" { if driver.DriverInfo.Name == "" {
return errors.Errorf("%q: DriverInfo.Name not set", filename) return fmt.Errorf("%q: DriverInfo.Name not set", filename)
} }
description := "External Storage " + storageframework.GetDriverNameWithFeatureTags(driver) description := "External Storage " + storageframework.GetDriverNameWithFeatureTags(driver)
@ -181,7 +180,7 @@ func AddDriverDefinition(filename string) error {
func loadDriverDefinition(filename string) (*driverDefinition, error) { func loadDriverDefinition(filename string) (*driverDefinition, error) {
if filename == "" { if filename == "" {
return nil, errors.New("missing file name") return nil, fmt.Errorf("missing file name")
} }
data, err := ioutil.ReadFile(filename) data, err := ioutil.ReadFile(filename)
if err != nil { if err != nil {
@ -201,7 +200,7 @@ func loadDriverDefinition(filename string) (*driverDefinition, error) {
// TODO: strict checking of the file content once https://github.com/kubernetes/kubernetes/pull/71589 // TODO: strict checking of the file content once https://github.com/kubernetes/kubernetes/pull/71589
// or something similar is merged. // or something similar is merged.
if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), data, driver); err != nil { if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), data, driver); err != nil {
return nil, errors.Wrap(err, filename) return nil, fmt.Errorf("%s: %w", filename, err)
} }
// to ensure backward compatibility if controller expansion is enabled then set online expansion to true // to ensure backward compatibility if controller expansion is enabled then set online expansion to true
@ -347,7 +346,7 @@ func loadSnapshotClass(filename string) (*unstructured.Unstructured, error) {
snapshotClass := &unstructured.Unstructured{} snapshotClass := &unstructured.Unstructured{}
if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), data, snapshotClass); err != nil { if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), data, snapshotClass); err != nil {
return nil, errors.Wrap(err, filename) return nil, fmt.Errorf("%s: %w", filename, err)
} }
return snapshotClass, nil return snapshotClass, nil

View File

@ -22,7 +22,6 @@ import (
"time" "time"
"github.com/onsi/ginkgo" "github.com/onsi/ginkgo"
"github.com/pkg/errors"
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
storagev1 "k8s.io/api/storage/v1" storagev1 "k8s.io/api/storage/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors" apierrors "k8s.io/apimachinery/pkg/api/errors"
@ -184,27 +183,27 @@ func (r *VolumeResource) CleanupResource() error {
if pvc.Spec.VolumeName != "" { if pvc.Spec.VolumeName != "" {
pv, err = cs.CoreV1().PersistentVolumes().Get(context.TODO(), pvc.Spec.VolumeName, metav1.GetOptions{}) pv, err = cs.CoreV1().PersistentVolumes().Get(context.TODO(), pvc.Spec.VolumeName, metav1.GetOptions{})
if err != nil { if err != nil {
cleanUpErrs = append(cleanUpErrs, errors.Wrapf(err, "Failed to find PV %v", pvc.Spec.VolumeName)) cleanUpErrs = append(cleanUpErrs, fmt.Errorf("failed to find PV %v: %w", pvc.Spec.VolumeName, err))
} }
} }
case apierrors.IsNotFound(err): case apierrors.IsNotFound(err):
// Without the PVC, we cannot locate the corresponding PV. Let's // Without the PVC, we cannot locate the corresponding PV. Let's
// hope that it is gone. // hope that it is gone.
default: default:
cleanUpErrs = append(cleanUpErrs, errors.Wrapf(err, "Failed to find PVC %v", r.Pvc.Name)) cleanUpErrs = append(cleanUpErrs, fmt.Errorf("failed to find PVC %v: %w", r.Pvc.Name, err))
} }
} }
err := e2epv.DeletePersistentVolumeClaim(f.ClientSet, r.Pvc.Name, f.Namespace.Name) err := e2epv.DeletePersistentVolumeClaim(f.ClientSet, r.Pvc.Name, f.Namespace.Name)
if err != nil { if err != nil {
cleanUpErrs = append(cleanUpErrs, errors.Wrapf(err, "Failed to delete PVC %v", r.Pvc.Name)) cleanUpErrs = append(cleanUpErrs, fmt.Errorf("failed to delete PVC %v: %w", r.Pvc.Name, err))
} }
if pv != nil { if pv != nil {
err = e2epv.WaitForPersistentVolumeDeleted(f.ClientSet, pv.Name, 5*time.Second, 5*time.Minute) err = e2epv.WaitForPersistentVolumeDeleted(f.ClientSet, pv.Name, 5*time.Second, 5*time.Minute)
if err != nil { if err != nil {
cleanUpErrs = append(cleanUpErrs, errors.Wrapf(err, cleanUpErrs = append(cleanUpErrs, fmt.Errorf(
"Persistent Volume %v not deleted by dynamic provisioner", pv.Name)) "persistent Volume %v not deleted by dynamic provisioner: %w", pv.Name, err))
} }
} }
} }
@ -216,14 +215,14 @@ func (r *VolumeResource) CleanupResource() error {
if r.Sc != nil { if r.Sc != nil {
ginkgo.By("Deleting sc") ginkgo.By("Deleting sc")
if err := storageutils.DeleteStorageClass(f.ClientSet, r.Sc.Name); err != nil { if err := storageutils.DeleteStorageClass(f.ClientSet, r.Sc.Name); err != nil {
cleanUpErrs = append(cleanUpErrs, errors.Wrapf(err, "Failed to delete StorageClass %v", r.Sc.Name)) cleanUpErrs = append(cleanUpErrs, fmt.Errorf("failed to delete StorageClass %v: %w", r.Sc.Name, err))
} }
} }
// Cleanup volume for pre-provisioned volume tests // Cleanup volume for pre-provisioned volume tests
if r.Volume != nil { if r.Volume != nil {
if err := storageutils.TryFunc(r.Volume.DeleteVolume); err != nil { if err := storageutils.TryFunc(r.Volume.DeleteVolume); err != nil {
cleanUpErrs = append(cleanUpErrs, errors.Wrap(err, "Failed to delete Volume")) cleanUpErrs = append(cleanUpErrs, fmt.Errorf("failed to delete Volume: %w", err))
} }
} }
return utilerrors.NewAggregate(cleanUpErrs) return utilerrors.NewAggregate(cleanUpErrs)

View File

@ -35,8 +35,6 @@ import (
"sync" "sync"
"time" "time"
"github.com/pkg/errors"
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
meta "k8s.io/apimachinery/pkg/apis/meta/v1" meta "k8s.io/apimachinery/pkg/apis/meta/v1"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
@ -97,7 +95,7 @@ func CopyPodLogs(ctx context.Context, cs clientset.Interface, ns, podName string
watcher, err := cs.CoreV1().Pods(ns).Watch(context.TODO(), options) watcher, err := cs.CoreV1().Pods(ns).Watch(context.TODO(), options)
if err != nil { if err != nil {
return errors.Wrap(err, "cannot create Pod event watcher") return fmt.Errorf("cannot create Pod event watcher: %w", err)
} }
go func() { go func() {

View File

@ -20,10 +20,9 @@ import (
"bytes" "bytes"
"context" "context"
"encoding/json" "encoding/json"
"errors"
"fmt" "fmt"
"github.com/pkg/errors"
appsv1 "k8s.io/api/apps/v1" appsv1 "k8s.io/api/apps/v1"
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1" rbacv1 "k8s.io/api/rbac/v1"
@ -58,17 +57,17 @@ func LoadFromManifests(files ...string) ([]interface{}, error) {
// Ignore any additional fields for now, just determine what we have. // Ignore any additional fields for now, just determine what we have.
var what What var what What
if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), data, &what); err != nil { if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), data, &what); err != nil {
return errors.Wrap(err, "decode TypeMeta") return fmt.Errorf("decode TypeMeta: %w", err)
} }
factory := factories[what] factory := factories[what]
if factory == nil { if factory == nil {
return errors.Errorf("item of type %+v not supported", what) return fmt.Errorf("item of type %+v not supported", what)
} }
object := factory.New() object := factory.New()
if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), data, object); err != nil { if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), data, object); err != nil {
return errors.Wrapf(err, "decode %+v", what) return fmt.Errorf("decode %+v: %w", what, err)
} }
items = append(items, object) items = append(items, object)
return nil return nil
@ -96,7 +95,7 @@ func visitManifests(cb func([]byte) error, files ...string) error {
for _, item := range items { for _, item := range items {
if err := cb(item); err != nil { if err := cb(item); err != nil {
return errors.Wrap(err, fileName) return fmt.Errorf("%s: %w", fileName, err)
} }
} }
} }
@ -173,13 +172,13 @@ func CreateItems(f *framework.Framework, ns *v1.Namespace, items ...interface{})
if err == nil { if err == nil {
done = true done = true
break break
} else if errors.Cause(err) != errorItemNotSupported { } else if !errors.Is(err, errorItemNotSupported) {
result = err result = err
break break
} }
} }
if result == nil && !done { if result == nil && !done {
result = errors.Errorf("item of type %T not supported", item) result = fmt.Errorf("item of type %T not supported", item)
break break
} }
} }
@ -198,7 +197,7 @@ func CreateItems(f *framework.Framework, ns *v1.Namespace, items ...interface{})
func CreateFromManifests(f *framework.Framework, driverNamespace *v1.Namespace, patch func(item interface{}) error, files ...string) (func(), error) { func CreateFromManifests(f *framework.Framework, driverNamespace *v1.Namespace, patch func(item interface{}) error, files ...string) (func(), error) {
items, err := LoadFromManifests(files...) items, err := LoadFromManifests(files...)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "CreateFromManifests") return nil, fmt.Errorf("CreateFromManifests: %w", err)
} }
if err := PatchItems(f, driverNamespace, items...); err != nil { if err := PatchItems(f, driverNamespace, items...); err != nil {
return nil, err return nil, err
@ -337,21 +336,21 @@ func patchItemRecursively(f *framework.Framework, driverNamespace *v1.Namespace,
PatchName(f, &item.Name) PatchName(f, &item.Name)
for i := range item.Subjects { for i := range item.Subjects {
if err := patchItemRecursively(f, driverNamespace, &item.Subjects[i]); err != nil { if err := patchItemRecursively(f, driverNamespace, &item.Subjects[i]); err != nil {
return errors.Wrapf(err, "%T", f) return fmt.Errorf("%T: %w", f, err)
} }
} }
if err := patchItemRecursively(f, driverNamespace, &item.RoleRef); err != nil { if err := patchItemRecursively(f, driverNamespace, &item.RoleRef); err != nil {
return errors.Wrapf(err, "%T", f) return fmt.Errorf("%T: %w", f, err)
} }
case *rbacv1.RoleBinding: case *rbacv1.RoleBinding:
PatchNamespace(f, driverNamespace, &item.Namespace) PatchNamespace(f, driverNamespace, &item.Namespace)
for i := range item.Subjects { for i := range item.Subjects {
if err := patchItemRecursively(f, driverNamespace, &item.Subjects[i]); err != nil { if err := patchItemRecursively(f, driverNamespace, &item.Subjects[i]); err != nil {
return errors.Wrapf(err, "%T", f) return fmt.Errorf("%T: %w", f, err)
} }
} }
if err := patchItemRecursively(f, driverNamespace, &item.RoleRef); err != nil { if err := patchItemRecursively(f, driverNamespace, &item.RoleRef); err != nil {
return errors.Wrapf(err, "%T", f) return fmt.Errorf("%T: %w", f, err)
} }
case *v1.Service: case *v1.Service:
PatchNamespace(f, driverNamespace, &item.ObjectMeta.Namespace) PatchNamespace(f, driverNamespace, &item.ObjectMeta.Namespace)
@ -372,7 +371,7 @@ func patchItemRecursively(f *framework.Framework, driverNamespace *v1.Namespace,
return err return err
} }
default: default:
return errors.Errorf("missing support for patching item of type %T", item) return fmt.Errorf("missing support for patching item of type %T", item)
} }
return nil return nil
} }
@ -395,7 +394,7 @@ func (*serviceAccountFactory) Create(f *framework.Framework, ns *v1.Namespace, i
} }
client := f.ClientSet.CoreV1().ServiceAccounts(ns.Name) client := f.ClientSet.CoreV1().ServiceAccounts(ns.Name)
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create ServiceAccount") return nil, fmt.Errorf("create ServiceAccount: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -417,7 +416,7 @@ func (*clusterRoleFactory) Create(f *framework.Framework, ns *v1.Namespace, i in
framework.Logf("Define cluster role %v", item.GetName()) framework.Logf("Define cluster role %v", item.GetName())
client := f.ClientSet.RbacV1().ClusterRoles() client := f.ClientSet.RbacV1().ClusterRoles()
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create ClusterRole") return nil, fmt.Errorf("create ClusterRole: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -438,7 +437,7 @@ func (*clusterRoleBindingFactory) Create(f *framework.Framework, ns *v1.Namespac
client := f.ClientSet.RbacV1().ClusterRoleBindings() client := f.ClientSet.RbacV1().ClusterRoleBindings()
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create ClusterRoleBinding") return nil, fmt.Errorf("create ClusterRoleBinding: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -459,7 +458,7 @@ func (*roleFactory) Create(f *framework.Framework, ns *v1.Namespace, i interface
client := f.ClientSet.RbacV1().Roles(ns.Name) client := f.ClientSet.RbacV1().Roles(ns.Name)
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create Role") return nil, fmt.Errorf("create Role: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -480,7 +479,7 @@ func (*roleBindingFactory) Create(f *framework.Framework, ns *v1.Namespace, i in
client := f.ClientSet.RbacV1().RoleBindings(ns.Name) client := f.ClientSet.RbacV1().RoleBindings(ns.Name)
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create RoleBinding") return nil, fmt.Errorf("create RoleBinding: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -501,7 +500,7 @@ func (*serviceFactory) Create(f *framework.Framework, ns *v1.Namespace, i interf
client := f.ClientSet.CoreV1().Services(ns.Name) client := f.ClientSet.CoreV1().Services(ns.Name)
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create Service") return nil, fmt.Errorf("create Service: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -522,7 +521,7 @@ func (*statefulSetFactory) Create(f *framework.Framework, ns *v1.Namespace, i in
client := f.ClientSet.AppsV1().StatefulSets(ns.Name) client := f.ClientSet.AppsV1().StatefulSets(ns.Name)
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create StatefulSet") return nil, fmt.Errorf("create StatefulSet: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -543,7 +542,7 @@ func (*daemonSetFactory) Create(f *framework.Framework, ns *v1.Namespace, i inte
client := f.ClientSet.AppsV1().DaemonSets(ns.Name) client := f.ClientSet.AppsV1().DaemonSets(ns.Name)
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create DaemonSet") return nil, fmt.Errorf("create DaemonSet: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -564,7 +563,7 @@ func (*storageClassFactory) Create(f *framework.Framework, ns *v1.Namespace, i i
client := f.ClientSet.StorageV1().StorageClasses() client := f.ClientSet.StorageV1().StorageClasses()
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create StorageClass") return nil, fmt.Errorf("create StorageClass: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -585,7 +584,7 @@ func (*csiDriverFactory) Create(f *framework.Framework, ns *v1.Namespace, i inte
client := f.ClientSet.StorageV1().CSIDrivers() client := f.ClientSet.StorageV1().CSIDrivers()
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create CSIDriver") return nil, fmt.Errorf("create CSIDriver: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})
@ -606,7 +605,7 @@ func (*secretFactory) Create(f *framework.Framework, ns *v1.Namespace, i interfa
client := f.ClientSet.CoreV1().Secrets(ns.Name) client := f.ClientSet.CoreV1().Secrets(ns.Name)
if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil { if _, err := client.Create(context.TODO(), item, metav1.CreateOptions{}); err != nil {
return nil, errors.Wrap(err, "create Secret") return nil, fmt.Errorf("create Secret: %w", err)
} }
return func() error { return func() error {
return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{}) return client.Delete(context.TODO(), item.GetName(), metav1.DeleteOptions{})