From 82e7bc322a7c37a8a6316720e2b0f135f77e091b Mon Sep 17 00:00:00 2001 From: Mark Chappell Date: Wed, 26 Aug 2020 09:35:24 +0200 Subject: [PATCH] Revert changes to lamba_alias and lambda_event - unable to test properly --- plugins/modules/lambda_alias.py | 17 ++++++++++++----- plugins/modules/lambda_event.py | 16 +++++++++++----- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/plugins/modules/lambda_alias.py b/plugins/modules/lambda_alias.py index c65c298247c..bd547a41341 100644 --- a/plugins/modules/lambda_alias.py +++ b/plugins/modules/lambda_alias.py @@ -145,13 +145,14 @@ try: import boto3 - import botocore from botocore.exceptions import ClientError, ParamValidationError, MissingParametersError except ImportError: pass # Handled by AnsibleAWSModule from ansible_collections.amazon.aws.plugins.module_utils.core import AnsibleAWSModule +from ansible_collections.amazon.aws.plugins.module_utils.ec2 import boto3_conn from ansible_collections.amazon.aws.plugins.module_utils.ec2 import camel_dict_to_snake_dict +from ansible_collections.amazon.aws.plugins.module_utils.ec2 import get_aws_connection_info class AWSConnection: @@ -162,7 +163,8 @@ class AWSConnection: def __init__(self, ansible_obj, resources, boto3_=True): try: - self.region = ansible_obj.region + self.region, self.endpoint, aws_connect_kwargs = get_aws_connection_info(ansible_obj, boto3=boto3_) + self.resource_client = dict() if not resources: resources = ['lambda'] @@ -170,14 +172,19 @@ def __init__(self, ansible_obj, resources, boto3_=True): resources.append('iam') for resource in resources: - self.resource_client[resource] = ansible_obj.client(resource) + aws_connect_kwargs.update(dict(region=self.region, + endpoint=self.endpoint, + conn_type='client', + resource=resource + )) + self.resource_client[resource] = boto3_conn(ansible_obj, **aws_connect_kwargs) # if region is not provided, then get default profile/session region if not self.region: self.region = self.resource_client['lambda'].meta.region_name - except (botocore.exceptions.ClientError, botocore.exceptions.BotoCoreError) as e: - ansible_obj.fail_json_aws(e, msg='Failed to connect to AWS') + except (ClientError, ParamValidationError, MissingParametersError) as e: + ansible_obj.fail_json(msg="Unable to connect, authorize or access resource: {0}".format(e)) try: self.account_id = self.resource_client['iam'].get_user()['User']['Arn'].split(':')[4] diff --git a/plugins/modules/lambda_event.py b/plugins/modules/lambda_event.py index 135ad0ffca0..e0009d13582 100644 --- a/plugins/modules/lambda_event.py +++ b/plugins/modules/lambda_event.py @@ -119,13 +119,14 @@ try: import boto3 - import botocore from botocore.exceptions import ClientError, ParamValidationError, MissingParametersError except ImportError: pass # Handled by AnsibleAWSModule from ansible_collections.amazon.aws.plugins.module_utils.core import AnsibleAWSModule +from ansible_collections.amazon.aws.plugins.module_utils.ec2 import boto3_conn from ansible_collections.amazon.aws.plugins.module_utils.ec2 import camel_dict_to_snake_dict +from ansible_collections.amazon.aws.plugins.module_utils.ec2 import get_aws_connection_info # --------------------------------------------------------------------------------------------------- @@ -143,7 +144,7 @@ class AWSConnection: def __init__(self, ansible_obj, resources, use_boto3=True): try: - self.region = ansible_obj.region + self.region, self.endpoint, aws_connect_kwargs = get_aws_connection_info(ansible_obj, boto3=use_boto3) self.resource_client = dict() if not resources: @@ -152,14 +153,19 @@ def __init__(self, ansible_obj, resources, use_boto3=True): resources.append('iam') for resource in resources: - self.resource_client[resource] = ansible_obj.client(resource) + aws_connect_kwargs.update(dict(region=self.region, + endpoint=self.endpoint, + conn_type='client', + resource=resource + )) + self.resource_client[resource] = boto3_conn(ansible_obj, **aws_connect_kwargs) # if region is not provided, then get default profile/session region if not self.region: self.region = self.resource_client['lambda'].meta.region_name - except (botocore.exceptions.ClientError, botocore.exceptions.BotoCoreError) as e: - ansible_obj.fail_json_aws(e, msg='Failed to connect to AWS') + except (ClientError, ParamValidationError, MissingParametersError) as e: + ansible_obj.fail_json(msg="Unable to connect, authorize or access resource: {0}".format(e)) # set account ID try: