From 9f5efc5ea6736001160b49a81ec6274ba6353169 Mon Sep 17 00:00:00 2001 From: Paul Bourke Date: Wed, 24 Aug 2016 17:21:04 +0100 Subject: [PATCH] Import the Murano core libary as part of setup In order for Murano to be operational the core library package must be imported [0] Add Ansible tasks to do this idempotently. [0] http://docs.openstack.org/developer/murano/install/manual.html TrivialFix Change-Id: I2c49e9d663595650b885267839012b543505337a --- ansible/roles/murano/tasks/start.yml | 39 +++++++++++++++++++ docker/murano/murano-api/Dockerfile.j2 | 2 + docker/murano/murano-base/Dockerfile.j2 | 4 +- docker/openstack-base/Dockerfile.j2 | 7 +++- ...-murano-core-library-86f00abaa21cfb94.yaml | 4 ++ 5 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/import-murano-core-library-86f00abaa21cfb94.yaml diff --git a/ansible/roles/murano/tasks/start.yml b/ansible/roles/murano/tasks/start.yml index f1c0962468..5d8282f120 100644 --- a/ansible/roles/murano/tasks/start.yml +++ b/ansible/roles/murano/tasks/start.yml @@ -22,3 +22,42 @@ - "/etc/localtime:/etc/localtime:ro" - "kolla_logs:/var/log/kolla/" when: inventory_hostname in groups['murano-api'] + +- name: Waiting for Murano API service to be ready + wait_for: + host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['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 + when: inventory_hostname in groups['murano-api'] + +- name: Checking if Murano core library package exists + command: "docker exec murano_api murano \ + --os-username admin \ + --os-password {{ keystone_admin_password }} \ + --os-project-name admin \ + --os-auth-url \ + {{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}/v3 \ + package-list" + register: status + changed_when: False + run_once: True + when: inventory_hostname in groups['murano-api'] + +- name: Importing Murano core library package + command: "docker exec murano_api murano \ + --os-username admin \ + --os-password {{ keystone_admin_password }} \ + --os-project-name admin \ + --os-auth-url \ + {{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}/v3 \ + package-import --is-public /io.murano.zip" + run_once: True + when: + - inventory_hostname in groups['murano-api'] + - status.stdout.find("io.murano") == -1 diff --git a/docker/murano/murano-api/Dockerfile.j2 b/docker/murano/murano-api/Dockerfile.j2 index 611d3131ca..76dc174f49 100644 --- a/docker/murano/murano-api/Dockerfile.j2 +++ b/docker/murano/murano-api/Dockerfile.j2 @@ -4,8 +4,10 @@ MAINTAINER {{ maintainer }} {% if install_type == 'binary' %} {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} +RUN ln -s /var/cache/murano/meta/io.murano.zip /io.murano.zip {% set murano_api_packages = ['openstack-murano-api'] %} {% elif base_distro in ['ubuntu'] %} +RUN ln -s /usr/share/murano-common/io.murano.zip /io.murano.zip {% set murano_api_packages = ['murano-api'] %} {% endif %} diff --git a/docker/murano/murano-base/Dockerfile.j2 b/docker/murano/murano-base/Dockerfile.j2 index 5649cc56b9..295f327a4e 100644 --- a/docker/murano/murano-base/Dockerfile.j2 +++ b/docker/murano/murano-base/Dockerfile.j2 @@ -21,7 +21,9 @@ RUN ln -s murano-base-source/* murano \ && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /murano \ && mkdir -p /etc/murano /home/murano \ && cp -r /murano/etc/murano/* /etc/murano/ \ - && chown -R murano: /etc/murano /home/murano + && chown -R murano: /etc/murano /home/murano \ + && cd murano/meta/io.murano \ + && zip -r /io.murano.zip * {% endif %} diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index c3d6dc2a9d..99544749a0 100644 --- a/docker/openstack-base/Dockerfile.j2 +++ b/docker/openstack-base/Dockerfile.j2 @@ -202,7 +202,8 @@ ENV DEBIAN_FRONTEND noninteractive 'postgresql', 'postgresql-devel', 'python-devel', - 'sqlite-devel' + 'sqlite-devel', + 'zip' ] %} {% elif base_distro in ['ubuntu', 'debian'] %} {% set openstack_base_packages = [ @@ -217,11 +218,13 @@ ENV DEBIAN_FRONTEND noninteractive 'libyaml-dev', 'libz-dev', 'pkg-config', - 'git' + 'git', + 'zip' ] %} {% endif %} {{ macros.install_packages(openstack_base_packages | customizable("packages")) }} + ADD openstack-base-archive /openstack-base-source RUN ln -s openstack-base-source/* /requirements \ && mkdir -p /var/lib/kolla \ diff --git a/releasenotes/notes/import-murano-core-library-86f00abaa21cfb94.yaml b/releasenotes/notes/import-murano-core-library-86f00abaa21cfb94.yaml new file mode 100644 index 0000000000..fde8e8a563 --- /dev/null +++ b/releasenotes/notes/import-murano-core-library-86f00abaa21cfb94.yaml @@ -0,0 +1,4 @@ +--- +features: + - Import Murano core libary during install required + for Murano operation.