mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-26 08:10:20 +00:00
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:
parent
2bfe7670d2
commit
628ae9e982
@ -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
|
||||||
|
|
||||||
|
@ -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{})
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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() == "" {
|
||||||
|
@ -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()
|
||||||
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user