- name: test updating inventory
  block:
    - name: assert group was populated with inventory but is empty
      assert:
        that:
          - "'aws_ec2' in groups"
          - "not groups.aws_ec2"

    - name: set connection information for all tasks
      set_fact:
        aws_connection_info: &aws_connection_info
          aws_access_key: "{{ aws_access_key }}"
          aws_secret_key: "{{ aws_secret_key }}"
          security_token: "{{ security_token }}"
          region: "{{ aws_region }}"
      no_log: yes

    - name: create a new host
      ec2:
        image: "{{ images[aws_region] }}"
        exact_count: 1
        count_tag:
          Name: '{{ resource_prefix }}'
        instance_tags:
          Name: '{{ resource_prefix }}'
        instance_type: t2.micro
        wait: yes
        group_id: '{{ setup_sg.group_id }}'
        vpc_subnet_id: '{{ setup_subnet.subnet.id }}'
        <<: *aws_connection_info
      register: setup_instance

    - meta: refresh_inventory

    - name: assert group was populated with inventory and is no longer empty
      assert:
        that:
          - "'aws_ec2' in groups"
          - "groups.aws_ec2 | length == 1"
          - "groups.aws_ec2.0 == '{{ resource_prefix }}'"

    - name: remove setup ec2 instance
      ec2:
        instance_type: t2.micro
        instance_ids: '{{ setup_instance.instance_ids }}'
        state: absent
        wait: yes
        instance_tags:
          Name: '{{ resource_prefix }}'
        group_id: '{{ setup_sg.group_id }}'
        vpc_subnet_id: '{{ setup_subnet.subnet.id }}'
        <<: *aws_connection_info

    - meta: refresh_inventory

    - name: assert group was populated with inventory but is empty
      assert:
        that:
          - "'aws_ec2' in groups"
          - "not groups.aws_ec2"

  always:
    - name: remove setup ec2 instance
      ec2:
        instance_type: t2.micro
        instance_ids: '{{ setup_instance.instance_ids }}'
        state: absent
        wait: yes
        instance_tags:
          Name: '{{ resource_prefix }}'
        group_id: '{{ setup_sg.group_id }}'
        vpc_subnet_id: '{{ setup_subnet.subnet.id }}'
        <<: *aws_connection_info
      ignore_errors: yes
