Skip to content

Commit

Permalink
Merge pull request #31340 from brittandeyoung/b-aws_ssm_activation_no…
Browse files Browse the repository at this point in the history
…nexistent_role

Bugfix:  `aws_ssm_activation` Fails on nonexistent role
  • Loading branch information
ewbankkit committed May 11, 2023
2 parents 85aab32 + 892239e commit 6d35dd5
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 13 deletions.
3 changes: 3 additions & 0 deletions .changelog/31340.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:bug
resource/aws_ssm_activation: Fix various `ValidationException` errors on resource Create
```
2 changes: 1 addition & 1 deletion internal/service/ssm/activation.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func resourceActivationCreate(ctx context.Context, d *schema.ResourceData, meta
name := d.Get("name").(string)
input := &ssm.CreateActivationInput{
DefaultInstanceName: aws.String(name),
IamRole: aws.String(d.Get("name").(string)),
IamRole: aws.String(d.Get("iam_role").(string)),
Tags: GetTagsIn(ctx),
}

Expand Down
28 changes: 16 additions & 12 deletions internal/service/ssm/activation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ func TestAccSSMActivation_basic(t *testing.T) {
ctx := acctest.Context(t)
var ssmActivation ssm.Activation
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
roleName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
resourceName := "aws_ssm_activation.test"

resource.ParallelTest(t, resource.TestCase{
Expand All @@ -29,7 +30,7 @@ func TestAccSSMActivation_basic(t *testing.T) {
CheckDestroy: testAccCheckActivationDestroy(ctx),
Steps: []resource.TestStep{
{
Config: testAccActivationConfig_basic(rName),
Config: testAccActivationConfig_basic(rName, roleName),
Check: resource.ComposeTestCheckFunc(
testAccCheckActivationExists(ctx, resourceName, &ssmActivation),
resource.TestCheckResourceAttrSet(resourceName, "activation_code"),
Expand All @@ -53,6 +54,7 @@ func TestAccSSMActivation_tags(t *testing.T) {
ctx := acctest.Context(t)
var ssmActivation ssm.Activation
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
roleName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
resourceName := "aws_ssm_activation.test"

resource.ParallelTest(t, resource.TestCase{
Expand All @@ -62,7 +64,7 @@ func TestAccSSMActivation_tags(t *testing.T) {
CheckDestroy: testAccCheckActivationDestroy(ctx),
Steps: []resource.TestStep{
{
Config: testAccActivationConfig_tags(rName),
Config: testAccActivationConfig_tags(rName, roleName),
Check: resource.ComposeTestCheckFunc(
testAccCheckActivationExists(ctx, resourceName, &ssmActivation),
resource.TestCheckResourceAttrSet(resourceName, "activation_code"),
Expand All @@ -87,6 +89,7 @@ func TestAccSSMActivation_expirationDate(t *testing.T) {
ctx := acctest.Context(t)
var ssmActivation ssm.Activation
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
roleName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
expirationDate := time.Now().Add(48 * time.Hour).UTC().Format(time.RFC3339)
resourceName := "aws_ssm_activation.test"

Expand All @@ -97,7 +100,7 @@ func TestAccSSMActivation_expirationDate(t *testing.T) {
CheckDestroy: testAccCheckActivationDestroy(ctx),
Steps: []resource.TestStep{
{
Config: testAccActivationConfig_expirationDate(rName, expirationDate),
Config: testAccActivationConfig_expirationDate(rName, expirationDate, roleName),
Check: resource.ComposeTestCheckFunc(
testAccCheckActivationExists(ctx, resourceName, &ssmActivation),
resource.TestCheckResourceAttr(resourceName, "expiration_date", expirationDate),
Expand All @@ -119,6 +122,7 @@ func TestAccSSMActivation_disappears(t *testing.T) {
ctx := acctest.Context(t)
var ssmActivation ssm.Activation
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
roleName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
resourceName := "aws_ssm_activation.test"

resource.ParallelTest(t, resource.TestCase{
Expand All @@ -128,7 +132,7 @@ func TestAccSSMActivation_disappears(t *testing.T) {
CheckDestroy: testAccCheckActivationDestroy(ctx),
Steps: []resource.TestStep{
{
Config: testAccActivationConfig_basic(rName),
Config: testAccActivationConfig_basic(rName, roleName),
Check: resource.ComposeTestCheckFunc(
testAccCheckActivationExists(ctx, resourceName, &ssmActivation),
acctest.CheckResourceDisappears(ctx, acctest.Provider, tfssm.ResourceActivation(), resourceName),
Expand Down Expand Up @@ -190,7 +194,7 @@ func testAccCheckActivationDestroy(ctx context.Context) resource.TestCheckFunc {
}
}

func testAccActivationConfig_base(rName string) string {
func testAccActivationConfig_base(roleName string) string {
return fmt.Sprintf(`
data "aws_partition" "current" {}
Expand Down Expand Up @@ -218,11 +222,11 @@ resource "aws_iam_role_policy_attachment" "test" {
role = aws_iam_role.test.name
policy_arn = "arn:${data.aws_partition.current.partition}:iam::aws:policy/AmazonSSMManagedInstanceCore"
}
`, rName)
`, roleName)
}

func testAccActivationConfig_basic(rName string) string {
return acctest.ConfigCompose(testAccActivationConfig_base(rName), fmt.Sprintf(`
func testAccActivationConfig_basic(rName string, roleName string) string {
return acctest.ConfigCompose(testAccActivationConfig_base(roleName), fmt.Sprintf(`
resource "aws_ssm_activation" "test" {
name = %[1]q
description = "Test"
Expand All @@ -234,8 +238,8 @@ resource "aws_ssm_activation" "test" {
`, rName))
}

func testAccActivationConfig_tags(rName string) string {
return acctest.ConfigCompose(testAccActivationConfig_base(rName), fmt.Sprintf(`
func testAccActivationConfig_tags(rName string, roleName string) string {
return acctest.ConfigCompose(testAccActivationConfig_base(roleName), fmt.Sprintf(`
resource "aws_ssm_activation" "test" {
name = %[1]q
description = "Test"
Expand All @@ -251,8 +255,8 @@ resource "aws_ssm_activation" "test" {
`, rName))
}

func testAccActivationConfig_expirationDate(rName, expirationDate string) string {
return acctest.ConfigCompose(testAccActivationConfig_base(rName), fmt.Sprintf(`
func testAccActivationConfig_expirationDate(rName string, expirationDate string, roleName string) string {
return acctest.ConfigCompose(testAccActivationConfig_base(roleName), fmt.Sprintf(`
resource "aws_ssm_activation" "test" {
name = %[1]q
description = "Test"
Expand Down

0 comments on commit 6d35dd5

Please sign in to comment.