Skip to content

Commit

Permalink
service/secretsmanager: Refactor tagging logic to keyvaluetags package
Browse files Browse the repository at this point in the history
Reference: #10688

Output from acceptance testing:

```
--- PASS: TestAccDataSourceAwsSecretsManagerSecret_Basic (5.99s)
--- PASS: TestAccAwsSecretsManagerSecret_Basic (13.99s)
--- PASS: TestAccAwsSecretsManagerSecret_withNamePrefix (14.02s)
--- PASS: TestAccDataSourceAwsSecretsManagerSecret_ARN (15.28s)
--- PASS: TestAccDataSourceAwsSecretsManagerSecret_Policy (16.05s)
--- PASS: TestAccDataSourceAwsSecretsManagerSecret_Name (16.35s)
--- PASS: TestAccAwsSecretsManagerSecret_policy (17.75s)
--- PASS: TestAccAwsSecretsManagerSecret_Description (21.89s)
--- PASS: TestAccAwsSecretsManagerSecret_Tags (38.69s)
--- PASS: TestAccAwsSecretsManagerSecret_RecoveryWindowInDays_Recreate (39.41s)
--- PASS: TestAccAwsSecretsManagerSecret_RotationRules (50.42s)
--- PASS: TestAccAwsSecretsManagerSecret_RotationLambdaARN (50.55s)
--- PASS: TestAccAwsSecretsManagerSecret_KmsKeyID (53.23s)
```
  • Loading branch information
bflad committed Nov 4, 2019
1 parent e97a937 commit f42bdee
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 187 deletions.
3 changes: 2 additions & 1 deletion aws/data_source_aws_secretsmanager_secret.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/aws/aws-sdk-go/service/secretsmanager"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/structure"
"github.com/terraform-providers/terraform-provider-aws/aws/internal/keyvaluetags"
)

func dataSourceAwsSecretsManagerSecret() *schema.Resource {
Expand Down Expand Up @@ -131,7 +132,7 @@ func dataSourceAwsSecretsManagerSecretRead(d *schema.ResourceData, meta interfac
return fmt.Errorf("error setting rotation_rules: %s", err)
}

if err := d.Set("tags", tagsToMapSecretsManager(output.Tags)); err != nil {
if err := d.Set("tags", keyvaluetags.SecretsmanagerKeyValueTags(output.Tags).IgnoreAws().Map()); err != nil {
return fmt.Errorf("error setting tags: %s", err)
}

Expand Down
38 changes: 6 additions & 32 deletions aws/resource_aws_secretsmanager_secret.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/structure"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
"github.com/terraform-providers/terraform-provider-aws/aws/internal/keyvaluetags"
)

func resourceAwsSecretsManagerSecret() *schema.Resource {
Expand Down Expand Up @@ -118,8 +119,7 @@ func resourceAwsSecretsManagerSecretCreate(d *schema.ResourceData, meta interfac
}

if v, ok := d.GetOk("tags"); ok {
input.Tags = tagsFromMapSecretsManager(v.(map[string]interface{}))
log.Printf("[DEBUG] Tagging Secrets Manager Secret: %s", input.Tags)
input.Tags = keyvaluetags.New(v.(map[string]interface{})).IgnoreAws().SecretsmanagerTags()
}

if v, ok := d.GetOk("kms_key_id"); ok && v.(string) != "" {
Expand Down Expand Up @@ -248,7 +248,7 @@ func resourceAwsSecretsManagerSecretRead(d *schema.ResourceData, meta interface{
d.Set("rotation_rules", []interface{}{})
}

if err := d.Set("tags", tagsToMapSecretsManager(output.Tags)); err != nil {
if err := d.Set("tags", keyvaluetags.SecretsmanagerKeyValueTags(output.Tags).IgnoreAws().Map()); err != nil {
return fmt.Errorf("error setting tags: %s", err)
}

Expand Down Expand Up @@ -344,35 +344,9 @@ func resourceAwsSecretsManagerSecretUpdate(d *schema.ResourceData, meta interfac
}

if d.HasChange("tags") {
oraw, nraw := d.GetChange("tags")
o := oraw.(map[string]interface{})
n := nraw.(map[string]interface{})
create, remove := diffTagsSecretsManager(tagsFromMapSecretsManager(o), tagsFromMapSecretsManager(n))

if len(remove) > 0 {
log.Printf("[DEBUG] Removing Secrets Manager Secret %q tags: %#v", d.Id(), remove)
k := make([]*string, len(remove))
for i, t := range remove {
k[i] = t.Key
}

_, err := conn.UntagResource(&secretsmanager.UntagResourceInput{
SecretId: aws.String(d.Id()),
TagKeys: k,
})
if err != nil {
return fmt.Errorf("error updating Secrets Manager Secrets %q tags: %s", d.Id(), err)
}
}
if len(create) > 0 {
log.Printf("[DEBUG] Creating Secrets Manager Secret %q tags: %#v", d.Id(), create)
_, err := conn.TagResource(&secretsmanager.TagResourceInput{
SecretId: aws.String(d.Id()),
Tags: create,
})
if err != nil {
return fmt.Errorf("error updating Secrets Manager Secrets %q tags: %s", d.Id(), err)
}
o, n := d.GetChange("tags")
if err := keyvaluetags.SecretsmanagerUpdateTags(conn, d.Id(), o, n); err != nil {
return fmt.Errorf("error updating tags: %s", err)
}
}

Expand Down
75 changes: 0 additions & 75 deletions aws/tagsSecretsManager.go

This file was deleted.

79 changes: 0 additions & 79 deletions aws/tagsSecretsManager_test.go

This file was deleted.

0 comments on commit f42bdee

Please sign in to comment.