From f946f12e05cdf2d3d818b2271db2f44db4ff6123 Mon Sep 17 00:00:00 2001 From: Alina Buzachis Date: Tue, 1 Oct 2024 16:53:54 +0200 Subject: [PATCH] Fixes Signed-off-by: Alina Buzachis --- plugins/module_utils/ec2.py | 26 +++------------------ plugins/module_utils/waiters.py | 40 +++++++++++++++++++-------------- 2 files changed, 26 insertions(+), 40 deletions(-) diff --git a/plugins/module_utils/ec2.py b/plugins/module_utils/ec2.py index f8335300e8..0a4362c5b2 100644 --- a/plugins/module_utils/ec2.py +++ b/plugins/module_utils/ec2.py @@ -1307,22 +1307,13 @@ def _is_missing(cls): return is_boto3_error_code("InvalidGatewayID.NotFound") -@EC2TransitGatewayVPCAttachmentErrorHandler.common_error_handler("describe transit gateway attachments") -@AWSRetry.jittered_backoff() -def paginated_describe_transit_gateway_vpc_attachments( - client, **params: Dict[str, Union[List[str], bool, List[Dict[str, Union[str, List[str]]]]]] -) -> Dict[str, Any]: - paginator = client.get_paginator("describe_transit_gateway_vpc_attachments") - return paginator.paginate(**params).build_full_result() - - @EC2TransitGatewayVPCAttachmentErrorHandler.common_error_handler("describe transit gateway attachments") @AWSRetry.jittered_backoff() def describe_vpc_attachments( client, **params: Dict[str, Union[List[str], bool, List[Dict[str, Union[str, List[str]]]]]] -) -> Optional[List[Dict[str, Any]]]: - result = client._paginated_describe_transit_gateway_vpc_attachments(**params) - return result.get("TransitGatewayVpcAttachments", None) +) -> List: + paginator = client.get_paginator("describe_transit_gateway_vpc_attachments") + return paginator.paginate(**params).build_full_result()["TransitGatewayVpcAttachments"] @EC2TransitGatewayVPCAttachmentErrorHandler.common_error_handler("create transit gateway vpc attachment") @@ -1352,17 +1343,6 @@ def delete_vpc_attachment( return result.get("TransitGatewayVpcAttachment", None) -def get_tgw_vpc_attachment(client, **params: Any) -> Optional[Dict[str, Any]]: - # Only for use with a single attachment, use describe_vpc_attachments for - # multiple tables. - attachments = client.describe_vpc_attachments(**params) - if not attachments: - return None - - attachment = attachments[0] - return attachment - - def add_ec2_tags(client, module, resource_id, tags_to_set, retry_codes=None): """ Sets Tags on an EC2 resource. diff --git a/plugins/module_utils/waiters.py b/plugins/module_utils/waiters.py index 15ba4d1af9..51213617f6 100644 --- a/plugins/module_utils/waiters.py +++ b/plugins/module_utils/waiters.py @@ -52,43 +52,49 @@ ], }, "TGWVpcAttachmentAvailable": { - "operation": "DescribeTransitGatewayAttachments", + "operation": "DescribeTransitGatewayVpcAttachments", "delay": 5, "maxAttempts": 120, "acceptors": [ { "expected": "available", "matcher": "pathAll", - "state": "available", - "argument": "TransitGatewayAttachments[].State", + "state": "success", + "argument": "TransitGatewayVpcAttachments[].State", + }, + { + "state": "retry", + "matcher": "pathAny", + "argument": "TransitGatewayVpcAttachments[].State", + "expected": "pending", }, {"matcher": "error", "expected": "InvalidRouteTableID.NotFound", "state": "retry"}, ], }, "TGWVpcAttachmentDeleted": { - "operation": "DescribeTransitGatewayAttachments", + "operation": "DescribeTransitGatewayVpcAttachments", "delay": 5, "maxAttempts": 120, "acceptors": [ { - "expected": "retry", + "state": "retry", "matcher": "pathAll", - "state": "deleting", - "argument": "TransitGatewayAttachments[].State", + "argument": "TransitGatewayVpcAttachments[].State", + "expected": "deleting", }, { - "expected": "success", + "state": "success", + "expected": "deleted", "matcher": "pathAll", - "state": "deleted", - "argument": "TransitGatewayAttachments[].State", + "argument": "TransitGatewayVpcAttachments[].State", }, { - "expected": "success", - "matcher": "pathAll", - "state": True, - "argument": "length(TransitGatewayAttachments[]) == `0`", + "expected": True, + "matcher": "path", + "state": "success", + "argument": "length(TransitGatewayVpcAttachments[]) == `0`", }, - {"matcher": "success", "expected": "InvalidRouteTableID.NotFound", "state": "retry"}, + {"matcher": "error", "expected": "InvalidRouteTableID.NotFound", "state": "retry"}, ], }, "NetworkInterfaceAttached": { @@ -817,12 +823,12 @@ def route53_model(name): ("EC2", "transit_gateway_vpc_attachment_available"): lambda ec2: core_waiter.Waiter( "transit_gateway_vpc_attachment_available", ec2_model("TGWVpcAttachmentAvailable"), - core_waiter.NormalizedOperationMethod(ec2.describe_vpc_attachments), + core_waiter.NormalizedOperationMethod(ec2.describe_transit_gateway_vpc_attachments), ), ("EC2", "transit_gateway_vpc_attachment_deleted"): lambda ec2: core_waiter.Waiter( "transit_gateway_vpc_attachment_deleted", ec2_model("TGWVpcAttachmentDeleted"), - core_waiter.NormalizedOperationMethod(ec2.describe_vpc_attachments), + core_waiter.NormalizedOperationMethod(ec2.describe_transit_gateway_vpc_attachments), ), ("EC2", "network_interface_attached"): lambda ec2: core_waiter.Waiter( "network_interface_attached",