From 0bcec1fc387fff4858003d4b9022a9d7ab97d1e5 Mon Sep 17 00:00:00 2001 From: Alexander Rashed Date: Mon, 12 Sep 2022 10:28:15 +0200 Subject: [PATCH 1/6] fix pipeline failure on terraform test failure --- tests/terraform/run.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/terraform/run.sh b/tests/terraform/run.sh index d4e9beaf06b0e..2cfc2b650153b 100644 --- a/tests/terraform/run.sh +++ b/tests/terraform/run.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -euo pipefail export TF_ACC=1 export AWS_ALTERNATE_ACCESS_KEY_ID=test @@ -52,4 +53,4 @@ fi if [ $CI == "false" ]; then python -m http.server -fi \ No newline at end of file +fi From 438b1109ea736bbe1ef30f9685c29cb42c61d2e9 Mon Sep 17 00:00:00 2001 From: Alexander Rashed Date: Mon, 12 Sep 2022 13:57:03 +0200 Subject: [PATCH 2/6] remove tests for non-implemented operations, fix route53resolver --- localstack/services/route53resolver/models.py | 6 +++--- localstack/services/route53resolver/provider.py | 8 +++++--- localstack/services/route53resolver/utils.py | 4 ++-- tests/terraform/terraform-tests.yaml | 4 ---- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/localstack/services/route53resolver/models.py b/localstack/services/route53resolver/models.py index f1bd1466d8bb3..0836746cc4a0c 100644 --- a/localstack/services/route53resolver/models.py +++ b/localstack/services/route53resolver/models.py @@ -151,10 +151,10 @@ def delete_resolver_query_log_config_associations( association_id = association.get("Id") return self.resolver_query_log_config_associations.pop(association_id) - def get_or_create_firewall_config(self, resource_id, region, owner_id): + def get_or_create_firewall_config(self, resource_id: str, region: str, account_id: str): """returns the firewall config with the given id if it exists or creates a new one""" - validate_vpc(resource_id, region) + validate_vpc(resource_id, region, account_id) firewall_config: FirewallConfig if self.firewall_configs.get(resource_id): firewall_config = self.firewall_configs[resource_id] @@ -163,7 +163,7 @@ def get_or_create_firewall_config(self, resource_id, region, owner_id): firewall_config = FirewallConfig( Id=id, ResourceId=resource_id, - OwnerId=owner_id, + OwnerId=account_id, FirewallFailOpen="DISABLED", ) self.firewall_configs[resource_id] = firewall_config diff --git a/localstack/services/route53resolver/provider.py b/localstack/services/route53resolver/provider.py index 0ff701a2c497f..225bfc026f67e 100644 --- a/localstack/services/route53resolver/provider.py +++ b/localstack/services/route53resolver/provider.py @@ -522,7 +522,9 @@ def create_resolver_query_log_config( CreationTime=datetime.now(timezone.utc).isoformat(), ) region_details.resolver_query_log_configs[id] = resolver_query_log_config - route53resolver_backends[context.region].tagger.tag_resource(arn, tags or []) + route53resolver_backends[context.account_id][context.region].tagger.tag_resource( + arn, tags or [] + ) return CreateResolverQueryLogConfigResponse( ResolverQueryLogConfig=resolver_query_log_config ) @@ -665,7 +667,7 @@ def list_firewall_configs( ) -> ListFirewallConfigsResponse: region_details = Route53ResolverBackend.get() firewall_configs = [] - backend = ec2_backends[context.region] + backend = ec2_backends[context.account_id][context.region] for vpc in backend.vpcs: if vpc not in region_details.firewall_configs: region_details.get_or_create_firewall_config( @@ -682,7 +684,7 @@ def update_firewall_config( firewall_fail_open: FirewallFailOpenStatus, ) -> UpdateFirewallConfigResponse: region_details = Route53ResolverBackend.get() - backend = ec2_backends[context.region] + backend = ec2_backends[context.account_id][context.region] for resource_id in backend.vpcs: if resource_id not in region_details.firewall_configs: firewall_config = region_details.get_or_create_firewall_config( diff --git a/localstack/services/route53resolver/utils.py b/localstack/services/route53resolver/utils.py index 0f1b35a85b8cc..eb78c638189a2 100644 --- a/localstack/services/route53resolver/utils.py +++ b/localstack/services/route53resolver/utils.py @@ -56,8 +56,8 @@ def validate_destination_arn(destination_arn): ) -def validate_vpc(vpc_id, region): - backend = ec2_backends[region] +def validate_vpc(vpc_id: str, region: str, account_id: str): + backend = ec2_backends[account_id][region] if vpc_id not in backend.vpcs: raise ValidationException( diff --git a/tests/terraform/terraform-tests.yaml b/tests/terraform/terraform-tests.yaml index 202c5209b0129..38962f8820944 100644 --- a/tests/terraform/terraform-tests.yaml +++ b/tests/terraform/terraform-tests.yaml @@ -33,8 +33,6 @@ route53: - TestAccRoute53Record_longTXTrecord - TestAccRoute53Record_Allow_doNotOverwrite - TestAccRoute53Record_Allow_overwrite - - TestAccRoute53VPCAssociationAuthorization_basic - - TestAccRoute53VPCAssociationAuthorization_disappears - TestAccRoute53Zone_basic - TestAccRoute53Zone_disappears - TestAccRoute53Zone_multiple @@ -53,7 +51,6 @@ route53: - TestAccRoute53ZoneAssociation_disappears - TestAccRoute53ZoneAssociation_Disappears_vpc - TestAccRoute53ZoneAssociation_Disappears_zone - - TestAccRoute53ZoneAssociation_crossAccount - TestAccRoute53ZoneAssociation_crossRegion - TestAccRoute53QueryLog_basic - TestAccRoute53QueryLog_disappears @@ -242,7 +239,6 @@ s3: - TestAccS3Bucket_disappears - TestAccS3Bucket_Duplicate_basic - TestAccS3Bucket_Duplicate_UsEast1 - - TestAccS3Bucket_Duplicate_UsEast1AltAccount - TestAccS3Bucket_Tags_basic - TestAccS3Bucket_Tags_withNoSystemTags - TestAccS3Bucket_Tags_ignoreTags From 353d9c42bb292aabc64ae8d51822c889677375b9 Mon Sep 17 00:00:00 2001 From: Alexander Rashed Date: Tue, 13 Sep 2022 09:56:47 +0200 Subject: [PATCH 3/6] fix terraform test collection (use strict regex) --- tests/terraform/get-tf-tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/terraform/get-tf-tests.py b/tests/terraform/get-tf-tests.py index 7f5f68e07099f..eeb5d0a988791 100644 --- a/tests/terraform/get-tf-tests.py +++ b/tests/terraform/get-tf-tests.py @@ -13,7 +13,7 @@ def print_test_names(service): if len(tests) == 1: print(tests[0]) else: - print('"(' + "|".join(tests) + ')"') + print('"(^' + "$|^".join(tests) + '$)"') if __name__ == "__main__": From 3a3f9badd4102ed599e97a60c14617c98bedddbb Mon Sep 17 00:00:00 2001 From: Alexander Rashed Date: Tue, 13 Sep 2022 10:06:54 +0200 Subject: [PATCH 4/6] fix ACM backend import --- localstack/services/acm/provider.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/localstack/services/acm/provider.py b/localstack/services/acm/provider.py index 54fb820dd6a92..8ebd9b9b8120a 100644 --- a/localstack/services/acm/provider.py +++ b/localstack/services/acm/provider.py @@ -1,4 +1,3 @@ -from moto.acm import acm_backends from moto.acm import models as acm_models from localstack.aws.api import RequestContext, handler @@ -66,7 +65,7 @@ def request_certificate( response: RequestCertificateResponse = moto.call_moto(context) cert_arn = response["CertificateArn"] - backend = acm_backends[context.account_id][context.region] + backend = acm_models.acm_backends[context.account_id][context.region] cert = backend._certificates[cert_arn] if not hasattr(cert, "domain_validation_options"): cert.domain_validation_options = request.get("DomainValidationOptions") From 77b9415bfa38191b4e39f8d5c9e01d648975ed24 Mon Sep 17 00:00:00 2001 From: Alexander Rashed Date: Tue, 13 Sep 2022 16:57:06 +0200 Subject: [PATCH 5/6] remove TestAccRoute53ResolverFirewallDomainList_domains --- tests/terraform/terraform-tests.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/terraform/terraform-tests.yaml b/tests/terraform/terraform-tests.yaml index 38962f8820944..4b424b86c573a 100644 --- a/tests/terraform/terraform-tests.yaml +++ b/tests/terraform/terraform-tests.yaml @@ -74,7 +74,6 @@ route53resolver: - TestAccRoute53ResolverFirewallConfig_disappears - TestAccRoute53ResolverFirewallDomainList_basic - TestAccRoute53ResolverFirewallDomainList_disappears - - TestAccRoute53ResolverFirewallDomainList_domains - TestAccRoute53ResolverFirewallDomainList_tags - TestAccRoute53ResolverFirewallRuleGroupAssociation_basic - TestAccRoute53ResolverFirewallRuleGroupAssociation_disappears From 7aa91c1a896e26735345853432f7a8168ac9f0a4 Mon Sep 17 00:00:00 2001 From: Alexander Rashed Date: Tue, 13 Sep 2022 17:28:59 +0200 Subject: [PATCH 6/6] remove TestAccRoute53ResolverFirewallConfig_basic --- tests/terraform/terraform-tests.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/terraform/terraform-tests.yaml b/tests/terraform/terraform-tests.yaml index 4b424b86c573a..9ad2fc68cbb9a 100644 --- a/tests/terraform/terraform-tests.yaml +++ b/tests/terraform/terraform-tests.yaml @@ -70,7 +70,6 @@ route53resolver: - TestAccRoute53ResolverEndpointDataSource_filter - TestAccRoute53ResolverEndpoint_basicInbound - TestAccRoute53ResolverEndpoint_updateOutbound - - TestAccRoute53ResolverFirewallConfig_basic - TestAccRoute53ResolverFirewallConfig_disappears - TestAccRoute53ResolverFirewallDomainList_basic - TestAccRoute53ResolverFirewallDomainList_disappears