[cloud] new module - AWS Direct Connect virtual interface (#33211)

* Add an AWS Direct Connect virtual interface module

Fix DirectConnectError exception wrapper to be compatible with fail_json_aws()

* Fix documentation and handle BotoCoreErrors as well

* Add the aws and ec2 documentation fragments
This commit is contained in:
Sloane Hertel 2018-01-29 17:23:03 -05:00 committed by Ryan Brown
commit 6dda001a8c
4 changed files with 505 additions and 25 deletions

View file

@ -38,12 +38,10 @@ from ansible.module_utils.ec2 import camel_dict_to_snake_dict
class DirectConnectError(Exception):
def __init__(self, msg, last_traceback=None, response=None):
response = {} if response is None else response
def __init__(self, msg, last_traceback=None, exception=None):
self.msg = msg
self.last_traceback = last_traceback
self.response = camel_dict_to_snake_dict(response)
self.exception = exception
def delete_connection(client, connection_id):
@ -52,7 +50,7 @@ def delete_connection(client, connection_id):
except botocore.exceptions.ClientError as e:
raise DirectConnectError(msg="Failed to delete DirectConnection {0}.".format(connection_id),
last_traceback=traceback.format_exc(),
response=e.response)
exception=e)
def associate_connection_and_lag(client, connection_id, lag_id):
@ -63,7 +61,7 @@ def associate_connection_and_lag(client, connection_id, lag_id):
raise DirectConnectError(msg="Failed to associate Direct Connect connection {0}"
" with link aggregation group {1}.".format(connection_id, lag_id),
last_traceback=traceback.format_exc(),
response=e.response)
exception=e)
def disassociate_connection_and_lag(client, connection_id, lag_id):
@ -74,7 +72,7 @@ def disassociate_connection_and_lag(client, connection_id, lag_id):
raise DirectConnectError(msg="Failed to disassociate Direct Connect connection {0}"
" from link aggregation group {1}.".format(connection_id, lag_id),
last_traceback=traceback.format_exc(),
response=e.response)
exception=e)
def delete_virtual_interface(client, virtual_interface):
@ -83,4 +81,4 @@ def delete_virtual_interface(client, virtual_interface):
except botocore.exceptions.ClientError as e:
raise DirectConnectError(msg="Could not delete virtual interface {0}".format(virtual_interface),
last_traceback=traceback.format_exc(),
response=e.response)
exception=e)