cleanup: use wrapped static errors instead of dynamic

In Go 1.13, the fmt.Errorf function supports a new %w verb.
When this verb is present, the error returned by fmt.Errorf
will have an Unwrap method returning the argument of %w,
which must be an error. In all other ways, %w is identical to %v.

Updates: #1227

Signed-off-by: Yug <yuggupta27@gmail.com>
This commit is contained in:
Yug 2020-07-13 09:26:51 +05:30 committed by mergify[bot]
parent 2bfe7670d2
commit 628ae9e982
7 changed files with 24 additions and 24 deletions

View File

@ -25,7 +25,7 @@ func expandPVCSize(c kubernetes.Interface, pvc *v1.PersistentVolumeClaim, size s
updatedPVC, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Get(context.TODO(), pvcName, metav1.GetOptions{}) updatedPVC, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Get(context.TODO(), pvcName, metav1.GetOptions{})
if err != nil { if err != nil {
return fmt.Errorf("error fetching pvc %q with %v", pvcName, err) return fmt.Errorf("error fetching pvc %q with %w", pvcName, err)
} }
timeout := time.Duration(t) * time.Minute timeout := time.Duration(t) * time.Minute

View File

@ -114,14 +114,14 @@ func validateRBDStaticPV(f *framework.Framework, appPath string, isBlock bool) e
_, err := c.CoreV1().PersistentVolumes().Create(context.TODO(), pv, metav1.CreateOptions{}) _, err := c.CoreV1().PersistentVolumes().Create(context.TODO(), pv, metav1.CreateOptions{})
if err != nil { if err != nil {
return fmt.Errorf("PV Create API error: %v", err) return fmt.Errorf("PV Create API error: %w", err)
} }
pvc := getStaticPVC(pvcName, pvName, size, namespace, sc, isBlock) pvc := getStaticPVC(pvcName, pvName, size, namespace, sc, isBlock)
_, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Create(context.TODO(), pvc, metav1.CreateOptions{}) _, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Create(context.TODO(), pvc, metav1.CreateOptions{})
if err != nil { if err != nil {
return fmt.Errorf("PVC Create API error: %v", err) return fmt.Errorf("PVC Create API error: %w", err)
} }
// bind pvc to app // bind pvc to app
app, err := loadApp(appPath) app, err := loadApp(appPath)
@ -224,7 +224,7 @@ func validateCephFsStaticPV(f *framework.Framework, appPath, scPath string) erro
secret.Namespace = cephCSINamespace secret.Namespace = cephCSINamespace
_, err := c.CoreV1().Secrets(cephCSINamespace).Create(context.TODO(), &secret, metav1.CreateOptions{}) _, err := c.CoreV1().Secrets(cephCSINamespace).Create(context.TODO(), &secret, metav1.CreateOptions{})
if err != nil { if err != nil {
return fmt.Errorf("failed to create secret, error %v", err) return fmt.Errorf("failed to create secret, error %w", err)
} }
opt["clusterID"] = fsID opt["clusterID"] = fsID
@ -234,30 +234,30 @@ func validateCephFsStaticPV(f *framework.Framework, appPath, scPath string) erro
pv := getStaticPV(pvName, pvName, "4Gi", secretName, cephCSINamespace, sc, "cephfs.csi.ceph.com", false, opt) pv := getStaticPV(pvName, pvName, "4Gi", secretName, cephCSINamespace, sc, "cephfs.csi.ceph.com", false, opt)
_, err = c.CoreV1().PersistentVolumes().Create(context.TODO(), pv, metav1.CreateOptions{}) _, err = c.CoreV1().PersistentVolumes().Create(context.TODO(), pv, metav1.CreateOptions{})
if err != nil { if err != nil {
return fmt.Errorf("failed to create PV, error %v", err) return fmt.Errorf("failed to create PV, error %w", err)
} }
pvc := getStaticPVC(pvcName, pvName, size, namespace, sc, false) pvc := getStaticPVC(pvcName, pvName, size, namespace, sc, false)
_, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Create(context.TODO(), pvc, metav1.CreateOptions{}) _, err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Create(context.TODO(), pvc, metav1.CreateOptions{})
if err != nil { if err != nil {
return fmt.Errorf("failed to create PVC, error %v", err) return fmt.Errorf("failed to create PVC, error %w", err)
} }
// bind pvc to app // bind pvc to app
app, err := loadApp(appPath) app, err := loadApp(appPath)
if err != nil { if err != nil {
return fmt.Errorf("failed to load app, error %v", err) return fmt.Errorf("failed to load app, error %w", err)
} }
app.Namespace = namespace app.Namespace = namespace
app.Spec.Volumes[0].PersistentVolumeClaim.ClaimName = pvcName app.Spec.Volumes[0].PersistentVolumeClaim.ClaimName = pvcName
err = createApp(f.ClientSet, app, deployTimeout) err = createApp(f.ClientSet, app, deployTimeout)
if err != nil { if err != nil {
return fmt.Errorf("failed to create pod, error %v", err) return fmt.Errorf("failed to create pod, error %w", err)
} }
err = deletePod(app.Name, namespace, f.ClientSet, deployTimeout) err = deletePod(app.Name, namespace, f.ClientSet, deployTimeout)
if err != nil { if err != nil {
return fmt.Errorf("failed to delete pod, error %v", err) return fmt.Errorf("failed to delete pod, error %w", err)
} }
err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Delete(context.TODO(), pvc.Name, metav1.DeleteOptions{}) err = c.CoreV1().PersistentVolumeClaims(pvc.Namespace).Delete(context.TODO(), pvc.Name, metav1.DeleteOptions{})

View File

@ -183,7 +183,7 @@ func waitForDeploymentComplete(name, ns string, c kubernetes.Interface, t int) e
err = fmt.Errorf("%s", reason) err = fmt.Errorf("%s", reason)
} }
if err != nil { if err != nil {
return fmt.Errorf("error waiting for deployment %q status to match expectation: %v", name, err) return fmt.Errorf("error waiting for deployment %q status to match expectation: %w", name, err)
} }
return nil return nil
} }
@ -531,7 +531,7 @@ func deletePVCAndValidatePV(c kubernetes.Interface, pvc *v1.PersistentVolumeClai
err = c.CoreV1().PersistentVolumeClaims(nameSpace).Delete(context.TODO(), name, metav1.DeleteOptions{}) err = c.CoreV1().PersistentVolumeClaims(nameSpace).Delete(context.TODO(), name, metav1.DeleteOptions{})
if err != nil { if err != nil {
return fmt.Errorf("delete of PVC %v failed: %v", name, err) return fmt.Errorf("delete of PVC %v failed: %w", name, err)
} }
start := time.Now() start := time.Now()
return wait.PollImmediate(poll, timeout, func() (bool, error) { return wait.PollImmediate(poll, timeout, func() (bool, error) {
@ -542,7 +542,7 @@ func deletePVCAndValidatePV(c kubernetes.Interface, pvc *v1.PersistentVolumeClai
return false, nil return false, nil
} }
if !apierrs.IsNotFound(err) { if !apierrs.IsNotFound(err) {
return false, fmt.Errorf("get on deleted PVC %v failed with error other than \"not found\": %v", name, err) return false, fmt.Errorf("get on deleted PVC %v failed with error other than \"not found\": %w", name, err)
} }
// Examine the pv.ClaimRef and UID. Expect nil values. // Examine the pv.ClaimRef and UID. Expect nil values.
@ -552,7 +552,7 @@ func deletePVCAndValidatePV(c kubernetes.Interface, pvc *v1.PersistentVolumeClai
} }
if !apierrs.IsNotFound(err) { if !apierrs.IsNotFound(err) {
return false, fmt.Errorf("delete PV %v failed with error other than \"not found\": %v", pv.Name, err) return false, fmt.Errorf("delete PV %v failed with error other than \"not found\": %w", pv.Name, err)
} }
return true, nil return true, nil

View File

@ -53,14 +53,14 @@ func getCredentialsForVolume(volOptions *volumeOptions, req *csi.NodeStageVolume
cr, err = util.NewAdminCredentials(secrets) cr, err = util.NewAdminCredentials(secrets)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to get admin credentials from node stage secrets: %v", err) return nil, fmt.Errorf("failed to get admin credentials from node stage secrets: %w", err)
} }
} else { } else {
// The volume is pre-made, credentials are in node stage secrets // The volume is pre-made, credentials are in node stage secrets
cr, err = util.NewUserCredentials(req.GetSecrets()) cr, err = util.NewUserCredentials(req.GetSecrets())
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to get user credentials from node stage secrets: %v", err) return nil, fmt.Errorf("failed to get user credentials from node stage secrets: %w", err)
} }
} }

