@@ -249,7 +249,11 @@ func (p *csiProvisioner) Provision(options controller.VolumeOptions) (*v1.Persis
249249 }
250250 secret := v1.SecretReference {}
251251 if options .Parameters != nil {
252- req .ControllerCreateSecrets = getCredentialsFromParameters (p .client , options .Parameters )
252+ credentials , err := getCredentialsFromParameters (p .client , options .Parameters )
253+ if err != nil {
254+ return nil , err
255+ }
256+ req .ControllerCreateSecrets = credentials
253257 secret .Name , secret .Namespace , _ = getSecretAndNamespaceFromParameters (options .Parameters )
254258 }
255259 ctx , cancel := context .WithTimeout (context .Background (), p .timeout )
@@ -307,7 +311,11 @@ func (p *csiProvisioner) Delete(volume *v1.PersistentVolume) error {
307311 storageClassName := volume .Spec .StorageClassName
308312 if len (storageClassName ) != 0 {
309313 if storageClass , err := p .client .StorageV1 ().StorageClasses ().Get (storageClassName , metav1.GetOptions {}); err == nil {
310- req .ControllerDeleteSecrets = getCredentialsFromParameters (p .client , storageClass .Parameters )
314+ credentials , err := getCredentialsFromParameters (p .client , storageClass .Parameters )
315+ if err != nil {
316+ return err
317+ }
318+ req .ControllerDeleteSecrets = credentials
311319 }
312320
313321 }
@@ -330,11 +338,11 @@ func getSecretAndNamespaceFromParameters(parameters map[string]string) (string,
330338 return "" , "" , false
331339}
332340
333- func getCredentialsFromParameters (k8s kubernetes.Interface , parameters map [string ]string ) map [string ]string {
341+ func getCredentialsFromParameters (k8s kubernetes.Interface , parameters map [string ]string ) ( map [string ]string , error ) {
334342 if secretName , namespace , found := getSecretAndNamespaceFromParameters (parameters ); found {
335343 return getCredentialsFromSecret (k8s , secretName , namespace )
336344 }
337- return map [string ]string {}
345+ return map [string ]string {}, nil
338346}
339347
340348//TODO use a unique volume handle from and to Id
@@ -346,19 +354,18 @@ func (p *csiProvisioner) volumeHandleToId(handle string) string {
346354 return handle
347355}
348356
349- func getCredentialsFromSecret (k8s kubernetes.Interface , secretName , nameSpace string ) map [string ]string {
357+ func getCredentialsFromSecret (k8s kubernetes.Interface , secretName , nameSpace string ) ( map [string ]string , error ) {
350358 credentials := map [string ]string {}
351359 if len (secretName ) == 0 {
352- return credentials
360+ return credentials , nil
353361 }
354362 secret , err := k8s .CoreV1 ().Secrets (nameSpace ).Get (secretName , metav1.GetOptions {})
355363 if err != nil {
356- glog .Warningf ("failed to find the secret %s in the namespace %s with error: %v\n " , secretName , nameSpace , err )
357- return credentials
364+ return credentials , fmt .Errorf ("failed to find the secret %s in the namespace %s with error: %v\n " , secretName , nameSpace , err )
358365 }
359366 for key , value := range secret .Data {
360367 credentials [key ] = string (value )
361368 }
362369
363- return credentials
370+ return credentials , nil
364371}
0 commit comments