Skip to content

Commit

Permalink
resource/aws_placement_group: Support tag-on-create (#12963)
Browse files Browse the repository at this point in the history
Output from acceptance testing in AWS Commercial:

```
--- PASS: TestAccAWSPlacementGroup_disappears (6.54s)
--- PASS: TestAccAWSPlacementGroup_basic (8.61s)
--- PASS: TestAccAWSPlacementGroup_tags (18.91s)
```

Output from acceptance testing in AWS GovCloud (US):

```
--- PASS: TestAccAWSPlacementGroup_disappears (2.83s)
--- PASS: TestAccAWSPlacementGroup_basic (3.44s)
--- PASS: TestAccAWSPlacementGroup_tags (7.03s)
```
  • Loading branch information
DrFaust92 committed Apr 24, 2020
1 parent f444cc4 commit bca603a
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 25 deletions.
29 changes: 7 additions & 22 deletions aws/resource_aws_placement_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"time"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
Expand Down Expand Up @@ -54,8 +53,9 @@ func resourceAwsPlacementGroupCreate(d *schema.ResourceData, meta interface{}) e

name := d.Get("name").(string)
input := ec2.CreatePlacementGroupInput{
GroupName: aws.String(name),
Strategy: aws.String(d.Get("strategy").(string)),
GroupName: aws.String(name),
Strategy: aws.String(d.Get("strategy").(string)),
TagSpecifications: ec2TagSpecificationsFromMap(d.Get("tags").(map[string]interface{}), ec2.ResourceTypePlacementGroup),
}
log.Printf("[DEBUG] Creating EC2 Placement group: %s", input)
_, err := conn.CreatePlacementGroup(&input)
Expand Down Expand Up @@ -100,20 +100,6 @@ func resourceAwsPlacementGroupCreate(d *schema.ResourceData, meta interface{}) e

d.SetId(name)

if v := d.Get("tags").(map[string]interface{}); len(v) > 0 {
input := ec2.DescribePlacementGroupsInput{
GroupNames: []*string{aws.String(d.Id())},
}
out, err := conn.DescribePlacementGroups(&input)
if err != nil {
return err
}
pg := out.PlacementGroups[0]
if err := keyvaluetags.Ec2CreateTags(conn, aws.StringValue(pg.GroupId), v); err != nil {
return fmt.Errorf("error adding tags: %s", err)
}
}

return resourceAwsPlacementGroupRead(d, meta)
}

Expand Down Expand Up @@ -183,19 +169,18 @@ func resourceAwsPlacementGroupDelete(d *schema.ResourceData, meta interface{}) e
})

if err != nil {
awsErr := err.(awserr.Error)
if awsErr.Code() == "InvalidPlacementGroup.Unknown" {
return out, "deleted", nil
if isAWSErr(err, "InvalidPlacementGroup.Unknown", "") {
return out, ec2.PlacementGroupStateDeleted, nil
}
return out, "", awsErr
return out, "", err
}

if len(out.PlacementGroups) == 0 {
return out, ec2.PlacementGroupStateDeleted, nil
}

pg := out.PlacementGroups[0]
if *pg.State == "available" {
if *pg.State == ec2.PlacementGroupStateAvailable {
log.Printf("[DEBUG] Accepted status when deleting EC2 Placement group: %q %v", d.Id(), *pg.State)
}

Expand Down
5 changes: 2 additions & 3 deletions aws/resource_aws_placement_group_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@ import (
"fmt"
"testing"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/hashicorp/terraform-plugin-sdk/helper/acctest"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/terraform"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
)

func TestAccAWSPlacementGroup_basic(t *testing.T) {
Expand Down

0 comments on commit bca603a

Please sign in to comment.