From e53fbc3d59799e18c3e4cb974b2070b389616f9f Mon Sep 17 00:00:00 2001 From: Humble Chirammal Date: Thu, 10 Feb 2022 12:20:47 +0530 Subject: [PATCH] Handle error in a some conditions and also correct error message This commit also does: `Replace` string method changed to `ReplaceALL` Signed-off-by: Humble Chirammal --- .../provisioner.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cmd/nfs-subdir-external-provisioner/provisioner.go b/cmd/nfs-subdir-external-provisioner/provisioner.go index 2d357c11..1db6acab 100644 --- a/cmd/nfs-subdir-external-provisioner/provisioner.go +++ b/cmd/nfs-subdir-external-provisioner/provisioner.go @@ -62,13 +62,14 @@ func (meta *pvcMetadata) stringParser(str string) string { for _, r := range result { switch r[2] { case "labels": - str = strings.Replace(str, r[0], meta.labels[r[3]], -1) + str = strings.ReplaceAll(str, r[0], meta.labels[r[3]]) case "annotations": - str = strings.Replace(str, r[0], meta.annotations[r[3]], -1) + str = strings.ReplaceAll(str, r[0], meta.annotations[r[3]]) default: - str = strings.Replace(str, r[0], meta.data[r[1]], -1) + str = strings.ReplaceAll(str, r[0], meta.data[r[1]]) } } + return str } @@ -114,7 +115,10 @@ func (p *nfsProvisioner) Provision(ctx context.Context, options controller.Provi if err := os.MkdirAll(fullPath, 0777); err != nil { return nil, controller.ProvisioningFinished, errors.New("unable to create directory to provision new pv: " + err.Error()) } - os.Chmod(fullPath, 0777) + err := os.Chmod(fullPath, 0777) + if err != nil { + return nil, "", err + } pv := &v1.PersistentVolume{ ObjectMeta: metav1.ObjectMeta{ @@ -189,11 +193,11 @@ func (p *nfsProvisioner) Delete(ctx context.Context, volume *v1.PersistentVolume // getClassForVolume returns StorageClass func (p *nfsProvisioner) getClassForVolume(ctx context.Context, pv *v1.PersistentVolume) (*storage.StorageClass, error) { if p.client == nil { - return nil, fmt.Errorf("Cannot get kube client") + return nil, fmt.Errorf("cannot get kube client") } className := helper.GetPersistentVolumeClass(pv) if className == "" { - return nil, fmt.Errorf("Volume has no storage class") + return nil, fmt.Errorf("volume has no storage class") } class, err := p.client.StorageV1().StorageClasses().Get(ctx, className, metav1.GetOptions{}) if err != nil {