From e7fd1eb78a6a5f5aa2364bd86dbfb3c8917482c1 Mon Sep 17 00:00:00 2001 From: Jeremy Scott <js185692@ncr.com> Date: Thu, 16 Mar 2023 17:03:02 +0000 Subject: [PATCH] Return error if unknown volume type given --- provisioner.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/provisioner.go b/provisioner.go index 74c5c866..4c6cbc61 100644 --- a/provisioner.go +++ b/provisioner.go @@ -292,7 +292,10 @@ func (p *LocalPathProvisioner) Provision(ctx context.Context, opts pvController. } else { volumeType = defaultVolumeType } - pvs = createPersistentVolumeSource(volumeType, path) + pvs, err = createPersistentVolumeSource(volumeType, path) + if err != nil { + return nil, pvController.ProvisioningFinished, err + } var nodeAffinity *v1.VolumeNodeAffinity if sharedFS { @@ -652,8 +655,11 @@ func canonicalizeConfig(data *ConfigData) (cfg *Config, err error) { return cfg, nil } -func createPersistentVolumeSource(volumeType string, path string) v1.PersistentVolumeSource { - var pvs v1.PersistentVolumeSource +func createPersistentVolumeSource(volumeType string, path string) (pvs v1.PersistentVolumeSource, err error) { + defer func() { + err = errors.Wrapf(err, "failed to create persistent volume source") + }() + switch strings.ToLower(volumeType) { case "local": pvs = v1.PersistentVolumeSource{ @@ -670,13 +676,8 @@ func createPersistentVolumeSource(volumeType string, path string) v1.PersistentV }, } default: - hostPathType := v1.HostPathDirectoryOrCreate - pvs = v1.PersistentVolumeSource{ - HostPath: &v1.HostPathVolumeSource{ - Path: path, - Type: &hostPathType, - }, - } + return pvs, fmt.Errorf("\"%s\" is not a recognised volume type", volumeType) } - return pvs + + return pvs, nil } -- GitLab