---
# cord-profile/tasks/main.yml
# Constructs a CORD service profile directory and configuration files

- name: Create and copy XOS admin password
  copy:
    content: "{{ xos_admin_pass }}"
    dest: "{{ cord_dir }}/build/platform-install/credentials/{{ xos_admin_user }}"

- name: Create cord_profile directory
  become: yes
  file:
    path: "{{ cord_profile_dir }}"
    state: directory
    mode: 0755
    owner: "{{ ansible_user_id }}"
    group: "{{ ansible_user_gid }}"

- name: Create cord_profile/profile_name, containing profile name
  copy:
    dest: "{{ cord_profile_dir }}/profile_name"
    content: "{{ cord_profile }}"
    mode: 0644

- name: Create subdirectories inside cord_profile directory
  file:
    path: "{{ cord_profile_dir }}/{{ item }}"
    state: directory
    mode: 0755
  with_items:
    - key_import
    - onboarding-docker-compose
    - images

# *** This should be revisited. ***
# Currently the key pair is generated on the head node by the
# "prep" role in the "maas" repo, invoked during the "deployBase" Gradle task.
# The keys should probably be generated earlier, in the corddev VM, and copied over.
# The /opt/credentials directory might be a good place to keep the generated keys.
#
# Ensure a keypair exists in case we're not running on MaaS.
- name: Ensure keypair
  user:
    name: "{{ ansible_user_id }}"
    generate_ssh_key: yes

- name: Copy ssh keys to key_import directory
  copy:
    # 'expanduser' won't work below, it expands on control machine
    src: "{{ item.source_path | replace('~', ansible_user_dir, 1) }}"
    dest: "{{ cord_profile_dir }}/key_import/{{ item.name }}"
    mode: 0600
    remote_src: True
  with_items: "{{ xos_service_sshkeys }}"

- name: Copy cert chain and core api key and cert
  copy:
    src: "{{ pki_dir }}/{{ item.src }}"
    dest: "{{ cord_profile_dir }}/{{ item.dest }}"
    mode: 0600
  with_items:
    - src: "{{ site_name }}_im_ca/private/xos-core.{{ site_suffix }}_key.pem"
      dest: "core_api_key.pem"
    - src: "{{ site_name }}_im_ca/certs/xos-core.{{ site_suffix }}_cert_chain.pem"
      dest: "core_api_cert.pem"
    - src: "{{ site_name }}_im_ca/certs/im_cert_chain.pem"
      dest: "im_cert_chain.pem"

- name: Get localhost facts (to get local uid and gid)
  setup:
  delegate_to: localhost
  delegate_facts: True

- name: Make local images directory
  delegate_to: localhost
  become: yes
  file:
    path: "{{ image_dir }}"
    state: directory
    mode: 0755
    owner: "{{ hostvars['localhost']['ansible_user_id'] }}"
    group: "{{ hostvars['localhost']['ansible_user_gid'] }}"

- name: Download Glance VM images
  when: use_openstack
  delegate_to: localhost
  get_url:
    url: "{{ item.url }}"
    checksum: "{{ item.checksum }}"
    dest: "{{ image_dir }}/{{ item.name }}.qcow2"
  with_items: "{{ xos_images }}"
  register: glance_vm_result
  until: glance_vm_result|success
  retries: 5
  delay: 10

- name: Copy Glance VM images to profile directory
  when: use_openstack
  copy:
    src: "{{ image_dir }}/{{ item.name }}.qcow2"
    dest: "{{ cord_profile_dir }}/images/{{ item.name }}.qcow2"
  with_items: "{{ xos_images }}"

- name: Copy over commonly used and utility TOSCA files
  copy:
    src: "{{ item }}"
    dest: "{{ cord_profile_dir }}/{{ item }}"
  with_items:
    - fixtures.yaml
    - enable-onboarding.yaml
    - disable-onboarding.yaml

- name: Create templated XOS configuration files
  template:
    src: "{{ item }}.j2"
    dest: "{{ cord_profile_dir }}/{{ item }}"
    mode: 0644
  with_items:
    - xos_common_config
    - xos_config.yaml
    - deployment.yaml
    - xos.yaml
    - gateway-config.yml
    - style.config.js
    - app.config.js
    - Dockerfile.xos
    - xos-gui-extensions.yml
    - docker-compose.yml

- name: Create profile specific templated TOSCA config files
  template:
    src: "{{ item }}.j2"
    dest: "{{ cord_profile_dir }}/{{ item }}"
  with_items: "{{ xos_tosca_config_templates }}"

- name: Create profile specific templated non-TOSCA files
  template:
    src: "{{ item }}.j2"
    dest: "{{ cord_profile_dir }}/{{ item }}"
  with_items: "{{ xos_other_templates }}"

- name: Copy node key
  when: not on_maas and use_openstack
  copy:
    src: "{{ ansible_user_dir }}/.ssh/id_rsa"
    dest: "{{ item }}/node_key"
    owner: "{{ ansible_user }}"
    mode: 0600
    remote_src: True
  with_items:
    - "{{ ansible_user_dir }}"
    - "{{ cord_profile_dir }}"

- name: Copy node key (MaaS)
  when: on_maas and use_openstack
  become: yes
  copy:
    src: "{{ maas_node_key }}"
    dest: "{{ item }}/node_key"
    owner: "{{ ansible_user }}"
    mode: 0600
    remote_src: True
  with_items:
    - "{{ ansible_user_dir }}"
    - "{{ cord_profile_dir }}"
