From 6f44a3282aeeef90caaba48daae068493e2b8606 Mon Sep 17 00:00:00 2001 From: Viktor Michalek Date: Fri, 20 Sep 2019 18:36:27 +0200 Subject: Horizon: fix for Debian Stein/Buster packages are enabling plugins by default at its installation time, but we actually know what plugins should be enabled just only at the deploy time. Therefore we need to install all available plugins and disble them right at the image build time. Plugins will be enabled according to deployment (kolla-ansible) configuration at deploy time. Change-Id: I9604ebb4f2a5081fd1209b9841aa997a70a90a11 --- docker/horizon/Dockerfile.j2 | 20 ++++++++++++++++---- docker/horizon/extend_start.sh | 13 ++++++++----- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/docker/horizon/Dockerfile.j2 b/docker/horizon/Dockerfile.j2 index 0686e2644..48bdcd1d6 100644 --- a/docker/horizon/Dockerfile.j2 +++ b/docker/horizon/Dockerfile.j2 @@ -69,9 +69,15 @@ RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \ 'python3-octavia-dashboard', 'python3-sahara-dashboard', 'python3-trove-dashboard', - 'tzdata' + 'tzdata', ] %} - #NOTE(hrw): check for python-murano-dashboard + {% if base_distro == 'debian' %} + {% set horizon_packages = horizon_packages + [ + 'python3-neutron-fwaas-dashboard', + 'python3-neutron-vpnaas-dashboard', + ] %} + {% endif %} + #NOTE(hrw): check for python-murano-dashboard {{ macros.install_packages(horizon_packages | customizable("packages")) }} @@ -80,14 +86,20 @@ RUN echo > /etc/apache2/ports.conf \ && sed -i 's|\(ServerTokens \)OS|\1Prod|' /etc/apache2/conf-available/security.conf \ && ln -s ../mods-available/headers.load /etc/apache2/mods-enabled/headers.load \ && ln -s ../mods-available/expires.load /etc/apache2/mods-enabled/expires.load \ + {% if base_distro == 'ubuntu' %} && cp /usr/share/openstack-dashboard/openstack_dashboard/conf/*.json /etc/openstack-dashboard \ - && cp /usr/share/openstack-dashboard/manage.py /usr/bin/manage.py \ && rm /etc/apache2/conf-enabled/openstack-dashboard.conf \ + {% endif %} + && cp /usr/share/openstack-dashboard/manage.py /usr/bin/manage.py \ && rm /etc/openstack-dashboard/local_settings.py \ && ln -s /etc/openstack-dashboard/local_settings /etc/openstack-dashboard/local_settings.py \ && for locale in /usr/lib/python3/dist-packages/*/locale; do \ (cd ${locale%/*} && /usr/bin/django-admin compilemessages) \ - done + done {% if install_type == 'binary' and base_distro == 'debian' %} \ + && find /etc/openstack-dashboard/enabled/ -type f | grep -Ev \ + `dpkg -L openstack-dashboard python3-django-horizon | \ + grep '/etc/openstack-dashboard/enabled/' | sed 's/\.py/.*.py/g' |xargs -l1 basename | xargs | tr ' ' '|'` | xargs rm + {% endif %} {% endblock %} {% endif %} diff --git a/docker/horizon/extend_start.sh b/docker/horizon/extend_start.sh index 857bdfdfd..a2bc79e13 100644 --- a/docker/horizon/extend_start.sh +++ b/docker/horizon/extend_start.sh @@ -5,11 +5,6 @@ set -o errexit FORCE_GENERATE="${FORCE_GENERATE}" HASH_PATH=/var/lib/kolla/.settings.md5sum.txt -# TODO(mgoddard): Remove this elif when Ubuntu has distro_python_version == 3. -if [[ ${KOLLA_INSTALL_TYPE} == "binary" ]] && [[ "${KOLLA_BASE_DISTRO}" =~ ubuntu ]]; then - KOLLA_DISTRO_PYTHON_VERSION=3 -fi - if [[ ${KOLLA_INSTALL_TYPE} == "binary" ]]; then if [[ ${KOLLA_BASE_DISTRO} == "debian" ]] || [[ ${KOLLA_BASE_DISTRO} == "ubuntu" ]]; then SITE_PACKAGES="/usr/lib/python3/dist-packages" @@ -29,6 +24,10 @@ fi if [[ ${KOLLA_INSTALL_TYPE} == "source" ]] && [[ ! -f ${SITE_PACKAGES}/openstack_dashboard/local/local_settings.py ]]; then ln -s /etc/openstack-dashboard/local_settings \ ${SITE_PACKAGES}/openstack_dashboard/local/local_settings.py +elif [[ ${KOLLA_BASE_DISTRO} == "debian" ]] && [[ ${KOLLA_INSTALL_TYPE} == "binary" ]]; then + rm -f ${SITE_PACKAGES}/openstack_dashboard/local/local_settings.py + ln -s /etc/openstack-dashboard/local_settings \ + ${SITE_PACKAGES}/openstack_dashboard/local/local_settings.py fi if [[ -f /etc/openstack-dashboard/custom_local_settings ]]; then @@ -362,6 +361,10 @@ if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars install -d /var/run/apache2/ + if [[ "${KOLLA_BASE_DISTRO}" == "debian" ]] && [[ ${KOLLA_INSTALL_TYPE} == "binary" ]]; then + APACHE_RUN_GROUP=horizon + APACHE_RUN_USER=horizon + fi rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* -- cgit v1.2.3