---
- name: Waiting for Murano API service to be ready on first node
  wait_for:
    host: "{{ api_interface_address }}"
    port: "{{ murano_api_port }}"
    connect_timeout: 1
    timeout: 60
  run_once: True
  register: check_murano_port
  until: check_murano_port is success
  retries: 10
  delay: 6
  delegate_to: "{{ groups['murano-api'][0] }}"

- name: Checking if Murano core and applications library packages exist
  become: true
  command: >
    {{ kolla_container_engine }} exec murano_api murano
    --os-username {{ openstack_auth.username }}
    --os-password {{ openstack_auth.password }}
    --os-project-name {{ openstack_auth.project_name }}
    {% if openstack_cacert != '' %}--os-cacert {{ openstack_cacert }}{% endif %}
    --os-auth-url {{ openstack_auth.auth_url }}
    --murano-url {{ murano_internal_endpoint }}
    package-list
  register: status
  changed_when: False
  run_once: True
  delegate_to: "{{ groups['murano-api'][0] }}"

- name: Importing Murano core library package
  become: true
  command: >
    {{ kolla_container_engine }} exec murano_api murano
    --os-username {{ openstack_auth.username }}
    --os-password {{ openstack_auth.password }}
    --os-project-name {{ openstack_auth.project_name }}
    {% if openstack_cacert != '' %}--os-cacert {{ openstack_cacert }}{% endif %}
    --os-auth-url {{ openstack_auth.auth_url }}
    --murano-url {{ murano_internal_endpoint }}
    package-import --exists-action u --is-public /io.murano.zip
  run_once: True
  delegate_to: "{{ groups['murano-api'][0] }}"
  when:
    - status.stdout.find("io.murano") == -1 or kolla_action == "upgrade"

- name: Importing Murano applications library package
  become: true
  command: >
    {{ kolla_container_engine }} exec murano_api murano
    --os-username {{ openstack_auth.username }}
    --os-password {{ openstack_auth.password }}
    --os-project-name {{ openstack_auth.project_name }}
    {% if openstack_cacert != '' %}--os-cacert {{ openstack_cacert }}{% endif %}
    --os-auth-url {{ openstack_auth.auth_url }}
    --murano-url {{ murano_internal_endpoint }}
    package-import --exists-action u --is-public /io.murano.applications.zip
  run_once: True
  delegate_to: "{{ groups['murano-api'][0] }}"
  when:
    - status.stdout.find("io.murano.applications") == -1 or kolla_action == "upgrade"
