- name: Include prompts
  import_tasks: prompts.yml

- block:
  - name: Gather Scaleway organizations facts
    scaleway_organization_facts:

  - name: Get images
    scaleway_image_facts:
      region: "{{ algo_region }}"

  - name: Set cloud specific facts
    set_fact:
      organization_id: "{{ scaleway_organization_facts[0]['id'] }}"
      images: >-
        [{% for i in scaleway_image_facts -%}
          {% if i.name == cloud_providers.scaleway.image and
                i.arch == cloud_providers.scaleway.arch -%}
          '{{ i.id }}'{% if not loop.last %},{% endif %}
          {%- endif -%}
        {%- endfor -%}]

  - name: Create a server
    scaleway_compute:
      name: "{{ algo_server_name }}"
      enable_ipv6: true
      public_ip: dynamic
      boot_type: local
      state: running
      image: "{{ images[0] }}"
      organization: "{{ organization_id }}"
      region: "{{ algo_region }}"
      commercial_type: "{{ cloud_providers.scaleway.size }}"
      wait: true
      tags:
        - Environment:Algo
        - AUTHORIZED_KEY={{ lookup('file', SSH_keys.public)|regex_replace(' ', '_') }}
    register: algo_instance
    until: algo_instance.msg.public_ip
    retries: 3
    delay: 3
  environment:
    SCW_TOKEN: "{{ algo_scaleway_token }}"

- set_fact:
    cloud_instance_ip: "{{ algo_instance.msg.public_ip.address }}"
    ansible_ssh_user: root