View File

@ -47,10 +47,10 @@ func execCommand(ctx context.Context, program string, args ...string) (stdout, s
if err := cmd.Run(); err != nil { if err := cmd.Run(); err != nil {
if cmd.Process == nil { if cmd.Process == nil {
return nil, nil, fmt.Errorf("cannot get process pid while running %s %v: %v: %s", return nil, nil, fmt.Errorf("cannot get process pid while running %s %v: %w: %s",
program, sanitizedArgs, err, stderrBuf.Bytes()) program, sanitizedArgs, err, stderrBuf.Bytes())
} }
return nil, nil, fmt.Errorf("an error occurred while running (%d) %s %v: %v: %s", return nil, nil, fmt.Errorf("an error occurred while running (%d) %s %v: %w: %s",
cmd.Process.Pid, program, sanitizedArgs, err, stderrBuf.Bytes()) cmd.Process.Pid, program, sanitizedArgs, err, stderrBuf.Bytes())
} }
@ -70,7 +70,7 @@ func execCommandJSON(ctx context.Context, v interface{}, program string, args ..
} }
if err = json.Unmarshal(stdout, v); err != nil { if err = json.Unmarshal(stdout, v); err != nil {
return fmt.Errorf("failed to unmarshal JSON for %s %v: %s: %v", program, util.StripSecretInArgs(args), stdout, err) return fmt.Errorf("failed to unmarshal JSON for %s %v: %s: %w", program, util.StripSecretInArgs(args), stdout, err)
} }
return nil return nil
@ -79,7 +79,7 @@ func execCommandJSON(ctx context.Context, v interface{}, program string, args ..
// Controller service request validation. // Controller service request validation.
func (cs *ControllerServer) validateCreateVolumeRequest(req *csi.CreateVolumeRequest) error { func (cs *ControllerServer) validateCreateVolumeRequest(req *csi.CreateVolumeRequest) error {
if err := cs.Driver.ValidateControllerServiceRequest(csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME); err != nil { if err := cs.Driver.ValidateControllerServiceRequest(csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME); err != nil {
return fmt.Errorf("invalid CreateVolumeRequest: %v", err) return fmt.Errorf("invalid CreateVolumeRequest: %w", err)
} }
if req.GetName() == "" { if req.GetName() == "" {
@ -102,7 +102,7 @@ func (cs *ControllerServer) validateCreateVolumeRequest(req *csi.CreateVolumeReq
func (cs *ControllerServer) validateDeleteVolumeRequest() error { func (cs *ControllerServer) validateDeleteVolumeRequest() error {
if err := cs.Driver.ValidateControllerServiceRequest(csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME); err != nil { if err := cs.Driver.ValidateControllerServiceRequest(csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME); err != nil {
return fmt.Errorf("invalid DeleteVolumeRequest: %v", err) return fmt.Errorf("invalid DeleteVolumeRequest: %w", err)
} }
return nil return nil
@ -111,7 +111,7 @@ func (cs *ControllerServer) validateDeleteVolumeRequest() error {
// Controller expand volume request validation. // Controller expand volume request validation.
func (cs *ControllerServer) validateExpandVolumeRequest(req *csi.ControllerExpandVolumeRequest) error { func (cs *ControllerServer) validateExpandVolumeRequest(req *csi.ControllerExpandVolumeRequest) error {
if err := cs.Driver.ValidateControllerServiceRequest(csi.ControllerServiceCapability_RPC_EXPAND_VOLUME); err != nil { if err := cs.Driver.ValidateControllerServiceRequest(csi.ControllerServiceCapability_RPC_EXPAND_VOLUME); err != nil {
return fmt.Errorf("invalid ExpandVolumeRequest: %v", err) return fmt.Errorf("invalid ExpandVolumeRequest: %w", err)
} }
if req.GetVolumeId() == "" { if req.GetVolumeId() == "" {

View File

@ -182,7 +182,7 @@ func mountFuse(ctx context.Context, mountPoint string, cr *util.Credentials, vol
pid, err := strconv.Atoi(string(match[1])) pid, err := strconv.Atoi(string(match[1]))
if err != nil { if err != nil {
return fmt.Errorf("failed to parse FUSE daemon PID: %v", err) return fmt.Errorf("failed to parse FUSE daemon PID: %w", err)
} }
fusePidMapMtx.Lock() fusePidMapMtx.Lock()

View File

@ -334,7 +334,7 @@ func newVolumeOptionsFromMonitorList(volID string, options, secrets map[string]s
} }
if opts.ProvisionVolume, err = strconv.ParseBool(provisionVolumeBool); err != nil { if opts.ProvisionVolume, err = strconv.ParseBool(provisionVolumeBool); err != nil {
return nil, nil, fmt.Errorf("failed to parse provisionVolume: %v", err) return nil, nil, fmt.Errorf("failed to parse provisionVolume: %w", err)
} }
if opts.ProvisionVolume { if opts.ProvisionVolume {
@ -376,7 +376,7 @@ func newVolumeOptionsFromStaticVolume(volID string, options map[string]string) (
} }
if staticVol, err = strconv.ParseBool(val); err != nil { if staticVol, err = strconv.ParseBool(val); err != nil {
return nil, nil, fmt.Errorf("failed to parse preProvisionedVolume: %v", err) return nil, nil, fmt.Errorf("failed to parse preProvisionedVolume: %w", err)
} }
if !staticVol { if !staticVol {