Skip to content

Commit

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

Output from acceptance testing:

```
--- PASS: TestAccAwsRamResourceShare_basic (14.82s)
--- PASS: TestAccDataSourceAwsRamResourceShare_Tags (15.10s)
--- PASS: TestAccDataSourceAwsRamResourceShare_Basic (16.75s)
--- PASS: TestAccAwsRamResourceShare_AllowExternalPrincipals (24.02s)
--- PASS: TestAccAwsRamResourceShare_Name (24.09s)
--- PASS: TestAccAwsRamResourceShare_Tags (32.51s)
```
  • Loading branch information
bflad committed Nov 4, 2019
1 parent e97a937 commit 26dcb4d
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 226 deletions.
3 changes: 2 additions & 1 deletion aws/data_source_aws_ram_resource_share.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"github.com/aws/aws-sdk-go/service/ram"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
"github.com/terraform-providers/terraform-provider-aws/aws/internal/keyvaluetags"
)

func dataSourceAwsRamResourceShare() *schema.Resource {
Expand Down Expand Up @@ -108,7 +109,7 @@ func dataSourceAwsRamResourceShareRead(d *schema.ResourceData, meta interface{})
d.Set("owning_account_id", aws.StringValue(r.OwningAccountId))
d.Set("status", aws.StringValue(r.Status))

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

Expand Down
36 changes: 7 additions & 29 deletions aws/resource_aws_ram_resource_share.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import (

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ram"

"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/terraform-providers/terraform-provider-aws/aws/internal/keyvaluetags"
)

func resourceAwsRamResourceShare() *schema.Resource {
Expand Down Expand Up @@ -59,8 +59,7 @@ func resourceAwsRamResourceShareCreate(d *schema.ResourceData, meta interface{})
}

if v, ok := d.GetOk("tags"); ok {
tags := tagsFromMapRAM(v.(map[string]interface{}))
request.Tags = tags
request.Tags = keyvaluetags.New(v.(map[string]interface{})).IgnoreAws().RamTags()
}

log.Println("[DEBUG] Create RAM resource share request:", request)
Expand Down Expand Up @@ -122,7 +121,7 @@ func resourceAwsRamResourceShareRead(d *schema.ResourceData, meta interface{}) e
d.Set("name", resourceShare.Name)
d.Set("allow_external_principals", resourceShare.AllowExternalPrincipals)

if err := d.Set("tags", tagsToMapRAM(resourceShare.Tags)); err != nil {
if err := d.Set("tags", keyvaluetags.RamKeyValueTags(resourceShare.Tags).IgnoreAws().Map()); err != nil {
return fmt.Errorf("Error setting tags: %s", err)
}

Expand Down Expand Up @@ -157,31 +156,10 @@ func resourceAwsRamResourceShareUpdate(d *schema.ResourceData, meta interface{})
}

if d.HasChange("tags") {
// Reset all tags to empty set
oraw, nraw := d.GetChange("tags")
o := oraw.(map[string]interface{})
n := nraw.(map[string]interface{})
c, r := diffTagsRAM(tagsFromMapRAM(o), tagsFromMapRAM(n))

if len(r) > 0 {
_, err := conn.UntagResource(&ram.UntagResourceInput{
ResourceShareArn: aws.String(d.Id()),
TagKeys: tagKeysRam(r),
})
if err != nil {
return fmt.Errorf("Error deleting RAM resource share tags: %s", err)
}
}

if len(c) > 0 {
input := &ram.TagResourceInput{
ResourceShareArn: aws.String(d.Id()),
Tags: c,
}
_, err := conn.TagResource(input)
if err != nil {
return fmt.Errorf("Error updating RAM resource share tags: %s", err)
}
o, n := d.GetChange("tags")

if err := keyvaluetags.RamUpdateTags(conn, d.Id(), o, n); err != nil {
return fmt.Errorf("error updating RAM Resource Share (%s) tags: %s", d.Id(), err)
}

d.SetPartial("tags")
Expand Down
85 changes: 0 additions & 85 deletions aws/tagsRAM.go

This file was deleted.

111 changes: 0 additions & 111 deletions aws/tagsRAM_test.go

This file was deleted.

0 comments on commit 26dcb4d

Please sign in to comment.