From 7c3ed0e48c83c2ab3b5e58b40b9ec88f75e68b95 Mon Sep 17 00:00:00 2001 From: Mohamed ElAsmar Date: Mon, 29 May 2023 12:56:00 -0700 Subject: [PATCH 1/3] fix: fix the failing terraform integration test cases --- .../terraform/image_based_lambda_functions_local_backend/main.tf | 1 - .../terraform/image_based_lambda_functions_s3_backend/main.tf | 1 - 2 files changed, 2 deletions(-) diff --git a/tests/integration/testdata/buildcmd/terraform/image_based_lambda_functions_local_backend/main.tf b/tests/integration/testdata/buildcmd/terraform/image_based_lambda_functions_local_backend/main.tf index 5f7cb18578..821af9b7f6 100644 --- a/tests/integration/testdata/buildcmd/terraform/image_based_lambda_functions_local_backend/main.tf +++ b/tests/integration/testdata/buildcmd/terraform/image_based_lambda_functions_local_backend/main.tf @@ -1,6 +1,5 @@ provider "aws" { # Make it faster by skipping something - skip_get_ec2_platforms = true skip_metadata_api_check = true skip_region_validation = true skip_credentials_validation = true diff --git a/tests/integration/testdata/buildcmd/terraform/image_based_lambda_functions_s3_backend/main.tf b/tests/integration/testdata/buildcmd/terraform/image_based_lambda_functions_s3_backend/main.tf index 99e39ab8e9..df805b56eb 100644 --- a/tests/integration/testdata/buildcmd/terraform/image_based_lambda_functions_s3_backend/main.tf +++ b/tests/integration/testdata/buildcmd/terraform/image_based_lambda_functions_s3_backend/main.tf @@ -4,7 +4,6 @@ terraform { provider "aws" { # Make it faster by skipping something - skip_get_ec2_platforms = true skip_metadata_api_check = true skip_region_validation = true skip_credentials_validation = true From e53f9f050bffaaac38c65b3a93e752d8dfe195c6 Mon Sep 17 00:00:00 2001 From: Mohamed ElAsmar Date: Mon, 29 May 2023 14:39:02 -0700 Subject: [PATCH 2/3] fix: fix the resource address while accessing the module config resources --- .../hook_packages/terraform/hooks/prepare/translate.py | 10 ++++++++-- .../terraform/hooks/prepare/test_translate.py | 8 ++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/samcli/hook_packages/terraform/hooks/prepare/translate.py b/samcli/hook_packages/terraform/hooks/prepare/translate.py index ca02488757..62f8d4da12 100644 --- a/samcli/hook_packages/terraform/hooks/prepare/translate.py +++ b/samcli/hook_packages/terraform/hooks/prepare/translate.py @@ -111,15 +111,21 @@ def _check_unresolvable_values(root_module: dict, root_tf_module: TFModule) -> N # iterate over resources for current module for resource in curr_module.get("resources", []): resource_type = resource.get("type") + resource_name = resource.get("name") + resource_mode = resource.get("mode") resource_mapper = RESOURCE_TRANSLATOR_MAPPING.get(resource_type) if not resource_mapper: continue resource_values = resource.get("values") - resource_full_address = resource.get("address") + resource_address = ( + f"data.{resource_type}.{resource_name}" + if resource_mode == "data" + else f"{resource_type}.{resource_name}" + ) - config_resource_address = get_configuration_address(resource_full_address) + config_resource_address = get_configuration_address(resource_address) config_resource = curr_tf_module.resources[config_resource_address] for prop_builder in resource_mapper.property_builder_mapping.values(): diff --git a/tests/unit/hook_packages/terraform/hooks/prepare/test_translate.py b/tests/unit/hook_packages/terraform/hooks/prepare/test_translate.py index 164e3c7df6..e8309379db 100644 --- a/tests/unit/hook_packages/terraform/hooks/prepare/test_translate.py +++ b/tests/unit/hook_packages/terraform/hooks/prepare/test_translate.py @@ -1116,8 +1116,12 @@ class TestUnresolvableAttributeCheck: @patch("samcli.hook_packages.terraform.hooks.prepare.translate.RESOURCE_TRANSLATOR_MAPPING") @patch("samcli.hook_packages.terraform.hooks.prepare.translate.LOG") def test_module_contains_unresolvables(self, log_mock, mapping_mock): - config_addr = "addr" - module = {"resources": [{"address": config_addr, "values": Mock()}]} + config_addr = "function.func1" + module = { + "resources": [ + {"address": config_addr, "values": Mock(), "type": "function", "mode": "resource", "name": "func1"} + ] + } tf_module = Mock() tf_module_attr = Mock() From 00cba06ece896c657c614319976d46692b0b8798 Mon Sep 17 00:00:00 2001 From: Mohamed ElAsmar Date: Mon, 29 May 2023 14:39:31 -0700 Subject: [PATCH 3/3] fix: fix checking the experimental log integration test cases --- .../local/invoke/test_invoke_terraform_applications.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/local/invoke/test_invoke_terraform_applications.py b/tests/integration/local/invoke/test_invoke_terraform_applications.py index 3c8053b86e..1421e0fa9b 100644 --- a/tests/integration/local/invoke/test_invoke_terraform_applications.py +++ b/tests/integration/local/invoke/test_invoke_terraform_applications.py @@ -159,7 +159,7 @@ def test_invoke_function_get_experimental_prompted(self): "You can also enable this beta feature with 'sam local invoke --beta-features'." ) self.assertRegex(stdout.decode("utf-8"), terraform_beta_feature_prompted_text) - self.assertTrue(stderr.decode("utf-8").startswith(Colored().yellow(EXPERIMENTAL_WARNING))) + self.assertRegex(stderr.decode("utf-8"), EXPERIMENTAL_WARNING) response = json.loads(stdout.decode("utf-8").split("\n")[2][85:].strip()) expected_response = json.loads('{"statusCode":200,"body":"{\\"message\\": \\"hello world\\"}"}')