@@ -489,6 +489,7 @@ func (a *Azure) GetAllSecrets(ctx context.Context, ref esv1beta1.ExternalSecretF
489489 checkName := ref .Name != nil && len (ref .Name .RegExp ) > 0
490490
491491 secretListIter , err := basicClient .GetSecretsComplete (context .Background (), * a .provider .VaultURL , nil )
492+ err = parseError (err )
492493 if err != nil {
493494 return nil , err
494495 }
@@ -502,6 +503,7 @@ func (a *Azure) GetAllSecrets(ctx context.Context, ref esv1beta1.ExternalSecretF
502503 }
503504
504505 secretResp , err := basicClient .GetSecret (context .Background (), * a .provider .VaultURL , secretName , "" )
506+ err = parseError (err )
505507 if err != nil {
506508 return nil , err
507509 }
@@ -568,6 +570,14 @@ func getProperty(secret, property, key string) ([]byte, error) {
568570 return []byte (res .String ()), nil
569571}
570572
573+ func parseError (err error ) error {
574+ aerr := autorest.DetailedError {}
575+ if errors .As (err , & aerr ) && aerr .StatusCode == 404 {
576+ return esv1beta1.NoSecretError {}
577+ }
578+ return err
579+ }
580+
571581// Implements store.Client.GetSecret Interface.
572582// Retrieves a secret/Key/Certificate/Tag with the secret name defined in ref.Name
573583// The Object Type is defined as a prefix in the ref.Name , if no prefix is defined , we assume a secret is required.
@@ -579,6 +589,7 @@ func (a *Azure) GetSecret(ctx context.Context, ref esv1beta1.ExternalSecretDataR
579589 // returns a SecretBundle with the secret value
580590 // https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault#SecretBundle
581591 secretResp , err := a .baseClient .GetSecret (context .Background (), * a .provider .VaultURL , secretName , ref .Version )
592+ err = parseError (err )
582593 if err != nil {
583594 return nil , err
584595 }
@@ -590,6 +601,7 @@ func (a *Azure) GetSecret(ctx context.Context, ref esv1beta1.ExternalSecretDataR
590601 // returns a CertBundle. We return CER contents of x509 certificate
591602 // see: https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault#CertificateBundle
592603 certResp , err := a .baseClient .GetCertificate (context .Background (), * a .provider .VaultURL , secretName , ref .Version )
604+ err = parseError (err )
593605 if err != nil {
594606 return nil , err
595607 }
@@ -602,6 +614,7 @@ func (a *Azure) GetSecret(ctx context.Context, ref esv1beta1.ExternalSecretDataR
602614 // azure kv returns only public keys
603615 // see: https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault#KeyBundle
604616 keyResp , err := a .baseClient .GetKey (context .Background (), * a .provider .VaultURL , secretName , ref .Version )
617+ err = parseError (err )
605618 if err != nil {
606619 return nil , err
607620 }
@@ -618,7 +631,7 @@ func (a *Azure) GetSecret(ctx context.Context, ref esv1beta1.ExternalSecretDataR
618631func (a * Azure ) getSecretTags (ref esv1beta1.ExternalSecretDataRemoteRef ) (map [string ]* string , error ) {
619632 _ , secretName := getObjType (ref )
620633 secretResp , err := a .baseClient .GetSecret (context .Background (), * a .provider .VaultURL , secretName , ref .Version )
621-
634+ err = parseError ( err )
622635 if err != nil {
623636 return nil , err
624637 }
0 commit comments