---
- name: Determining whether we need become=true
  hosts: localhost
  gather_facts: no
  tasks:
    - name: Get stats of {{ node_config }}
      stat:
        path: "{{ node_config }}"
      register: st

    - name: Set become fact
      set_fact:
        needs_root: "{{ not (st.stat.writeable | bool) }}"

- name: Creating clouds.yaml file on the deploy node
  hosts: localhost
  tasks:
    - name: Template out clouds.yaml
      become: "{{ needs_root }}"
      template:
        src: "roles/common/templates/clouds.yaml.j2"
        dest: "{{ node_config }}/clouds.yaml"
        owner: "{{ ansible_facts.user_uid }}"
        group: "{{ ansible_facts.user_gid }}"
        mode: 0600

- name: Creating admin openrc file on the deploy node
  hosts: localhost
  tasks:
    - name: Template out admin-openrc.sh
      become: "{{ needs_root }}"
      template:
        src: "roles/common/templates/admin-openrc.sh.j2"
        dest: "{{ node_config }}/admin-openrc.sh"
        owner: "{{ ansible_facts.user_uid }}"
        group: "{{ ansible_facts.user_gid }}"
        mode: 0600

    - name: Template out admin-openrc-system.sh
      become: "{{ needs_root }}"
      template:
        src: "roles/common/templates/admin-openrc-system.sh.j2"
        dest: "{{ node_config }}/admin-openrc-system.sh"
        owner: "{{ ansible_facts.user_uid }}"
        group: "{{ ansible_facts.user_gid }}"
        mode: 0600

    - name: Template out public-openrc.sh
      become: "{{ needs_root }}"
      template:
        src: "roles/common/templates/public-openrc.sh.j2"
        dest: "{{ node_config }}/public-openrc.sh"
        owner: "{{ ansible_facts.user_uid }}"
        group: "{{ ansible_facts.user_gid }}"
        mode: 0600

    - name: Template out public-openrc-system.sh
      become: "{{ needs_root }}"
      template:
        src: "roles/common/templates/public-openrc-system.sh.j2"
        dest: "{{ node_config }}/public-openrc-system.sh"
        owner: "{{ ansible_facts.user_uid }}"
        group: "{{ ansible_facts.user_gid }}"
        mode: 0600

    - import_role:
        name: octavia
        tasks_from: openrc.yml
      vars:
        octavia_openrc_become: "{{ needs_root }}"
      when: enable_octavia | bool
