---
# yamllint disable rule:line-length
- name: Update platforms
  hosts: localhost
  tasks:
    - name: Filtering platforms list using the group defined in the MOLECULE_GROUP environment variable
      set_fact:
        molecule_yml: "{{ molecule_yml | combine({'platforms': (molecule_yml.platforms | selectattr('groups', 'contains', lookup('env', 'MOLECULE_GROUP')))}) }}"
      when: ansible_env.MOLECULE_GROUP is defined

- name: Create
  hosts: localhost
  connection: local
  gather_facts: false
  no_log: '{{ molecule_no_log }}'
  vars:
    ssh_identity_file: "{{ lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') }}/ssh_key"
    gcp_project_id: "{{ molecule_yml.driver.project_id | default(lookup('env', 'GCE_PROJECT_ID')) }}"
  tasks:
    - name: Make sure the group contains only Linux hosts or Windows hosts
      ansible.builtin.assert:
        that:
          - molecule_yml.driver.instance_os_type | lower == "linux" or
            molecule_yml.driver.instance_os_type | lower == "windows"
        fail_msg: instance_os_type is possible only to specify linux or windows either

    - name: Include create_linux_instance tasks
      ansible.builtin.include_tasks: tasks/create_linux_instance.yml
      when:
        - molecule_yml.driver.instance_os_type  | lower == "linux"

    - name: Include create_windows_instance tasks
      ansible.builtin.include_tasks: tasks/create_windows_instance.yml
      when:
        - molecule_yml.driver.instance_os_type  | lower == "windows"

  handlers:
    - name: Import main handler tasks
      ansible.builtin.import_tasks: handlers/main.yml