Skip to content

Commit 450c085

Browse files
committed
Refactor secret_version for idiomatic Go patterns
- Rename checkExists to findSecretVersionForExistence (more descriptive) - Use early return pattern in Read function to avoid deep nesting - Remove unnecessary nil check for versionEntry - Consolidate duplicate error handling - Set write-only attributes in single location
1 parent babb407 commit 450c085

File tree

1 file changed

+22
-30
lines changed

1 file changed

+22
-30
lines changed

internal/service/secretsmanager/secret_version.go

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ func resourceSecretVersionCreate(ctx context.Context, d *schema.ResourceData, me
151151
d.SetId(secretVersionCreateResourceID(secretID, versionID))
152152

153153
_, err = tfresource.RetryWhenNotFound(ctx, propagationTimeout, func(ctx context.Context) (any, error) {
154-
return checkExists(ctx, conn, secretID, versionID, secretStringWO != "")
154+
return findSecretVersionForExistence(ctx, conn, secretID, versionID, secretStringWO != "")
155155
})
156156

157157
if err != nil {
@@ -165,7 +165,7 @@ type secretVersionExistsOutput struct {
165165
VersionStages []string
166166
}
167167

168-
func checkExists(ctx context.Context, conn *secretsmanager.Client, secretID, versionID string, hasWriteOnly bool) (*secretVersionExistsOutput, error) {
168+
func findSecretVersionForExistence(ctx context.Context, conn *secretsmanager.Client, secretID, versionID string, hasWriteOnly bool) (*secretVersionExistsOutput, error) {
169169
if hasWriteOnly {
170170
_, output, err := findSecretVersionEntryByTwoPartKey(ctx, conn, secretID, versionID)
171171
if err != nil {
@@ -204,48 +204,40 @@ func resourceSecretVersionRead(ctx context.Context, d *schema.ResourceData, meta
204204

205205
if hasWriteOnly {
206206
arn, versionEntry, err := findSecretVersionEntryByTwoPartKey(ctx, conn, secretID, versionID)
207-
208207
if !d.IsNewResource() && tfresource.NotFound(err) {
209208
log.Printf("[WARN] Secrets Manager Secret Version (%s) not found, removing from state", d.Id())
210209
d.SetId("")
211210
return diags
212211
}
213-
214212
if err != nil {
215213
return sdkdiag.AppendErrorf(diags, "reading Secrets Manager Secret Version (%s): %s", d.Id(), err)
216214
}
217215

218216
d.Set(names.AttrARN, arn)
219217
d.Set("secret_binary", nil)
218+
d.Set("secret_string", nil)
219+
d.Set("version_id", versionEntry.VersionId)
220+
d.Set("version_stages", versionEntry.VersionStages)
221+
d.Set("has_secret_string_wo", true)
220222

221-
if versionEntry != nil {
222-
d.Set("version_id", versionEntry.VersionId)
223-
d.Set("version_stages", versionEntry.VersionStages)
224-
}
225-
} else {
226-
output, err := findSecretVersionByTwoPartKey(ctx, conn, secretID, versionID)
227-
228-
if !d.IsNewResource() && tfresource.NotFound(err) {
229-
log.Printf("[WARN] Secrets Manager Secret Version (%s) not found, removing from state", d.Id())
230-
d.SetId("")
231-
return diags
232-
}
233-
234-
if err != nil {
235-
return sdkdiag.AppendErrorf(diags, "reading Secrets Manager Secret Version (%s): %s", d.Id(), err)
236-
}
237-
238-
d.Set(names.AttrARN, output.ARN)
239-
d.Set("secret_binary", inttypes.Base64EncodeOnce(output.SecretBinary))
240-
d.Set("secret_string", output.SecretString)
241-
d.Set("version_id", output.VersionId)
242-
d.Set("version_stages", output.VersionStages)
223+
return diags
243224
}
244225

245-
if hasWriteOnly {
246-
d.Set("has_secret_string_wo", true)
247-
d.Set("secret_string", nil)
226+
output, err := findSecretVersionByTwoPartKey(ctx, conn, secretID, versionID)
227+
if !d.IsNewResource() && tfresource.NotFound(err) {
228+
log.Printf("[WARN] Secrets Manager Secret Version (%s) not found, removing from state", d.Id())
229+
d.SetId("")
230+
return diags
248231
}
232+
if err != nil {
233+
return sdkdiag.AppendErrorf(diags, "reading Secrets Manager Secret Version (%s): %s", d.Id(), err)
234+
}
235+
236+
d.Set(names.AttrARN, output.ARN)
237+
d.Set("secret_binary", inttypes.Base64EncodeOnce(output.SecretBinary))
238+
d.Set("secret_string", output.SecretString)
239+
d.Set("version_id", output.VersionId)
240+
d.Set("version_stages", output.VersionStages)
249241

250242
return diags
251243
}
@@ -377,7 +369,7 @@ func resourceSecretVersionDelete(ctx context.Context, d *schema.ResourceData, me
377369

378370
_, err = tfresource.RetryUntilNotFound(ctx, propagationTimeout, func(ctx context.Context) (any, error) {
379371
hasWriteOnly := flex.HasWriteOnlyValue(d, "secret_string_wo")
380-
output, err := checkExists(ctx, conn, secretID, versionID, hasWriteOnly)
372+
output, err := findSecretVersionForExistence(ctx, conn, secretID, versionID, hasWriteOnly)
381373

382374
if err != nil {
383375
return nil, err

0 commit comments

Comments
 (0)