---
- 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 | success
  retries: 10
  delay: 6
  delegate_to: "{{ groups['murano-api'][0] }}"

- name: Checking if Murano core and applications library packages exist
  command: >
    docker exec murano_api murano
    --os-username {{ openstack_auth.username }}
    --os-password {{ keystone_admin_password }}
    --os-project-name {{ openstack_auth.project_name }}
    --os-auth-url {{ keystone_admin_url }}
    --murano-url {{ admin_protocol }}://{{ api_interface_address }}:{{ murano_api_port }}
    package-list
  register: status
  changed_when: False
  run_once: True
  delegate_to: "{{ groups['murano-api'][0] }}"

- name: Importing Murano core library package
  command: >
    docker exec murano_api murano
    --os-username {{ openstack_auth.username }}
    --os-password {{ keystone_admin_password }}
    --os-project-name {{ openstack_auth.project_name }}
    --os-auth-url {{ keystone_admin_url }}
    --murano-url {{ admin_protocol }}://{{ api_interface_address }}:{{ murano_api_port }}
    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
  command: >
    docker exec murano_api murano
    --os-username {{ openstack_auth.username }}
    --os-password {{ keystone_admin_password }}
    --os-project-name {{ openstack_auth.project_name }}
    --os-auth-url {{ keystone_admin_url }}
    --murano-url {{ admin_protocol }}://{{ api_interface_address }}:{{ murano_api_port }}
    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"
