From dbb2f69422bf1aac5bd27a83c8da9842525639b1 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 12 Jan 2023 15:11:45 -0500 Subject: [PATCH 1/2] transfer: Improve diffs for policies --- internal/service/transfer/access.go | 12 +++++------- internal/service/transfer/user.go | 12 +++++------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/internal/service/transfer/access.go b/internal/service/transfer/access.go index 383f542bbc99..00ae8142e313 100644 --- a/internal/service/transfer/access.go +++ b/internal/service/transfer/access.go @@ -67,10 +67,11 @@ func ResourceAccess() *schema.Resource { }, "policy": { - Type: schema.TypeString, - Optional: true, - ValidateFunc: verify.ValidIAMPolicyJSON, - DiffSuppressFunc: verify.SuppressEquivalentPolicyDiffs, + Type: schema.TypeString, + Optional: true, + ValidateFunc: verify.ValidIAMPolicyJSON, + DiffSuppressFunc: verify.SuppressEquivalentPolicyDiffs, + DiffSuppressOnRefresh: true, StateFunc: func(v interface{}) string { json, _ := structure.NormalizeJsonString(v) return json @@ -143,7 +144,6 @@ func resourceAccessCreate(d *schema.ResourceData, meta interface{}) error { if v, ok := d.GetOk("policy"); ok { policy, err := structure.NormalizeJsonString(v.(string)) - if err != nil { return fmt.Errorf("policy (%s) is invalid JSON: %w", v.(string), err) } @@ -206,7 +206,6 @@ func resourceAccessRead(d *schema.ResourceData, meta interface{}) error { // d.Set("role", access.Role) policyToSet, err := verify.PolicyToSet(d.Get("policy").(string), aws.StringValue(access.Policy)) - if err != nil { return err } @@ -246,7 +245,6 @@ func resourceAccessUpdate(d *schema.ResourceData, meta interface{}) error { if d.HasChange("policy") { policy, err := structure.NormalizeJsonString(d.Get("policy").(string)) - if err != nil { return fmt.Errorf("policy (%s) is invalid JSON: %w", d.Get("policy").(string), err) } diff --git a/internal/service/transfer/user.go b/internal/service/transfer/user.go index 5368eb07cf47..62f466b0b187 100644 --- a/internal/service/transfer/user.go +++ b/internal/service/transfer/user.go @@ -67,10 +67,11 @@ func ResourceUser() *schema.Resource { }, "policy": { - Type: schema.TypeString, - Optional: true, - ValidateFunc: verify.ValidIAMPolicyJSON, - DiffSuppressFunc: verify.SuppressEquivalentPolicyDiffs, + Type: schema.TypeString, + Optional: true, + ValidateFunc: verify.ValidIAMPolicyJSON, + DiffSuppressFunc: verify.SuppressEquivalentPolicyDiffs, + DiffSuppressOnRefresh: true, StateFunc: func(v interface{}) string { json, _ := structure.NormalizeJsonString(v) return json @@ -156,7 +157,6 @@ func resourceUserCreate(d *schema.ResourceData, meta interface{}) error { if v, ok := d.GetOk("policy"); ok { policy, err := structure.NormalizeJsonString(v.(string)) - if err != nil { return fmt.Errorf("policy (%s) is invalid JSON: %w", v.(string), err) } @@ -215,7 +215,6 @@ func resourceUserRead(d *schema.ResourceData, meta interface{}) error { d.Set("home_directory_type", user.HomeDirectoryType) policyToSet, err := verify.PolicyToSet(d.Get("policy").(string), aws.StringValue(user.Policy)) - if err != nil { return err } @@ -271,7 +270,6 @@ func resourceUserUpdate(d *schema.ResourceData, meta interface{}) error { if d.HasChange("policy") { policy, err := structure.NormalizeJsonString(d.Get("policy").(string)) - if err != nil { return fmt.Errorf("policy (%s) is invalid JSON: %w", d.Get("policy").(string), err) } From e3958dd2b4c709c59d998c0f7b405944c7848a84 Mon Sep 17 00:00:00 2001 From: Dirk Avery Date: Thu, 12 Jan 2023 15:13:08 -0500 Subject: [PATCH 2/2] transfer: Improve diffs for policies --- .changelog/28859.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changelog/28859.txt diff --git a/.changelog/28859.txt b/.changelog/28859.txt new file mode 100644 index 000000000000..2c12bb8a5eb3 --- /dev/null +++ b/.changelog/28859.txt @@ -0,0 +1,7 @@ +```release-note:bug +resource/aws_transfer_access: Improve refresh to avoid unnecessary diffs in `policy` +``` + +```release-note:bug +resource/aws_transfer_user: Improve refresh to avoid unnecessary diffs in `policy` +```