Skip to content

Commit 0e6ca06

Browse files
authored
Merge pull request #28863 from hashicorp/b-secretsmanager-policy-diffs
secretsmanager: Improve diffs with policies
2 parents f68b145 + 3681968 commit 0e6ca06

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

.changelog/28863.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:bug
2+
resource/aws_secretsmanager_secret: Improve refresh to avoid unnecessary diffs in `policy`
3+
```
4+
5+
```release-note:bug
6+
resource/aws_secretsmanager_secret_policy: Improve refresh to avoid unnecessary diffs in `policy`
7+
```

internal/service/secretsmanager/secret.go

+6-8
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,12 @@ func ResourceSecret() *schema.Resource {
6666
ValidateFunc: validSecretNamePrefix,
6767
},
6868
"policy": {
69-
Type: schema.TypeString,
70-
Optional: true,
71-
Computed: true,
72-
ValidateFunc: validation.StringIsJSON,
73-
DiffSuppressFunc: verify.SuppressEquivalentPolicyDiffs,
69+
Type: schema.TypeString,
70+
Optional: true,
71+
Computed: true,
72+
ValidateFunc: validation.StringIsJSON,
73+
DiffSuppressFunc: verify.SuppressEquivalentPolicyDiffs,
74+
DiffSuppressOnRefresh: true,
7475
StateFunc: func(v interface{}) string {
7576
json, _ := structure.NormalizeJsonString(v)
7677
return json
@@ -203,7 +204,6 @@ func resourceSecretCreate(d *schema.ResourceData, meta interface{}) error {
203204

204205
if v, ok := d.GetOk("policy"); ok && v.(string) != "" && v.(string) != "{}" {
205206
policy, err := structure.NormalizeJsonString(v.(string))
206-
207207
if err != nil {
208208
return fmt.Errorf("policy (%s) is invalid JSON: %w", v.(string), err)
209209
}
@@ -299,7 +299,6 @@ func resourceSecretRead(d *schema.ResourceData, meta interface{}) error {
299299
return fmt.Errorf("reading Secrets Manager Secret (%s) policy: %w", d.Id(), err)
300300
} else if v := output.ResourcePolicy; v != nil {
301301
policyToSet, err := verify.PolicyToSet(d.Get("policy").(string), aws.StringValue(v))
302-
303302
if err != nil {
304303
return err
305304
}
@@ -378,7 +377,6 @@ func resourceSecretUpdate(d *schema.ResourceData, meta interface{}) error {
378377
if d.HasChange("policy") {
379378
if v, ok := d.GetOk("policy"); ok && v.(string) != "" && v.(string) != "{}" {
380379
policy, err := structure.NormalizeJsonString(v.(string))
381-
382380
if err != nil {
383381
return fmt.Errorf("policy contains an invalid JSON: %w", err)
384382
}

internal/service/secretsmanager/secret_policy.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,11 @@ func ResourceSecretPolicy() *schema.Resource {
3434
ValidateFunc: verify.ValidARN,
3535
},
3636
"policy": {
37-
Type: schema.TypeString,
38-
Required: true,
39-
ValidateFunc: validation.StringIsJSON,
40-
DiffSuppressFunc: verify.SuppressEquivalentPolicyDiffs,
37+
Type: schema.TypeString,
38+
Required: true,
39+
ValidateFunc: validation.StringIsJSON,
40+
DiffSuppressFunc: verify.SuppressEquivalentPolicyDiffs,
41+
DiffSuppressOnRefresh: true,
4142
StateFunc: func(v interface{}) string {
4243
json, _ := structure.NormalizeJsonString(v)
4344
return json
@@ -55,7 +56,6 @@ func resourceSecretPolicyCreate(d *schema.ResourceData, meta interface{}) error
5556
conn := meta.(*conns.AWSClient).SecretsManagerConn()
5657

5758
policy, err := structure.NormalizeJsonString(d.Get("policy").(string))
58-
5959
if err != nil {
6060
return fmt.Errorf("policy (%s) is invalid JSON: %w", d.Get("policy").(string), err)
6161
}
@@ -125,7 +125,6 @@ func resourceSecretPolicyRead(d *schema.ResourceData, meta interface{}) error {
125125

126126
if output.ResourcePolicy != nil {
127127
policyToSet, err := verify.PolicyToSet(d.Get("policy").(string), aws.StringValue(output.ResourcePolicy))
128-
129128
if err != nil {
130129
return err
131130
}

0 commit comments

Comments
 (0)