VPC peer module unhandled exception on bad peering ID (#45306)
* Improve error handling for VPC peer module when a bad peering-id is specified * changelog
This commit is contained in:
parent
7f7c059a04
commit
af6427bf40
2 changed files with 11 additions and 2 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- Handle ClientError exceptions when describing VPC peering connections.
|
|
@ -220,9 +220,11 @@ except ImportError:
|
||||||
pass # caught by imported HAS_BOTO3
|
pass # caught by imported HAS_BOTO3
|
||||||
|
|
||||||
import distutils.version
|
import distutils.version
|
||||||
|
import traceback
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.ec2 import boto3_conn, ec2_argument_spec, get_aws_connection_info, HAS_BOTO3
|
from ansible.module_utils.ec2 import boto3_conn, ec2_argument_spec, get_aws_connection_info, HAS_BOTO3
|
||||||
|
from ansible.module_utils.aws.core import is_boto3_error_code
|
||||||
|
|
||||||
|
|
||||||
def tags_changed(pcx_id, client, module):
|
def tags_changed(pcx_id, client, module):
|
||||||
|
@ -328,8 +330,13 @@ def remove_peer_connection(client, module):
|
||||||
def peer_status(client, module):
|
def peer_status(client, module):
|
||||||
params = dict()
|
params = dict()
|
||||||
params['VpcPeeringConnectionIds'] = [module.params.get('peering_id')]
|
params['VpcPeeringConnectionIds'] = [module.params.get('peering_id')]
|
||||||
|
try:
|
||||||
vpc_peering_connection = client.describe_vpc_peering_connections(**params)
|
vpc_peering_connection = client.describe_vpc_peering_connections(**params)
|
||||||
return vpc_peering_connection['VpcPeeringConnections'][0]['Status']['Code']
|
return vpc_peering_connection['VpcPeeringConnections'][0]['Status']['Code']
|
||||||
|
except is_boto3_error_code('InvalidVpcPeeringConnectionId.Malformed') as e: # pylint: disable=duplicate-except
|
||||||
|
module.fail_json(msg='Malformed connection ID: {0}'.format(e), traceback=traceback.format_exc())
|
||||||
|
except botocore.exceptions.ClientError as e: # pylint: disable=duplicate-except
|
||||||
|
module.fail_json(msg='Error while describing peering connection by peering_id: {0}'.format(e), traceback=traceback.format_exc())
|
||||||
|
|
||||||
|
|
||||||
def accept_reject(state, client, module):
|
def accept_reject(state, client, module):
|
||||||
|
|
Loading…
Reference in a new issue