From 85fdcd5160d6c7a35a57d401a599c63f59c6ccd1 Mon Sep 17 00:00:00 2001 From: Charlie Stocker Date: Thu, 27 Feb 2020 18:55:32 +0000 Subject: [PATCH 1/3] aws_ssm_maintenance_window_task: allow service_role_arn to be optional --- ...esource_aws_ssm_maintenance_window_task.go | 12 +- ...ce_aws_ssm_maintenance_window_task_test.go | 174 +++++++++--------- .../ssm_maintenance_window_task.html.markdown | 6 +- 3 files changed, 96 insertions(+), 96 deletions(-) diff --git a/aws/resource_aws_ssm_maintenance_window_task.go b/aws/resource_aws_ssm_maintenance_window_task.go index 72d7148027d..d814657c25e 100644 --- a/aws/resource_aws_ssm_maintenance_window_task.go +++ b/aws/resource_aws_ssm_maintenance_window_task.go @@ -54,7 +54,7 @@ func resourceAwsSsmMaintenanceWindowTask() *schema.Resource { "service_role_arn": { Type: schema.TypeString, - Required: true, + Optional: true, }, "targets": { @@ -680,11 +680,14 @@ func resourceAwsSsmMaintenanceWindowTaskCreate(d *schema.ResourceData, meta inte MaxConcurrency: aws.String(d.Get("max_concurrency").(string)), MaxErrors: aws.String(d.Get("max_errors").(string)), TaskType: aws.String(d.Get("task_type").(string)), - ServiceRoleArn: aws.String(d.Get("service_role_arn").(string)), TaskArn: aws.String(d.Get("task_arn").(string)), Targets: expandAwsSsmTargets(d.Get("targets").([]interface{})), } + if v, ok := d.GetOk("service_role_arn"); ok { + params.ServiceRoleArn = aws.String(v.(string)) + } + if v, ok := d.GetOk("name"); ok { params.Name = aws.String(v.(string)) } @@ -781,12 +784,15 @@ func resourceAwsSsmMaintenanceWindowTaskUpdate(d *schema.ResourceData, meta inte WindowTaskId: aws.String(d.Id()), MaxConcurrency: aws.String(d.Get("max_concurrency").(string)), MaxErrors: aws.String(d.Get("max_errors").(string)), - ServiceRoleArn: aws.String(d.Get("service_role_arn").(string)), TaskArn: aws.String(d.Get("task_arn").(string)), Targets: expandAwsSsmTargets(d.Get("targets").([]interface{})), Replace: aws.Bool(true), } + if v, ok := d.GetOk("service_role_arn"); ok { + params.ServiceRoleArn = aws.String(v.(string)) + } + if v, ok := d.GetOk("name"); ok { params.Name = aws.String(v.(string)) } diff --git a/aws/resource_aws_ssm_maintenance_window_task_test.go b/aws/resource_aws_ssm_maintenance_window_task_test.go index 73292c1a48f..c2d27648cf8 100644 --- a/aws/resource_aws_ssm_maintenance_window_task_test.go +++ b/aws/resource_aws_ssm_maintenance_window_task_test.go @@ -52,6 +52,27 @@ func TestAccAWSSSMMaintenanceWindowTask_basic(t *testing.T) { }) } +func TestAccAWSSSMMaintenanceWindowTask_noRole(t *testing.T) { + var task ssm.MaintenanceWindowTask + rName := acctest.RandomWithPrefix("tf-acc-test") + resourceName := "aws_ssm_maintenance_window_task.test" + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckAWSSSMMaintenanceWindowTaskDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAWSSSMMaintenanceWindowTaskNoRoleConfig(rName), + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSSSMMaintenanceWindowTaskExists(resourceName, &task), + ), + ExpectNonEmptyPlan: true, + }, + }, + }) +} + func TestAccAWSSSMMaintenanceWindowTask_updateForcesNewResource(t *testing.T) { var before, after ssm.MaintenanceWindowTask name := acctest.RandString(10) @@ -378,45 +399,49 @@ resource "aws_ssm_maintenance_window_target" "test" { values = ["tf-acc-test"] } } +`, rName) +} +func testAccAWSSSMMaintenanceWindowTaskConfigBaseIAM(rName string) string { + return fmt.Sprintf(testAccAWSSSMMaintenanceWindowTaskConfigBase(rName)+` resource "aws_iam_role" "test" { - name = %[1]q - assume_role_policy = < Date: Thu, 11 Feb 2021 22:37:12 -0500 Subject: [PATCH 2/3] Apply suggestions from code review --- ...urce_aws_ssm_maintenance_window_task_test.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/aws/resource_aws_ssm_maintenance_window_task_test.go b/aws/resource_aws_ssm_maintenance_window_task_test.go index d3cd52d6e5f..54a43e83d97 100644 --- a/aws/resource_aws_ssm_maintenance_window_task_test.go +++ b/aws/resource_aws_ssm_maintenance_window_task_test.go @@ -466,24 +466,23 @@ resource "aws_iam_role" "test" { POLICY } - resource "aws_iam_role_policy" "test" { name = %[1]q role = aws_iam_role.test.name policy = < Date: Thu, 11 Feb 2021 22:38:26 -0500 Subject: [PATCH 3/3] Update aws/resource_aws_ssm_maintenance_window_task_test.go --- aws/resource_aws_ssm_maintenance_window_task_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/aws/resource_aws_ssm_maintenance_window_task_test.go b/aws/resource_aws_ssm_maintenance_window_task_test.go index 54a43e83d97..410038a9de2 100644 --- a/aws/resource_aws_ssm_maintenance_window_task_test.go +++ b/aws/resource_aws_ssm_maintenance_window_task_test.go @@ -466,6 +466,7 @@ resource "aws_iam_role" "test" { POLICY } + resource "aws_iam_role_policy" "test" { name = %[1]q role = aws_iam_role.test.name