From c7641556de36a345d8d2d2bd3072ba642d75c0df Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Mon, 4 Jan 2021 11:24:01 -0500 Subject: [PATCH] service/imagebuilder: Review items from #16947 Reference: https://github.com/hashicorp/terraform-provider-aws/pull/16947#pullrequestreview-561149655 Output from acceptance testing in AWS Commercial: ``` --- PASS: TestAccAwsImageBuilderImageRecipe_disappears (31.42s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_Encrypted (34.85s) --- PASS: TestAccAwsImageBuilderImageRecipe_basic (35.02s) --- PASS: TestAccAwsImageBuilderImageRecipe_Description (37.85s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_Iops (38.14s) --- PASS: TestAccAwsImageBuilderImageRecipe_WorkingDirectory (38.17s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_VirtualName (38.18s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_DeviceName (38.24s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_VolumeSize (38.32s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_NoDevice (38.39s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_DeleteOnTermination (38.44s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_VolumeType (38.44s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_KmsKeyId (39.35s) --- PASS: TestAccAwsImageBuilderImageRecipe_Component (39.39s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_SnapshotId (48.07s) --- PASS: TestAccAwsImageBuilderImageRecipe_Tags (64.35s) --- PASS: TestAccAwsImageBuilderImageRecipeDataSource_Arn (27.89s) ``` Output from acceptance testing in AWS GovCloud (US): ``` --- PASS: TestAccAwsImageBuilderImageRecipe_disappears (37.78s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_VirtualName (40.06s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_Encrypted (40.46s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_VolumeSize (40.52s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_VolumeType (40.68s) --- PASS: TestAccAwsImageBuilderImageRecipe_basic (41.90s) --- PASS: TestAccAwsImageBuilderImageRecipe_Description (42.30s) --- PASS: TestAccAwsImageBuilderImageRecipe_WorkingDirectory (42.46s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_DeleteOnTermination (42.62s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_NoDevice (42.64s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_DeviceName (42.82s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_KmsKeyId (43.29s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_Iops (43.30s) --- PASS: TestAccAwsImageBuilderImageRecipe_Component (44.64s) --- PASS: TestAccAwsImageBuilderImageRecipe_BlockDeviceMapping_Ebs_SnapshotId (49.57s) --- PASS: TestAccAwsImageBuilderImageRecipe_Tags (73.70s) --- PASS: TestAccAwsImageBuilderImageRecipeDataSource_Arn (30.79s) ``` --- ...urce_aws_imagebuilder_image_recipe_test.go | 2 +- ...urce_aws_imagebuilder_image_recipe_test.go | 42 +++++++++++++++++++ .../d/imagebuilder_image_recipe.html.markdown | 3 +- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/aws/data_source_aws_imagebuilder_image_recipe_test.go b/aws/data_source_aws_imagebuilder_image_recipe_test.go index 73cde70f0b16..205e872dc0ed 100644 --- a/aws/data_source_aws_imagebuilder_image_recipe_test.go +++ b/aws/data_source_aws_imagebuilder_image_recipe_test.go @@ -32,6 +32,7 @@ func TestAccAwsImageBuilderImageRecipeDataSource_Arn(t *testing.T) { resource.TestCheckResourceAttrPair(dataSourceName, "platform", resourceName, "platform"), resource.TestCheckResourceAttrPair(dataSourceName, "tags.%", resourceName, "tags.%"), resource.TestCheckResourceAttrPair(dataSourceName, "version", resourceName, "version"), + resource.TestCheckResourceAttrPair(dataSourceName, "working_directory", resourceName, "working_directory"), ), }, }, @@ -59,7 +60,6 @@ resource "aws_imagebuilder_component" "test" { }] schemaVersion = 1.0 }) - working_directory = "/tmp" name = %[1]q platform = "Linux" version = "1.0.0" diff --git a/aws/resource_aws_imagebuilder_image_recipe_test.go b/aws/resource_aws_imagebuilder_image_recipe_test.go index 8d961ee1bead..39a19483cbf9 100644 --- a/aws/resource_aws_imagebuilder_image_recipe_test.go +++ b/aws/resource_aws_imagebuilder_image_recipe_test.go @@ -506,6 +506,31 @@ func TestAccAwsImageBuilderImageRecipe_Tags(t *testing.T) { }) } +func TestAccAwsImageBuilderImageRecipe_WorkingDirectory(t *testing.T) { + rName := acctest.RandomWithPrefix("tf-acc-test") + resourceName := "aws_imagebuilder_image_recipe.test" + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckAwsImageBuilderImageRecipeDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAwsImageBuilderImageRecipeConfigWorkingDirectory(rName, "/tmp"), + Check: resource.ComposeTestCheckFunc( + testAccCheckAwsImageBuilderImageRecipeExists(resourceName), + resource.TestCheckResourceAttr(resourceName, "working_directory", "/tmp"), + ), + }, + { + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + func testAccCheckAwsImageBuilderImageRecipeDestroy(s *terraform.State) error { conn := testAccProvider.Meta().(*AWSClient).imagebuilderconn @@ -920,3 +945,20 @@ resource "aws_imagebuilder_image_recipe" "test" { } `, rName, tagKey1, tagValue1, tagKey2, tagValue2)) } + +func testAccAwsImageBuilderImageRecipeConfigWorkingDirectory(rName string, workingDirectory string) string { + return composeConfig( + testAccAwsImageBuilderImageRecipeConfigBase(rName), + fmt.Sprintf(` +resource "aws_imagebuilder_image_recipe" "test" { + component { + component_arn = aws_imagebuilder_component.test.arn + } + + name = %[1]q + parent_image = "arn:${data.aws_partition.current.partition}:imagebuilder:${data.aws_region.current.name}:aws:image/amazon-linux-2-x86/x.x.x" + version = "1.0.0" + working_directory = %[2]q +} +`, rName, workingDirectory)) +} diff --git a/website/docs/d/imagebuilder_image_recipe.html.markdown b/website/docs/d/imagebuilder_image_recipe.html.markdown index c4b2932ab921..a4d753fd3809 100644 --- a/website/docs/d/imagebuilder_image_recipe.html.markdown +++ b/website/docs/d/imagebuilder_image_recipe.html.markdown @@ -48,5 +48,6 @@ In addition to all arguments above, the following attributes are exported: * `owner` - Owner of the image recipe. * `parent_image` - Platform of the image recipe. * `platform` - Platform of the image recipe. -* `tags` - (Optional) Key-value map of resource tags for the image recipe. +* `tags` - Key-value map of resource tags for the image recipe. * `version` - Version of the image recipe. +* `working_directory` - The working directory used during build and test workflows.