From 8260c3780266f7eb7926ffb7e20d65bd46fb7e9b Mon Sep 17 00:00:00 2001 From: Jules Casteran Date: Tue, 6 Aug 2024 14:29:05 +0200 Subject: [PATCH] fix(secret_version): return error when secret name is invalid --- internal/services/secret/version_data_source.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/internal/services/secret/version_data_source.go b/internal/services/secret/version_data_source.go index ff64c351b..327adeb18 100644 --- a/internal/services/secret/version_data_source.go +++ b/internal/services/secret/version_data_source.go @@ -73,19 +73,17 @@ func datasourceSchemaFromResourceVersionSchema(ctx context.Context, d *schema.Re return diag.FromErr(err) } - secretByName := (*secret.Secret)(nil) - for _, s := range secrets.Secrets { - if s.Name == secretName { - if secretByName != nil { - return diag.Errorf("found multiple secret with the same name (%s)", secretName) - } - secretByName = s - } + foundSecret, err := datasource.FindExact(secrets.Secrets, + func(s *secret.Secret) bool { return s.Name == secretName }, + secretName, + ) + if err != nil { + return diag.FromErr(err) } res, err := api.AccessSecretVersion(&secret.AccessSecretVersionRequest{ Region: region, - SecretID: secretByName.ID, + SecretID: foundSecret.ID, Revision: d.Get("revision").(string), }, scw.WithContext(ctx)) if err != nil {