diff --git a/tests/integration/targets/ec2_placement_group/tasks/env_cleanup.yml b/tests/integration/targets/ec2_placement_group/tasks/env_cleanup.yml index ce626b69c3..6df5ad7d82 100644 --- a/tests/integration/targets/ec2_placement_group/tasks/env_cleanup.yml +++ b/tests/integration/targets/ec2_placement_group/tasks/env_cleanup.yml @@ -1,7 +1,7 @@ - name: remove any instances in the test VPC ec2_instance: filters: - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' state: absent register: removed until: removed is not failed @@ -11,23 +11,23 @@ - name: Get ENIs ec2_eni_info: filters: - vpc-id: "{{ testing_vpc.vpc.id }}" + vpc-id: '{{ testing_vpc.vpc.id }}' register: enis - name: delete all ENIs ec2_eni: - eni_id: "{{ item.id }}" + eni_id: '{{ item.id }}' state: absent until: removed is not failed - with_items: "{{ enis.network_interfaces }}" + with_items: '{{ enis.network_interfaces }}' ignore_errors: yes retries: 10 - name: remove the security group ec2_security_group: - name: "{{ resource_prefix }}-sg" + name: '{{ resource_prefix }}-sg' description: a security group for ansible tests - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' state: absent register: removed until: removed is not failed @@ -37,15 +37,15 @@ - name: remove routing rules ec2_vpc_route_table: state: absent - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' tags: - created: "{{ resource_prefix }}-route" + created: '{{ resource_prefix }}-route' routes: - - dest: 0.0.0.0/0 - gateway_id: "{{ igw.gateway_id }}" + - dest: 0.0.0.0/0 + gateway_id: '{{ igw.gateway_id }}' subnets: - - "{{ testing_subnet_a.subnet.id }}" - - "{{ testing_subnet_b.subnet.id }}" + - '{{ testing_subnet_a.subnet.id }}' + - '{{ testing_subnet_b.subnet.id }}' register: removed until: removed is not failed ignore_errors: yes @@ -53,7 +53,7 @@ - name: remove internet gateway ec2_vpc_igw: - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' state: absent register: removed until: removed is not failed @@ -63,7 +63,7 @@ - name: remove subnet A ec2_vpc_subnet: state: absent - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' cidr: 10.22.32.0/24 register: removed until: removed is not failed @@ -73,7 +73,7 @@ - name: remove subnet B ec2_vpc_subnet: state: absent - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' cidr: 10.22.33.0/24 register: removed until: removed is not failed @@ -82,7 +82,7 @@ - name: remove the VPC ec2_vpc_net: - name: "{{ resource_prefix }}-vpc" + name: '{{ resource_prefix }}-vpc' cidr_block: 10.22.32.0/23 state: absent tags: diff --git a/tests/integration/targets/ec2_placement_group/tasks/env_setup.yml b/tests/integration/targets/ec2_placement_group/tasks/env_setup.yml index d48bae66c8..5fe91b866d 100644 --- a/tests/integration/targets/ec2_placement_group/tasks/env_setup.yml +++ b/tests/integration/targets/ec2_placement_group/tasks/env_setup.yml @@ -1,6 +1,6 @@ - name: Create VPC for use in testing ec2_vpc_net: - name: "{{ resource_prefix }}-vpc" + name: '{{ resource_prefix }}-vpc' cidr_block: 10.22.32.0/23 tags: Name: Ansible ec2_lc Testing VPC @@ -9,7 +9,7 @@ - name: Create internet gateway for use in testing ec2_vpc_igw: - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' state: present tags: Name: Ansible ec2_lc Testing gateway @@ -18,47 +18,47 @@ - name: Create default subnet in zone A ec2_vpc_subnet: state: present - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' cidr: 10.22.32.0/24 - az: "{{ aws_region }}a" + az: '{{ aws_region }}a' resource_tags: - Name: "{{ resource_prefix }}-subnet-a" + Name: '{{ resource_prefix }}-subnet-a' register: testing_subnet_a - name: Create secondary subnet in zone B ec2_vpc_subnet: state: present - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' cidr: 10.22.33.0/24 - az: "{{ aws_region }}b" + az: '{{ aws_region }}b' resource_tags: - Name: "{{ resource_prefix }}-subnet-b" + Name: '{{ resource_prefix }}-subnet-b' register: testing_subnet_b - name: create routing rules ec2_vpc_route_table: - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' tags: - created: "{{ resource_prefix }}-route" + created: '{{ resource_prefix }}-route' routes: - - dest: 0.0.0.0/0 - gateway_id: "{{ igw.gateway_id }}" + - dest: 0.0.0.0/0 + gateway_id: '{{ igw.gateway_id }}' subnets: - - "{{ testing_subnet_a.subnet.id }}" - - "{{ testing_subnet_b.subnet.id }}" + - '{{ testing_subnet_a.subnet.id }}' + - '{{ testing_subnet_b.subnet.id }}' - name: create a security group with the vpc ec2_security_group: - name: "{{ resource_prefix }}-sg" + name: '{{ resource_prefix }}-sg' description: a security group for ansible tests - vpc_id: "{{ testing_vpc.vpc.id }}" + vpc_id: '{{ testing_vpc.vpc.id }}' rules: - - proto: tcp - from_port: 22 - to_port: 22 - cidr_ip: 0.0.0.0/0 - - proto: tcp - from_port: 80 - to_port: 80 - cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 22 + to_port: 22 + cidr_ip: 0.0.0.0/0 + - proto: tcp + from_port: 80 + to_port: 80 + cidr_ip: 0.0.0.0/0 register: sg diff --git a/tests/integration/targets/ec2_placement_group/tasks/main.yml b/tests/integration/targets/ec2_placement_group/tasks/main.yml index eec1b168ef..4771c24ce3 100644 --- a/tests/integration/targets/ec2_placement_group/tasks/main.yml +++ b/tests/integration/targets/ec2_placement_group/tasks/main.yml @@ -1,557 +1,559 @@ - name: run ec2_placement_group tests module_defaults: group/aws: - access_key: "{{ aws_access_key }}" - secret_key: "{{ aws_secret_key }}" - session_token: "{{ security_token | default(omit) }}" - region: "{{ aws_region }}" - collections: - - amazon.aws + access_key: '{{ aws_access_key }}' + secret_key: '{{ aws_secret_key }}' + session_token: '{{ security_token | default(omit) }}' + region: '{{ aws_region }}' vars: placement_group_names: [] block: - - name: set up environment for testing. - include_tasks: env_setup.yml - - - name: Create a placement group 1 - check_mode - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg1' - state: present - check_mode: true - register: pg_1_create_check_mode - - - assert: - that: - - pg_1_create_check_mode is changed - - pg_1_create_check_mode.placement_group.name == resource_prefix ~ '-pg1' - - pg_1_create_check_mode.placement_group.state == "DryRun" - - '"ec2:CreatePlacementGroup" in pg_1_create_check_mode.resource_actions' - - - name: Create a placement group 1 - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg1' - state: present - register: pg_1_create - - - set_fact: - placement_group_names: "{{ placement_group_names + [pg_1_create.placement_group.name] }}" - - - assert: - that: - - pg_1_create is changed - - pg_1_create.placement_group.name == resource_prefix ~ '-pg1' - - pg_1_create.placement_group.state == "available" - - '"ec2:CreatePlacementGroup" in pg_1_create.resource_actions' - - - name: Gather information about placement group 1 - community.aws.ec2_placement_group_info: - names: - - '{{ resource_prefix }}-pg1' - register: pg_1_info_result - - - assert: - that: - - pg_1_info_result is not changed - - pg_1_info_result.placement_groups[0].name == resource_prefix ~ '-pg1' - - pg_1_info_result.placement_groups[0].state == "available" - - pg_1_info_result.placement_groups[0].strategy == "cluster" - - '"ec2:DescribePlacementGroups" in pg_1_info_result.resource_actions' - - - name: Create a placement group 1 - Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg1' - state: present - register: pg_1_create - - - assert: - that: - - pg_1_create is not changed - - pg_1_create.placement_group.name == resource_prefix ~ '-pg1' - - pg_1_create.placement_group.state == "available" - - '"ec2:CreatePlacementGroup" not in pg_1_create.resource_actions' - - - name: Create a placement group 1 - check_mode Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg1' - state: present - check_mode: true - register: pg_1_create_check_mode_idem - - - assert: - that: - - pg_1_create_check_mode_idem is not changed - - pg_1_create_check_mode_idem.placement_group.name == resource_prefix ~ '-pg1' - - pg_1_create_check_mode_idem.placement_group.state == "available" - - '"ec2:CreatePlacementGroup" not in pg_1_create_check_mode_idem.resource_actions' - - - name: Create a placement group 2 - check_mode - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg2' - state: present - strategy: spread - check_mode: true - register: pg_2_create_check_mode - - - assert: - that: - - pg_2_create_check_mode is changed - - pg_2_create_check_mode.placement_group.name == resource_prefix ~ '-pg2' - - pg_2_create_check_mode.placement_group.state == "DryRun" - - '"ec2:CreatePlacementGroup" in pg_2_create_check_mode.resource_actions' - - - name: Create a placement group 2 with spread strategy - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg2' - state: present - strategy: spread - register: pg_2_create - - - assert: - that: - - pg_2_create is changed - - pg_2_create.placement_group.name == resource_prefix ~ '-pg2' - - pg_2_create.placement_group.state == "available" - - '"ec2:CreatePlacementGroup" in pg_2_create.resource_actions' - - - set_fact: - placement_group_names: "{{ placement_group_names + [pg_2_create.placement_group.name] }}" - - - name: Gather information about placement group 2 - community.aws.ec2_placement_group_info: - names: - - '{{ resource_prefix }}-pg2' - register: pg_2_info_result - - - assert: - that: - - pg_2_info_result is not changed - - pg_2_info_result.placement_groups[0].name == resource_prefix ~ '-pg2' - - pg_2_info_result.placement_groups[0].state == "available" - - pg_2_info_result.placement_groups[0].strategy == "spread" - - '"ec2:DescribePlacementGroups" in pg_2_info_result.resource_actions' - - - name: Create a placement group 2 with spread strategy - Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg2' - state: present - strategy: spread - register: pg_2_create - - - assert: - that: - - pg_2_create is not changed - - pg_2_create.placement_group.name == resource_prefix ~ '-pg2' - - pg_2_create.placement_group.state == "available" - - '"ec2:CreatePlacementGroup" not in pg_2_create.resource_actions' - - - name: Create a placement group 2 - check_mode Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg2' - state: present - strategy: spread - check_mode: true - register: pg_2_create_check_mode_idem - - - assert: - that: - - pg_2_create_check_mode_idem is not changed - - pg_2_create_check_mode_idem.placement_group.name == resource_prefix ~ '-pg2' - - pg_2_create_check_mode_idem.placement_group.state == "available" - - '"ec2:CreatePlacementGroup" not in pg_2_create_check_mode_idem.resource_actions' - - - name: Create a placement group 3 - check_mode - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg3' - state: present - strategy: partition - partition_count: 4 - check_mode: true - register: pg_3_create_check_mode - - - assert: - that: - - pg_3_create_check_mode is changed - - pg_3_create_check_mode.placement_group.name == resource_prefix ~ '-pg3' - - pg_3_create_check_mode.placement_group.state == "DryRun" - - '"ec2:CreatePlacementGroup" in pg_3_create_check_mode.resource_actions' - - - name: Create a placement group 3 with Partition strategy - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg3' - state: present - strategy: partition - partition_count: 4 - register: pg_3_create - - - assert: - that: - - pg_3_create is changed - - pg_3_create.placement_group.name == resource_prefix ~ '-pg3' - - pg_3_create.placement_group.state == "available" - - '"ec2:CreatePlacementGroup" in pg_3_create.resource_actions' - - - set_fact: - placement_group_names: "{{ placement_group_names + [pg_3_create.placement_group.name] }}" - - - - name: Gather information about placement group 3 - community.aws.ec2_placement_group_info: - names: - - '{{ resource_prefix }}-pg3' - register: pg_3_info_result - - - assert: - that: - - pg_3_info_result is not changed - - pg_3_info_result.placement_groups[0].name == resource_prefix ~ '-pg3' - - pg_3_info_result.placement_groups[0].state == "available" - - pg_3_info_result.placement_groups[0].strategy == "partition" - - '"ec2:DescribePlacementGroups" in pg_3_info_result.resource_actions' - - - name: Create a placement group 3 with Partition strategy - Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg3' - state: present - strategy: partition - partition_count: 4 - register: pg_3_create - - - assert: - that: - - pg_3_create is not changed - - pg_3_create.placement_group.name == resource_prefix ~ '-pg3' - - pg_3_create.placement_group.state == "available" - - '"ec2:CreatePlacementGroup" not in pg_3_create.resource_actions' - - - name: Create a placement group 3 - check_mode Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg3' - state: present - strategy: partition - partition_count: 4 - check_mode: true - register: pg_3_create_check_mode_idem - - - assert: - that: - - pg_3_create_check_mode_idem is not changed - - pg_3_create_check_mode_idem.placement_group.name == resource_prefix ~ '-pg3' - - pg_3_create_check_mode_idem.placement_group.state == "available" - - '"ec2:CreatePlacementGroup" not in pg_3_create_check_mode_idem.resource_actions' - - - name: Create a placement group 4 with tags - check_mode - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg4' - state: present - strategy: cluster - tags: - foo: test1 - bar: test2 - check_mode: true - register: pg_4_create_check_mode - - - assert: - that: - - pg_4_create_check_mode is changed - - pg_4_create_check_mode.placement_group.name == resource_prefix ~ '-pg4' - - pg_4_create_check_mode.placement_group.state == "DryRun" - - pg_4_create_check_mode.placement_group.tags.foo == "test1" - - pg_4_create_check_mode.placement_group.tags.bar == "test2" - - '"ec2:CreatePlacementGroup" in pg_4_create_check_mode.resource_actions' - - - name: Create a placement group 4 with tags - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg4' - state: present - strategy: cluster - tags: - foo: test1 - bar: test2 - register: pg_4_create - - - assert: - that: - - pg_4_create is changed - - pg_4_create.placement_group.name == resource_prefix ~ '-pg4' - - pg_4_create.placement_group.state == "available" - - pg_4_create.placement_group.tags.foo == "test1" - - pg_4_create.placement_group.tags.bar == "test2" - - '"ec2:CreatePlacementGroup" in pg_4_create.resource_actions' - - - set_fact: - placement_group_names: "{{ placement_group_names + [pg_4_create.placement_group.name] }}" - - - name: Gather information about placement group 4 - community.aws.ec2_placement_group_info: - names: - - '{{ resource_prefix }}-pg4' - register: pg_4_info_result - - - assert: - that: - - pg_4_info_result is not changed - - pg_4_info_result.placement_groups[0].name == resource_prefix ~ '-pg4' - - pg_4_info_result.placement_groups[0].state == "available" - - pg_4_info_result.placement_groups[0].strategy == "cluster" - - pg_4_info_result.placement_groups[0].tags.foo == "test1" - - pg_4_info_result.placement_groups[0].tags.bar == "test2" - - '"ec2:DescribePlacementGroups" in pg_4_info_result.resource_actions' - - - name: Create a placement group 4 with tags - Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg4' - state: present - strategy: cluster - tags: - foo: test1 - bar: test2 - register: pg_4_create - - - assert: - that: - - pg_4_create is not changed - - pg_4_create.placement_group.name == resource_prefix ~ '-pg4' - - pg_4_create.placement_group.state == "available" - - pg_4_create.placement_group.strategy == "cluster" - - pg_4_create.placement_group.tags.foo == "test1" - - pg_4_create.placement_group.tags.bar == "test2" - - '"ec2:CreatePlacementGroup" not in pg_4_create.resource_actions' - - - name: Create a placement group 4 with tags - check_mode Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg4' - state: present - strategy: cluster - tags: - foo: test1 - bar: test2 - check_mode: true - register: pg_4_create_check_mode_idem - - - assert: - that: - - pg_4_create_check_mode_idem is not changed - - pg_4_create_check_mode_idem.placement_group.name == resource_prefix ~ '-pg4' - - pg_4_create_check_mode_idem.placement_group.state == "available" - - pg_4_create_check_mode_idem.placement_group.strategy == "cluster" - - pg_4_create_check_mode_idem.placement_group.tags.foo == "test1" - - pg_4_create_check_mode_idem.placement_group.tags.bar == "test2" - - '"ec2:CreatePlacementGroup" not in pg_4_create_check_mode_idem.resource_actions' - - - name: List all placement groups. - community.aws.ec2_placement_group_info: - register: all_ec2_placement_groups + - name: set up environment for testing. + include_tasks: env_setup.yml + + - name: Create a placement group 1 - check_mode + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg1' + state: present + check_mode: true + register: pg_1_create_check_mode + + - assert: + that: + - pg_1_create_check_mode is changed + - pg_1_create_check_mode.placement_group.name == resource_prefix ~ '-pg1' + - pg_1_create_check_mode.placement_group.state == "DryRun" + - '"ec2:CreatePlacementGroup" in pg_1_create_check_mode.resource_actions' + + - name: Create a placement group 1 + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg1' + state: present + register: pg_1_create + + - set_fact: + placement_group_names: '{{ placement_group_names + [pg_1_create.placement_group.name] + }}' + + - assert: + that: + - pg_1_create is changed + - pg_1_create.placement_group.name == resource_prefix ~ '-pg1' + - pg_1_create.placement_group.state == "available" + - '"ec2:CreatePlacementGroup" in pg_1_create.resource_actions' + + - name: Gather information about placement group 1 + community.aws.ec2_placement_group_info: + names: + - '{{ resource_prefix }}-pg1' + register: pg_1_info_result + + - assert: + that: + - pg_1_info_result is not changed + - pg_1_info_result.placement_groups[0].name == resource_prefix ~ '-pg1' + - pg_1_info_result.placement_groups[0].state == "available" + - pg_1_info_result.placement_groups[0].strategy == "cluster" + - '"ec2:DescribePlacementGroups" in pg_1_info_result.resource_actions' + + - name: Create a placement group 1 - Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg1' + state: present + register: pg_1_create + + - assert: + that: + - pg_1_create is not changed + - pg_1_create.placement_group.name == resource_prefix ~ '-pg1' + - pg_1_create.placement_group.state == "available" + - '"ec2:CreatePlacementGroup" not in pg_1_create.resource_actions' + + - name: Create a placement group 1 - check_mode Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg1' + state: present + check_mode: true + register: pg_1_create_check_mode_idem + + - assert: + that: + - pg_1_create_check_mode_idem is not changed + - pg_1_create_check_mode_idem.placement_group.name == resource_prefix ~ '-pg1' + - pg_1_create_check_mode_idem.placement_group.state == "available" + - '"ec2:CreatePlacementGroup" not in pg_1_create_check_mode_idem.resource_actions' + + - name: Create a placement group 2 - check_mode + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg2' + state: present + strategy: spread + check_mode: true + register: pg_2_create_check_mode + + - assert: + that: + - pg_2_create_check_mode is changed + - pg_2_create_check_mode.placement_group.name == resource_prefix ~ '-pg2' + - pg_2_create_check_mode.placement_group.state == "DryRun" + - '"ec2:CreatePlacementGroup" in pg_2_create_check_mode.resource_actions' + + - name: Create a placement group 2 with spread strategy + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg2' + state: present + strategy: spread + register: pg_2_create + + - assert: + that: + - pg_2_create is changed + - pg_2_create.placement_group.name == resource_prefix ~ '-pg2' + - pg_2_create.placement_group.state == "available" + - '"ec2:CreatePlacementGroup" in pg_2_create.resource_actions' + + - set_fact: + placement_group_names: '{{ placement_group_names + [pg_2_create.placement_group.name] + }}' + + - name: Gather information about placement group 2 + community.aws.ec2_placement_group_info: + names: + - '{{ resource_prefix }}-pg2' + register: pg_2_info_result + + - assert: + that: + - pg_2_info_result is not changed + - pg_2_info_result.placement_groups[0].name == resource_prefix ~ '-pg2' + - pg_2_info_result.placement_groups[0].state == "available" + - pg_2_info_result.placement_groups[0].strategy == "spread" + - '"ec2:DescribePlacementGroups" in pg_2_info_result.resource_actions' + + - name: Create a placement group 2 with spread strategy - Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg2' + state: present + strategy: spread + register: pg_2_create + + - assert: + that: + - pg_2_create is not changed + - pg_2_create.placement_group.name == resource_prefix ~ '-pg2' + - pg_2_create.placement_group.state == "available" + - '"ec2:CreatePlacementGroup" not in pg_2_create.resource_actions' + + - name: Create a placement group 2 - check_mode Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg2' + state: present + strategy: spread + check_mode: true + register: pg_2_create_check_mode_idem + + - assert: + that: + - pg_2_create_check_mode_idem is not changed + - pg_2_create_check_mode_idem.placement_group.name == resource_prefix ~ '-pg2' + - pg_2_create_check_mode_idem.placement_group.state == "available" + - '"ec2:CreatePlacementGroup" not in pg_2_create_check_mode_idem.resource_actions' + + - name: Create a placement group 3 - check_mode + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg3' + state: present + strategy: partition + partition_count: 4 + check_mode: true + register: pg_3_create_check_mode + + - assert: + that: + - pg_3_create_check_mode is changed + - pg_3_create_check_mode.placement_group.name == resource_prefix ~ '-pg3' + - pg_3_create_check_mode.placement_group.state == "DryRun" + - '"ec2:CreatePlacementGroup" in pg_3_create_check_mode.resource_actions' + + - name: Create a placement group 3 with Partition strategy + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg3' + state: present + strategy: partition + partition_count: 4 + register: pg_3_create + + - assert: + that: + - pg_3_create is changed + - pg_3_create.placement_group.name == resource_prefix ~ '-pg3' + - pg_3_create.placement_group.state == "available" + - '"ec2:CreatePlacementGroup" in pg_3_create.resource_actions' + + - set_fact: + placement_group_names: '{{ placement_group_names + [pg_3_create.placement_group.name] + }}' + + + - name: Gather information about placement group 3 + community.aws.ec2_placement_group_info: + names: + - '{{ resource_prefix }}-pg3' + register: pg_3_info_result + + - assert: + that: + - pg_3_info_result is not changed + - pg_3_info_result.placement_groups[0].name == resource_prefix ~ '-pg3' + - pg_3_info_result.placement_groups[0].state == "available" + - pg_3_info_result.placement_groups[0].strategy == "partition" + - '"ec2:DescribePlacementGroups" in pg_3_info_result.resource_actions' + + - name: Create a placement group 3 with Partition strategy - Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg3' + state: present + strategy: partition + partition_count: 4 + register: pg_3_create + + - assert: + that: + - pg_3_create is not changed + - pg_3_create.placement_group.name == resource_prefix ~ '-pg3' + - pg_3_create.placement_group.state == "available" + - '"ec2:CreatePlacementGroup" not in pg_3_create.resource_actions' + + - name: Create a placement group 3 - check_mode Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg3' + state: present + strategy: partition + partition_count: 4 + check_mode: true + register: pg_3_create_check_mode_idem + + - assert: + that: + - pg_3_create_check_mode_idem is not changed + - pg_3_create_check_mode_idem.placement_group.name == resource_prefix ~ '-pg3' + - pg_3_create_check_mode_idem.placement_group.state == "available" + - '"ec2:CreatePlacementGroup" not in pg_3_create_check_mode_idem.resource_actions' + + - name: Create a placement group 4 with tags - check_mode + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg4' + state: present + strategy: cluster + tags: + foo: test1 + bar: test2 + check_mode: true + register: pg_4_create_check_mode + + - assert: + that: + - pg_4_create_check_mode is changed + - pg_4_create_check_mode.placement_group.name == resource_prefix ~ '-pg4' + - pg_4_create_check_mode.placement_group.state == "DryRun" + - pg_4_create_check_mode.placement_group.tags.foo == "test1" + - pg_4_create_check_mode.placement_group.tags.bar == "test2" + - '"ec2:CreatePlacementGroup" in pg_4_create_check_mode.resource_actions' + + - name: Create a placement group 4 with tags + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg4' + state: present + strategy: cluster + tags: + foo: test1 + bar: test2 + register: pg_4_create + + - assert: + that: + - pg_4_create is changed + - pg_4_create.placement_group.name == resource_prefix ~ '-pg4' + - pg_4_create.placement_group.state == "available" + - pg_4_create.placement_group.tags.foo == "test1" + - pg_4_create.placement_group.tags.bar == "test2" + - '"ec2:CreatePlacementGroup" in pg_4_create.resource_actions' + + - set_fact: + placement_group_names: '{{ placement_group_names + [pg_4_create.placement_group.name] + }}' + + - name: Gather information about placement group 4 + community.aws.ec2_placement_group_info: + names: + - '{{ resource_prefix }}-pg4' + register: pg_4_info_result + + - assert: + that: + - pg_4_info_result is not changed + - pg_4_info_result.placement_groups[0].name == resource_prefix ~ '-pg4' + - pg_4_info_result.placement_groups[0].state == "available" + - pg_4_info_result.placement_groups[0].strategy == "cluster" + - pg_4_info_result.placement_groups[0].tags.foo == "test1" + - pg_4_info_result.placement_groups[0].tags.bar == "test2" + - '"ec2:DescribePlacementGroups" in pg_4_info_result.resource_actions' + + - name: Create a placement group 4 with tags - Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg4' + state: present + strategy: cluster + tags: + foo: test1 + bar: test2 + register: pg_4_create + + - assert: + that: + - pg_4_create is not changed + - pg_4_create.placement_group.name == resource_prefix ~ '-pg4' + - pg_4_create.placement_group.state == "available" + - pg_4_create.placement_group.strategy == "cluster" + - pg_4_create.placement_group.tags.foo == "test1" + - pg_4_create.placement_group.tags.bar == "test2" + - '"ec2:CreatePlacementGroup" not in pg_4_create.resource_actions' + + - name: Create a placement group 4 with tags - check_mode Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg4' + state: present + strategy: cluster + tags: + foo: test1 + bar: test2 + check_mode: true + register: pg_4_create_check_mode_idem + + - assert: + that: + - pg_4_create_check_mode_idem is not changed + - pg_4_create_check_mode_idem.placement_group.name == resource_prefix ~ '-pg4' + - pg_4_create_check_mode_idem.placement_group.state == "available" + - pg_4_create_check_mode_idem.placement_group.strategy == "cluster" + - pg_4_create_check_mode_idem.placement_group.tags.foo == "test1" + - pg_4_create_check_mode_idem.placement_group.tags.bar == "test2" + - '"ec2:CreatePlacementGroup" not in pg_4_create_check_mode_idem.resource_actions' + + - name: List all placement groups. + community.aws.ec2_placement_group_info: + register: all_ec2_placement_groups # Delete Placement Group ========================================== # On using check_mode for delete placement group operation # If operation would have succeeded, the error response is DryRunOperation. # Otherwise, it is UnauthorizedOperation . - - name: Delete a placement group 1 - check_mode - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg1' - state: absent - check_mode: true - register: pg_1_delete_check_mode - ignore_errors: true - - - assert: - that: - - pg_1_delete_check_mode is not changed - - pg_1_delete_check_mode.error.code == 'DryRunOperation' - - '"ec2:DeletePlacementGroup" in pg_1_delete_check_mode.resource_actions' - - - name: Delete a placement group 1 - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg1' - state: absent - register: pg_1_delete - - - assert: - that: - - pg_1_delete is changed - - '"ec2:DeletePlacementGroup" in pg_1_delete.resource_actions' - - - name: Delete a placement group 1 - Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg1' - state: absent - register: pg_1_delete - - - assert: - that: - - pg_1_delete is not changed - - '"ec2:DeletePlacementGroup" not in pg_1_delete.resource_actions' - - - name: Delete a placement group 1 - check_mode Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg1' - state: absent - check_mode: true - register: pg_1_delete_check_mode_idem - ignore_errors: true - - - assert: - that: - - pg_1_delete_check_mode_idem is not changed - - '"ec2:DeletePlacementGroup" not in pg_1_delete_check_mode_idem.resource_actions' - - - name: Delete a placement group 2 - check_mode - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg2' - state: absent - check_mode: true - register: pg_2_delete_check_mode - ignore_errors: true - - - assert: - that: - - pg_2_delete_check_mode is not changed - - pg_2_delete_check_mode.error.code == 'DryRunOperation' - - '"ec2:DeletePlacementGroup" in pg_2_delete_check_mode.resource_actions' - - - name: Delete a placement group 2 - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg2' - state: absent - register: pg_2_delete - - - assert: - that: - - pg_2_delete is changed - - '"ec2:DeletePlacementGroup" in pg_2_delete.resource_actions' - - - name: Delete a placement group 2 - Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg2' - state: absent - register: pg_2_delete - - - assert: - that: - - pg_2_delete is not changed - - '"ec2:DeletePlacementGroup" not in pg_2_delete.resource_actions' - - - name: Delete a placement group 2 - check_mode Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg2' - state: absent - check_mode: true - register: pg_2_delete_check_mode_idem - ignore_errors: true - - - assert: - that: - - pg_2_delete_check_mode_idem is not changed - - '"ec2:DeletePlacementGroup" not in pg_2_delete_check_mode_idem.resource_actions' - - - name: Delete a placement group 3 - check_mode - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg3' - state: absent - check_mode: true - register: pg_3_delete_check_mode - ignore_errors: true - - - assert: - that: - - pg_3_delete_check_mode is not changed - - pg_3_delete_check_mode.error.code == 'DryRunOperation' - - '"ec2:DeletePlacementGroup" in pg_3_delete_check_mode.resource_actions' - - - name: Delete a placement group 3 - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg3' - state: absent - register: pg_3_delete - - - assert: - that: - - pg_3_delete is changed - - '"ec2:DeletePlacementGroup" in pg_3_delete.resource_actions' - - - name: Delete a placement group 3 - Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg3' - state: absent - register: pg_3_delete - - - assert: - that: - - pg_3_delete is not changed - - '"ec2:DeletePlacementGroup" not in pg_3_delete.resource_actions' - - - name: Delete a placement group 3 - check_mode Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg3' - state: absent - check_mode: true - register: pg_3_delete_check_mode_idem - ignore_errors: true - - - assert: - that: - - pg_3_delete_check_mode_idem is not changed - - '"ec2:DeletePlacementGroup" not in pg_3_delete_check_mode_idem.resource_actions' - - - name: Delete a placement group 4 - check_mode - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg4' - state: absent - check_mode: true - register: pg_4_delete_check_mode - ignore_errors: true - - - assert: - that: - - pg_4_delete_check_mode is not changed - - pg_4_delete_check_mode.error.code == 'DryRunOperation' - - '"ec2:DeletePlacementGroup" in pg_4_delete_check_mode.resource_actions' - - - - name: Delete a placement group 4 - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg4' - state: absent - register: pg_4_delete - - - assert: - that: - - pg_4_delete is changed - - '"ec2:DeletePlacementGroup" in pg_4_delete.resource_actions' - - - name: Delete a placement group 4 - Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg4' - state: absent - register: pg_4_delete - - - assert: - that: - - pg_4_delete is not changed - - '"ec2:DeletePlacementGroup" not in pg_4_delete.resource_actions' - - - name: Delete a placement group 4 - check_mode Idempotency - community.aws.ec2_placement_group: - name: '{{ resource_prefix }}-pg4' - state: absent - check_mode: true - register: pg_4_delete_check_mode_idem - ignore_errors: true - - - assert: - that: - - pg_4_delete_check_mode_idem is not changed - - '"ec2:DeletePlacementGroup" not in pg_4_delete_check_mode_idem.resource_actions' + - name: Delete a placement group 1 - check_mode + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg1' + state: absent + check_mode: true + register: pg_1_delete_check_mode + ignore_errors: true + + - assert: + that: + - pg_1_delete_check_mode is not changed + - pg_1_delete_check_mode.error.code == 'DryRunOperation' + - '"ec2:DeletePlacementGroup" in pg_1_delete_check_mode.resource_actions' + + - name: Delete a placement group 1 + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg1' + state: absent + register: pg_1_delete + + - assert: + that: + - pg_1_delete is changed + - '"ec2:DeletePlacementGroup" in pg_1_delete.resource_actions' + + - name: Delete a placement group 1 - Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg1' + state: absent + register: pg_1_delete + + - assert: + that: + - pg_1_delete is not changed + - '"ec2:DeletePlacementGroup" not in pg_1_delete.resource_actions' + + - name: Delete a placement group 1 - check_mode Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg1' + state: absent + check_mode: true + register: pg_1_delete_check_mode_idem + ignore_errors: true + + - assert: + that: + - pg_1_delete_check_mode_idem is not changed + - '"ec2:DeletePlacementGroup" not in pg_1_delete_check_mode_idem.resource_actions' + + - name: Delete a placement group 2 - check_mode + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg2' + state: absent + check_mode: true + register: pg_2_delete_check_mode + ignore_errors: true + + - assert: + that: + - pg_2_delete_check_mode is not changed + - pg_2_delete_check_mode.error.code == 'DryRunOperation' + - '"ec2:DeletePlacementGroup" in pg_2_delete_check_mode.resource_actions' + + - name: Delete a placement group 2 + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg2' + state: absent + register: pg_2_delete + + - assert: + that: + - pg_2_delete is changed + - '"ec2:DeletePlacementGroup" in pg_2_delete.resource_actions' + + - name: Delete a placement group 2 - Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg2' + state: absent + register: pg_2_delete + + - assert: + that: + - pg_2_delete is not changed + - '"ec2:DeletePlacementGroup" not in pg_2_delete.resource_actions' + + - name: Delete a placement group 2 - check_mode Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg2' + state: absent + check_mode: true + register: pg_2_delete_check_mode_idem + ignore_errors: true + + - assert: + that: + - pg_2_delete_check_mode_idem is not changed + - '"ec2:DeletePlacementGroup" not in pg_2_delete_check_mode_idem.resource_actions' + + - name: Delete a placement group 3 - check_mode + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg3' + state: absent + check_mode: true + register: pg_3_delete_check_mode + ignore_errors: true + + - assert: + that: + - pg_3_delete_check_mode is not changed + - pg_3_delete_check_mode.error.code == 'DryRunOperation' + - '"ec2:DeletePlacementGroup" in pg_3_delete_check_mode.resource_actions' + + - name: Delete a placement group 3 + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg3' + state: absent + register: pg_3_delete + + - assert: + that: + - pg_3_delete is changed + - '"ec2:DeletePlacementGroup" in pg_3_delete.resource_actions' + + - name: Delete a placement group 3 - Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg3' + state: absent + register: pg_3_delete + + - assert: + that: + - pg_3_delete is not changed + - '"ec2:DeletePlacementGroup" not in pg_3_delete.resource_actions' + + - name: Delete a placement group 3 - check_mode Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg3' + state: absent + check_mode: true + register: pg_3_delete_check_mode_idem + ignore_errors: true + + - assert: + that: + - pg_3_delete_check_mode_idem is not changed + - '"ec2:DeletePlacementGroup" not in pg_3_delete_check_mode_idem.resource_actions' + + - name: Delete a placement group 4 - check_mode + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg4' + state: absent + check_mode: true + register: pg_4_delete_check_mode + ignore_errors: true + + - assert: + that: + - pg_4_delete_check_mode is not changed + - pg_4_delete_check_mode.error.code == 'DryRunOperation' + - '"ec2:DeletePlacementGroup" in pg_4_delete_check_mode.resource_actions' + + + - name: Delete a placement group 4 + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg4' + state: absent + register: pg_4_delete + + - assert: + that: + - pg_4_delete is changed + - '"ec2:DeletePlacementGroup" in pg_4_delete.resource_actions' + + - name: Delete a placement group 4 - Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg4' + state: absent + register: pg_4_delete + + - assert: + that: + - pg_4_delete is not changed + - '"ec2:DeletePlacementGroup" not in pg_4_delete.resource_actions' + + - name: Delete a placement group 4 - check_mode Idempotency + community.aws.ec2_placement_group: + name: '{{ resource_prefix }}-pg4' + state: absent + check_mode: true + register: pg_4_delete_check_mode_idem + ignore_errors: true + + - assert: + that: + - pg_4_delete_check_mode_idem is not changed + - '"ec2:DeletePlacementGroup" not in pg_4_delete_check_mode_idem.resource_actions' always: - - name: Make sure placement groups created during test are deleted - community.aws.ec2_placement_group: - name: '{{ item }}' - state: absent - with_items: '{{ placement_group_names }}' + - name: Make sure placement groups created during test are deleted + community.aws.ec2_placement_group: + name: '{{ item }}' + state: absent + with_items: '{{ placement_group_names }}' - - include_tasks: env_cleanup.yml + - include_tasks: env_cleanup.yml