From a13d1eba9347b587aebcbf6b0652db0af12a819f Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Tue, 4 Dec 2018 11:26:04 +0530 Subject: [PATCH] Correct usages of custom error class (#48778) Signed-off-by: Abhijeet Kasurde --- ...s_direct_connect_link_aggregation_group.py | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/lib/ansible/modules/cloud/amazon/aws_direct_connect_link_aggregation_group.py b/lib/ansible/modules/cloud/amazon/aws_direct_connect_link_aggregation_group.py index a7cc74de8b..bee2b931f7 100644 --- a/lib/ansible/modules/cloud/amazon/aws_direct_connect_link_aggregation_group.py +++ b/lib/ansible/modules/cloud/amazon/aws_direct_connect_link_aggregation_group.py @@ -153,7 +153,8 @@ region: from ansible.module_utils.ec2 import (camel_dict_to_snake_dict, ec2_argument_spec, HAS_BOTO3, get_aws_connection_info, boto3_conn, AWSRetry) from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.aws.direct_connect import (delete_connection, +from ansible.module_utils.aws.direct_connect import (DirectConnectError, + delete_connection, delete_virtual_interface, disassociate_connection_and_lag) import traceback @@ -166,13 +167,6 @@ except: # handled by imported HAS_BOTO3 -class DirectConnectError(Exception): - def __init__(self, msg, last_traceback, response): - self.msg = msg - self.last_traceback = last_traceback - self.response = response - - def lag_status(client, lag_id): return lag_exists(client, lag_id=lag_id, lag_name=None, verify=False) @@ -230,7 +224,9 @@ def lag_exists(client, lag_id=None, lag_name=None, verify=True): def create_lag(client, num_connections, location, bandwidth, name, connection_id): if not name: - raise DirectConnectError(msg="Failed to create a Direct Connect link aggregation group: name required.") + raise DirectConnectError(msg="Failed to create a Direct Connect link aggregation group: name required.", + last_traceback=None, + exception="") parameters = dict(numberOfConnections=num_connections, location=location, @@ -272,10 +268,12 @@ def update_lag(client, lag_id, lag_name, min_links, num_connections, wait, wait_ start = time.time() if min_links and min_links > num_connections: - raise DirectConnectError(msg="The number of connections {0} must be greater than the minimum number of links " - "{1} to update the LAG {2}".format(num_connections, min_links, lag_id), - last_traceback=None, - response=None) + raise DirectConnectError( + msg="The number of connections {0} must be greater than the minimum number of links " + "{1} to update the LAG {2}".format(num_connections, min_links, lag_id), + last_traceback=None, + exception=None + ) while True: try: @@ -301,7 +299,9 @@ def lag_changed(current_status, name, min_links): def ensure_present(client, num_connections, lag_id, lag_name, location, bandwidth, connection_id, min_links, wait, wait_timeout): exists = lag_exists(client, lag_id, lag_name) if not exists and lag_id: - raise DirectConnectError(msg="The Direct Connect link aggregation group {0} does not exist.".format(lag_id), last_traceback=None, response="") + raise DirectConnectError(msg="The Direct Connect link aggregation group {0} does not exist.".format(lag_id), + last_traceback=None, + exception="") # the connection is found; get the latest state and see if it needs to be updated if exists: @@ -360,10 +360,10 @@ def ensure_absent(client, lag_id, lag_name, force_delete, delete_with_disassocia if any((latest_status['minimumLinks'], virtual_interfaces, connections)) and not force_delete: raise DirectConnectError(msg="There are a minimum number of links, hosted connections, or associated virtual interfaces for LAG {0}. " "To force deletion of the LAG use delete_force: True (if the LAG has virtual interfaces they will be deleted). " - "Optionally, to ensure hosted connections are deleted after disassocation use delete_with_disassocation: True " + "Optionally, to ensure hosted connections are deleted after disassociation use delete_with_disassociation: True " "and wait: True (as Virtual Interfaces may take a few moments to delete)".format(lag_id), last_traceback=None, - response=None) + exception=None) # update min_links to be 0 so we can remove the LAG update_lag(client, lag_id, None, 0, len(connections), wait, wait_timeout) @@ -382,7 +382,7 @@ def ensure_absent(client, lag_id, lag_name, force_delete, delete_with_disassocia try: delete_lag(client, lag_id) except DirectConnectError as e: - if ('until its Virtual Interfaces are deleted' in e.exception.response) and (time.time() - start_time < wait_timeout) and wait: + if ('until its Virtual Interfaces are deleted' in e.exception) and (time.time() - start_time < wait_timeout) and wait: continue else: return True @@ -421,6 +421,7 @@ def main(): endpoint=ec2_url, **aws_connect_kwargs) state = module.params.get('state') + response = {} try: if state == 'present': changed, lag_id = ensure_present(connection, @@ -442,10 +443,9 @@ def main(): delete_with_disassociation=module.params.get("delete_with_disassociation"), wait=module.params.get('wait'), wait_timeout=module.params.get('wait_timeout')) - response = {} except DirectConnectError as e: if e.last_traceback: - module.fail_json(msg=e.msg, exception=e.last_traceback, **camel_dict_to_snake_dict(e.exception.response)) + module.fail_json(msg=e.msg, exception=e.last_traceback, **camel_dict_to_snake_dict(e.exception)) else: module.fail_json(msg=e.msg)