From f76958ac2216af40a46209e1b6942e1756548734 Mon Sep 17 00:00:00 2001 From: abikouo Date: Wed, 9 Oct 2024 12:33:17 +0200 Subject: [PATCH] add changelog file --- .../fragments/migrate_ec2_vpc_egress_igw.yml | 5 ++ plugins/modules/ec2_vpc_egress_igw.py | 7 +- .../targets/ec2_vpc_egress_igw/aliases | 1 + .../targets/ec2_vpc_egress_igw/tasks/main.yml | 68 +++++++++++++++++-- 4 files changed, 71 insertions(+), 10 deletions(-) create mode 100644 changelogs/fragments/migrate_ec2_vpc_egress_igw.yml diff --git a/changelogs/fragments/migrate_ec2_vpc_egress_igw.yml b/changelogs/fragments/migrate_ec2_vpc_egress_igw.yml new file mode 100644 index 00000000000..87d05a0eac9 --- /dev/null +++ b/changelogs/fragments/migrate_ec2_vpc_egress_igw.yml @@ -0,0 +1,5 @@ +--- +major_changes: + - ec2_vpc_egress_igw - The module has been migrated from the ``community.aws`` collection. + Playbooks using the Fully Qualified Collection Name for this module should be + updated to use ``amazon.aws.ec2_vpc_egress_igw`` (https://api.github.com/repos/ansible-collections/amazon.aws/pulls/2327). diff --git a/plugins/modules/ec2_vpc_egress_igw.py b/plugins/modules/ec2_vpc_egress_igw.py index 0ecc2c04fc4..8330be96644 100644 --- a/plugins/modules/ec2_vpc_egress_igw.py +++ b/plugins/modules/ec2_vpc_egress_igw.py @@ -56,12 +56,12 @@ description: The ID of the Egress Only Internet Gateway or Null. returned: always type: str - sample: eigw-0e00cf111ba5bc11e + sample: "eigw-0e00cf111ba5bc11e" vpc_id: description: The ID of the VPC to attach or detach gateway from. returned: always type: str - sample: vpc-012345678 + sample: "vpc-012345678" tags: description: Any tags assigned to the internet gateway. returned: always @@ -80,9 +80,8 @@ from ansible_collections.amazon.aws.plugins.module_utils.ec2 import delete_egress_only_internet_gateway from ansible_collections.amazon.aws.plugins.module_utils.ec2 import describe_egress_only_internet_gateways from ansible_collections.amazon.aws.plugins.module_utils.ec2 import ensure_ec2_tags -from ansible_collections.amazon.aws.plugins.module_utils.tagging import boto3_tag_list_to_ansible_dict - from ansible_collections.amazon.aws.plugins.module_utils.modules import AnsibleAWSModule +from ansible_collections.amazon.aws.plugins.module_utils.tagging import boto3_tag_list_to_ansible_dict def delete_eigw(module: AnsibleAWSModule, connection, eigw_id: str) -> Dict[str, Union[str, bool]]: diff --git a/tests/integration/targets/ec2_vpc_egress_igw/aliases b/tests/integration/targets/ec2_vpc_egress_igw/aliases index 4ef4b2067d0..10761f9d65e 100644 --- a/tests/integration/targets/ec2_vpc_egress_igw/aliases +++ b/tests/integration/targets/ec2_vpc_egress_igw/aliases @@ -1 +1,2 @@ cloud/aws +ec2_vpc_egress_igw_info \ No newline at end of file diff --git a/tests/integration/targets/ec2_vpc_egress_igw/tasks/main.yml b/tests/integration/targets/ec2_vpc_egress_igw/tasks/main.yml index de3fd5fff47..db58384a65c 100644 --- a/tests/integration/targets/ec2_vpc_egress_igw/tasks/main.yml +++ b/tests/integration/targets/ec2_vpc_egress_igw/tasks/main.yml @@ -15,7 +15,7 @@ ignore_errors: true - name: Assert failure with no parameters - ansible.builtin.assert: + assert: that: - result is failed - 'result.msg == "missing required arguments: vpc_id"' @@ -29,7 +29,7 @@ ignore_errors: true - name: Assert failure with non-existent VPC ID - ansible.builtin.assert: + assert: that: - result is failed - e_msg in result.exception @@ -55,10 +55,15 @@ register: vpc_eigw_create_check_mode check_mode: true + - name: List all Egress only internet gateway + amazon.aws.ec2_vpc_egress_igw_info: + register: egress_only_igws + - name: Assert module returned changed and the Egress IGW was not created - ansible.builtin.assert: + assert: that: - vpc_eigw_create_check_mode is changed + - egress_only_igws.egress_only_internet_gateways | selectattr('attachments.0.vpc_id', 'equalto', vpc_result.vpc.id) | list == [] # # ============================================================ - name: Create egress-only internet gateway (expected changed=true) @@ -67,10 +72,15 @@ vpc_id: "{{ vpc_result.vpc.id }}" register: vpc_eigw_create + - name: List all Egress only internet gateway + amazon.aws.ec2_vpc_egress_igw_info: + register: egress_only_igws + - name: Assert module returned changed and the Egress IGW was not created ansible.builtin.assert: that: - vpc_eigw_create is changed + - egress_only_igws.egress_only_internet_gateways | selectattr('attachments.0.vpc_id', 'equalto', vpc_result.vpc.id) | list | length == 1 # # ============================================================ - name: Create egress-only internet gateway once again (idempotency) @@ -79,25 +89,35 @@ vpc_id: "{{ vpc_result.vpc.id }}" register: vpc_eigw_create_idempotency + - name: List all Egress only internet gateway + amazon.aws.ec2_vpc_egress_igw_info: + register: egress_only_igws + - name: Assert module returned changed and the Egress IGW was not created - assert: + ansible.builtin.assert: that: - vpc_eigw_create_idempotency is not changed - vpc_eigw_create_idempotency.gateway_id == vpc_eigw_create.gateway_id + - egress_only_igws.egress_only_internet_gateways | selectattr('attachments.0.vpc_id', 'equalto', vpc_result.vpc.id) | list | length == 1 # # ============================================================ - name: Delete egress-only internet gateway (check_mode) - ec2_vpc_egress_igw: + amazon.aws.ec2_vpc_egress_igw: state: absent vpc_id: "{{ vpc_result.vpc.id }}" register: vpc_eigw_delete_check_mode check_mode: true + - name: List all Egress only internet gateway + amazon.aws.ec2_vpc_egress_igw_info: + register: egress_only_igws + - name: Assert module returned changed and the Egress IGW was not created ansible.builtin.assert: that: - vpc_eigw_delete_check_mode is changed - vpc_eigw_create_idempotency.gateway_id == vpc_eigw_delete_check_mode.gateway_id + - egress_only_igws.egress_only_internet_gateways | selectattr('attachments.0.vpc_id', 'equalto', vpc_result.vpc.id) | list | length == 1 # # ============================================================ - name: Delete egress-only internet gateway once again (idempotency) @@ -106,15 +126,20 @@ vpc_id: "{{ vpc_result.vpc.id }}" register: vpc_eigw_delete + - name: List all Egress only internet gateway + amazon.aws.ec2_vpc_egress_igw_info: + register: egress_only_igws + - name: Assert module returned changed and the Egress IGW was not created ansible.builtin.assert: that: - vpc_eigw_delete is changed - vpc_eigw_create_idempotency.gateway_id == vpc_eigw_delete.gateway_id + - egress_only_igws.egress_only_internet_gateways | selectattr('attachments.0.vpc_id', 'equalto', vpc_result.vpc.id) | list == [] # # ============================================================ - name: Delete egress-only internet gateway - ec2_vpc_egress_igw: + amazon.aws.ec2_vpc_egress_igw: state: absent vpc_id: "{{ vpc_result.vpc.id }}" register: vpc_eigw_delete_idempotency @@ -134,10 +159,20 @@ VpcId: "{{ vpc_result.vpc.id }}" register: create_with_tags + - name: List all Egress only internet gateway + amazon.aws.ec2_vpc_egress_igw_info: + register: egress_only_igws + - name: Assert that the Egress IGW was created with tags ansible.builtin.assert: that: - create_with_tags is changed + - egress_info.tags == resource_tags + vars: + egress_info: "{{ egress_only_igws.egress_only_internet_gateways | selectattr('attachments.0.vpc_id', 'equalto', vpc_result.vpc.id) | list | first }}" + resource_tags: + ResourcePrefix: "{{ resource_prefix }}" + VpcId: "{{ vpc_result.vpc.id }}" - name: Trying to update tags (no change) amazon.aws.ec2_vpc_egress_igw: @@ -147,10 +182,20 @@ VpcId: "{{ vpc_result.vpc.id }}" register: update_tags + - name: List all Egress only internet gateway + amazon.aws.ec2_vpc_egress_igw_info: + register: egress_only_igws + - name: Assert that the Egress IGW was not updated ansible.builtin.assert: that: - update_tags is not changed + - egress_info.tags == resource_tags + vars: + egress_info: "{{ egress_only_igws.egress_only_internet_gateways | selectattr('attachments.0.vpc_id', 'equalto', vpc_result.vpc.id) | list | first }}" + resource_tags: + ResourcePrefix: "{{ resource_prefix }}" + VpcId: "{{ vpc_result.vpc.id }}" - name: Add tag to existing tags amazon.aws.ec2_vpc_egress_igw: @@ -160,10 +205,21 @@ purge_tags: false register: add_tag + - name: List all Egress only internet gateway + amazon.aws.ec2_vpc_egress_igw_info: + register: egress_only_igws + - name: Assert that the Egress IGW was created with tags ansible.builtin.assert: that: - add_tag is changed + - egress_info.tags == resource_tags + vars: + egress_info: "{{ egress_only_igws.egress_only_internet_gateways | selectattr('attachments.0.vpc_id', 'equalto', vpc_result.vpc.id) | list | first }}" + resource_tags: + ResourcePrefix: "{{ resource_prefix }}" + VpcId: "{{ vpc_result.vpc.id }}" + Phase: integration always: # ============================================================