From 861ece743ec9a070e49de19914169a4a67e8e47d Mon Sep 17 00:00:00 2001
From: Harm Weites <harm@weites.com>
Date: Sat, 9 May 2015 21:44:24 +0200
Subject: [PATCH] Move Horizon to / and make it work in the first place.

Having the dasboard in /dashboard doesn't feel right, especially
since there is no automatic redirect when people browse to the ip or
hostname. Which would be a natural first try. Moving to / now to make
the process behave in a simpler fashion.

Because of a packaging error the js/css wouldn't load properly, next
to that there is an issue with a supposed missing 'manage.py
compress' run. This is handled through Kolla now as well (for the
time being).
There is another supposed bug in packaging that makes webfont.ttf
return a 404. This is because of a missing alias for /static stuff,
and with moving the whole thing to / this gets adressed as well.

Change-Id: I64cd7c9effad6cf9ec7c6a41f34e1184640c8adc
---
 docker/horizon/Dockerfile | 11 +++++++++--
 docker/horizon/start.sh   | 13 +++++++++++++
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/docker/horizon/Dockerfile b/docker/horizon/Dockerfile
index ce925baf26..2c34ee03ab 100644
--- a/docker/horizon/Dockerfile
+++ b/docker/horizon/Dockerfile
@@ -1,8 +1,15 @@
 FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%%
 MAINTAINER Kolla Project (https://launchpad.net/kolla)
 
-RUN yum -y install openstack-dashboard \
-        httpd httpd-mod-wsgi && yum clean all
+RUN yum -y install \
+    openstack-dashboard \
+    httpd \
+    httpd-mod-wsgi \
+    && yum clean all \
+    && chown -R apache:apache /usr/share/openstack-dashboard/static
+
+# The chown is required because of this packaging bug:
+# https://bugzilla.redhat.com/show_bug.cgi?id=1219006
 
 ADD ./start.sh /start.sh
 
diff --git a/docker/horizon/start.sh b/docker/horizon/start.sh
index f087a429e2..4e720bb879 100755
--- a/docker/horizon/start.sh
+++ b/docker/horizon/start.sh
@@ -13,6 +13,7 @@ export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
 export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
 
 cfg=/etc/openstack-dashboard/local_settings
+httpdcfg=/etc/httpd/conf.d/openstack-dashboard.conf
 
 sed -ri 's/ALLOWED_HOSTS = \['\''horizon.example.com'\'', '\''localhost'\''\]/ALLOWED_HOSTS = \['\''*'\'', \]/' /etc/openstack-dashboard/local_settings
 
@@ -20,4 +21,16 @@ sed -ri 's/OPENSTACK_KEYSTONE_URL = \"http:\/\/%s:5000\/v2.0\" % OPENSTACK_HOST/
 
 sed -ri 's/OPENSTACK_HOST = \"127.0.0.1\"/OPENSTACK_HOST = \"'"$KEYSTONE_PUBLIC_SERVICE_HOST"'\" /' /etc/openstack-dashboard/local_settings
 
+# Make sure we launch horizon using the default value for WEBROOT, which is
+# '/'.
+sed -ri '/^WEBROOT =.+/d' $cfg
+sed -ri 's,^(WSGIScriptAlias) /dashboard (/usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi),\1 / \2,' $httpdcfg
+sed -ri 's,^(Alias /dashboard)(/static /usr/share/openstack-dashboard/static),Alias \2,' $httpdcfg
+
+# This step is required because of:
+# https://bugzilla.redhat.com/show_bug.cgi?id=1220070
+# Running this in the Dockerfile didn't fix the HTTP/500 as a result of the
+# missing compress action.
+python /usr/share/openstack-dashboard/manage.py compress
+
 /usr/sbin/httpd -DFOREGROUND
-- 
GitLab