Index: py-horizon/Makefile =================================================================== --- py-horizon/Makefile (revision 472050) +++ py-horizon/Makefile (working copy) @@ -2,10 +2,9 @@ # $FreeBSD$ PORTNAME= horizon -PORTVERSION= 10.0.1 -PORTREVISION= 1 +PORTVERSION= 13.0.1 CATEGORIES= www python -MASTER_SITES= https://fossies.org/linux/misc/openstack/ +MASTER_SITES= https://tarballs.openstack.org/horizon/ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= alexander.nusov@nfvexpress.com @@ -12,73 +11,72 @@ COMMENT= OpenStack Dashboard (Horizon) LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pbr>=1.6:devel/py-pbr@${FLAVOR} -RUN_DEPENDS:= ${BUILD_DEPENDS} -RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}Babel>=2.3.4:devel/py-babel@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}django18>=0:www/py-django18@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}Pint>=0.5:devel/py-Pint@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}django-babel>=0.5.1:www/py-django-babel@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}django_compressor>=2.0:www/py-django_compressor@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}django_openstack_auth>=2.4.0:www/py-django_openstack_auth@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}django-pyscss>=2.0.2:www/py-django-pyscss@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}netaddr>=0:net/py-netaddr@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}oslo.concurrency>=3.8.0:devel/py-oslo.concurrency@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}oslo.config>=3.14.0:devel/py-oslo.config@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}oslo.i18n>=2.1.0:devel/py-oslo.i18n@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}oslo.policy>=1.9.0:devel/py-oslo.policy@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}oslo.serialization>=1.10.0:devel/py-oslo.serialization@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}oslo.utils>=3.16.0:devel/py-oslo.utils@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pyscss>=1.3.4:textproc/py-pyscss@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}python-ceilometerclient>=2.5.0:net/py-python-ceilometerclient@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}python-cinderclient>=0:net/py-python-cinderclient@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}python-glanceclient>=0:net/py-python-glanceclient@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}python-heatclient>=1.4.0:net/py-python-heatclient@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}python-keystoneclient>=0:net/py-python-keystoneclient@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}python-neutronclient>=5.1.0:net/py-python-neutronclient@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}python-novaclient>=0:net/py-python-novaclient@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}python-swiftclient>=2.2.0:databases/py-python-swiftclient@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}pytz>=2013.6:devel/py-pytz@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}yaml>=3.1.0:devel/py-yaml@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}six>=1.9.0:devel/py-six@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic>=1.0.0:devel/py-XStatic@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Angular>=1.3.7:devel/py-XStatic-Angular@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-Bootstrap>=0.11.0.2:devel/py-XStatic-Angular-Bootstrap@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-FileUpload>=12.0.4.0:devel/py-XStatic-Angular-FileUpload@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-Gettext>=2.1.0.2:devel/py-XStatic-Angular-Gettext@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-lrdragndrop>=1.0.2.2:devel/py-XStatic-Angular-lrdragndrop@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-Schema-Form>=0.8.13.0:devel/py-XStatic-Angular-Schema-Form@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Bootstrap-Datepicker>=1.3.1.0:devel/py-XStatic-Bootstrap-Datepicker@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Bootstrap-SCSS>=3:devel/py-XStatic-Bootstrap-SCSS@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-bootswatch>=3.3.5.3:devel/py-XStatic-bootswatch@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-D3>=3.1.6.2:devel/py-XStatic-D3@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Hogan>=2.0.0.2:devel/py-XStatic-Hogan@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Font-Awesome>=4.3.0:devel/py-XStatic-Font-Awesome@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Jasmine>=2.1.2.0:devel/py-XStatic-Jasmine@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-jQuery>=1.7.2:devel/py-XStatic-jQuery@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-JQuery-Migrate>=1.2.1.1:devel/py-XStatic-JQuery-Migrate@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-JQuery.quicksearch>=2.0.3.1:devel/py-XStatic-JQuery.quicksearch@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-JQuery.TableSorter>=2.14.5.1:devel/py-XStatic-JQuery.TableSorter@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-jquery-ui>=1.10.1:devel/py-XStatic-jquery-ui@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-JSEncrypt>=2.0.0.2:devel/py-XStatic-JSEncrypt@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-mdi>=1.4.57.0:devel/py-XStatic-mdi@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-objectpath>=1.2.1.0:devel/py-XStatic-objectpath@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Rickshaw>=1.5.0:devel/py-XStatic-Rickshaw@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-roboto-fontface>=0.4.3.2:devel/py-XStatic-roboto-fontface@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-smart-table>=0:devel/py-XStatic-smart-table@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-Spin>=1.2.5.2:devel/py-XStatic-Spin@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-term.js>=0.0.4:devel/py-XStatic-term.js@${FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}XStatic-tv4>=1.2.7.0:devel/py-XStatic-tv4@${FLAVOR} +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pbr>=2.0.0:devel/py-pbr@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pbr>=2.0.0:devel/py-pbr@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}Babel>=2.3.4:devel/py-babel@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}django111>=1.8:www/py-django111@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}Pint>=0.5:devel/py-Pint@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}django-babel>=0.5.1:www/py-django-babel@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}django_compressor>=2.0:www/py-django_compressor@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}django-pyscss>=2.0.2:www/py-django-pyscss@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}futurist>=1.2.0:devel/py-futurist@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}keystoneauth1>=3.3.0:devel/py-keystoneauth1@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}netaddr>=0.7.18:net/py-netaddr@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}oslo.concurrency>=3.25.0:devel/py-oslo.concurrency@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}oslo.config>=5.1.0:devel/py-oslo.config@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}oslo.i18n>=3.15.3:devel/py-oslo.i18n@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}oslo.policy>=1.30.0:devel/py-oslo.policy@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}oslo.serialization>=2.18.0:devel/py-oslo.serialization@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}oslo.utils>=3.33.0:devel/py-oslo.utils@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}osprofiler>=1.4.0:devel/py-osprofiler@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pymongo>=3.0.2:databases/pymongo@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyscss>=1.3.4:textproc/py-pyscss@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-cinderclient>=3.3.0:net/py-python-cinderclient@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-glanceclient>=2.8.0:net/py-python-glanceclient@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-keystoneclient>=3.8.0:net/py-python-keystoneclient@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-neutronclient>=6.3.0:net/py-python-neutronclient@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-novaclient>=9.1.0:net/py-python-novaclient@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-swiftclient>=3.2.0:databases/py-python-swiftclient@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytz>=2013.6:devel/py-pytz@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}yaml>=3.10.0:devel/py-yaml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}semantic_version>=2.3.1:devel/py-semantic_version@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}six>=1.10.0:devel/py-six@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic>=1.0.0:devel/py-XStatic@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular>=1.5.8.0:devel/py-XStatic-Angular@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-Bootstrap>=2.2.0.0:devel/py-XStatic-Angular-Bootstrap@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-FileUpload>=12.0.4.0:devel/py-XStatic-Angular-FileUpload@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-Gettext>=2.3.8.0:devel/py-XStatic-Angular-Gettext@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-lrdragndrop>=1.0.2.2:devel/py-XStatic-Angular-lrdragndrop@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Angular-Schema-Form>=0.8.13.0:devel/py-XStatic-Angular-Schema-Form@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Bootstrap-Datepicker>=1.3.1.0:devel/py-XStatic-Bootstrap-Datepicker@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Bootstrap-SCSS>=3.3.7.1:devel/py-XStatic-Bootstrap-SCSS@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-bootswatch>=3.3.7.0:devel/py-XStatic-bootswatch@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-D3>=3.5.17.0:devel/py-XStatic-D3@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Hogan>=2.0.0.2:devel/py-XStatic-Hogan@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Font-Awesome>=4.7.0.0:devel/py-XStatic-Font-Awesome@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Jasmine>=2.4.1.1:devel/py-XStatic-Jasmine@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-jQuery>=1.8.2.1:devel/py-XStatic-jQuery@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-JQuery-Migrate>=1.2.1.1:devel/py-XStatic-JQuery-Migrate@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-JQuery.quicksearch>=2.0.3.1:devel/py-XStatic-JQuery.quicksearch@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-JQuery.TableSorter>=2.14.5.1:devel/py-XStatic-JQuery.TableSorter@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-jquery-ui>=1.10.4.1:devel/py-XStatic-jquery-ui@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-JSEncrypt>=2.3.1.1:devel/py-XStatic-JSEncrypt@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-mdi>=1.4.57.0:devel/py-XStatic-mdi@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-objectpath>=1.2.1.0:devel/py-XStatic-objectpath@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Rickshaw>=1.5.0.0:devel/py-XStatic-Rickshaw@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-roboto-fontface>=0.5.0.0:devel/py-XStatic-roboto-fontface@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-smart-table>=1.4.13.2:devel/py-XStatic-smart-table@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-Spin>=1.2.5.2:devel/py-XStatic-Spin@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-term.js>=0.0.7.0:devel/py-XStatic-term.js@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XStatic-tv4>=1.2.7.0:devel/py-XStatic-tv4@${PY_FLAVOR} -EXTRA_PATCHES= ${FILESDIR}/01-django.patch:-p1 \ - ${FILESDIR}/02-fix-floating-ips.patch:-p1 - +USES= python +USE_PYTHON= autoplist distutils NO_ARCH= yes -USES= python:2.7 -USE_PYTHON= autoplist distutils - USERS= horizon GROUPS= horizon @@ -85,4 +83,9 @@ SUB_FILES= pkg-message SUB_LIST= PYTHON_SITELIBDIR=${PYTHON_SITELIBDIR} +CONFLICTS_INSTALL= py??-horizon-* + +post-patch: + @${REINPLACE_CMD} -Ee 's|(pyScss)!=1.3.5,|\1|' ${WRKSRC}/requirements.txt + .include Index: py-horizon/distinfo =================================================================== --- py-horizon/distinfo (revision 472050) +++ py-horizon/distinfo (working copy) @@ -1,3 +1,3 @@ -TIMESTAMP = 1481116590 -SHA256 (horizon-10.0.1.tar.gz) = 919e1e466007684ee80a0dec46f18c7f8147bd826ac1085a262fbb15b6c789be -SIZE (horizon-10.0.1.tar.gz) = 4093291 +TIMESTAMP = 1527322612 +SHA256 (horizon-13.0.1.tar.gz) = 83673ed67076095d22af05795a227e730b2bff4321b70b6c7dca4aa28c9d5500 +SIZE (horizon-13.0.1.tar.gz) = 4389086 Index: py-horizon/files/01-django.patch =================================================================== --- py-horizon/files/01-django.patch (revision 472050) +++ py-horizon/files/01-django.patch (nonexistent) @@ -1,13 +0,0 @@ -diff --git a/openstack_dashboard/wsgi/django.wsgi b/openstack_dashboard/wsgi/django.wsgi -index 1be0e06..b7fbe81 100644 ---- a/openstack_dashboard/wsgi/django.wsgi -+++ b/openstack_dashboard/wsgi/django.wsgi -@@ -5,7 +5,7 @@ from django.core.wsgi import get_wsgi_application - from django.conf import settings - - # Add this file path to sys.path in order to import settings --sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), '../..')) -+sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), '../..'))) - os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings' - sys.stdout = sys.stderr - Property changes on: py-horizon/files/01-django.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: py-horizon/files/02-fix-floating-ips.patch =================================================================== --- py-horizon/files/02-fix-floating-ips.patch (revision 472050) +++ py-horizon/files/02-fix-floating-ips.patch (nonexistent) @@ -1,26 +0,0 @@ -From 194ebeb4eb2efff32864452a52c2edfb4915b89a Mon Sep 17 00:00:00 2001 -From: Alexander Nusov -Date: Sun, 22 Jan 2017 13:31:51 +0300 -Subject: [PATCH] fixed floating IP list retrieving - ---- - openstack_dashboard/api/nova.py | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/openstack_dashboard/api/nova.py b/openstack_dashboard/api/nova.py -index 4a82cbc11..8a3936bad 100644 ---- a/openstack_dashboard/api/nova.py -+++ b/openstack_dashboard/api/nova.py -@@ -415,8 +415,7 @@ class FloatingIpManager(network_base.FloatingIpManager): - - def list(self, all_tenants=False): - return [FloatingIp(fip) for fip in -- self.client.floating_ips.list( -- all_tenants=all_tenants)] -+ self.client.floating_ips.list()] - - def get(self, floating_ip_id): - return FloatingIp(self.client.floating_ips.get(floating_ip_id)) --- -2.11.0 - Property changes on: py-horizon/files/02-fix-floating-ips.patch ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: py-horizon/files/pkg-message.in =================================================================== --- py-horizon/files/pkg-message.in (revision 472050) +++ py-horizon/files/pkg-message.in (working copy) @@ -1,29 +1,101 @@ -Please note that this is a development version of Horizon. +================================================================================ -You may serve horizon (OpenStack Dashboard) with apache web server. -Use this snippet as reference: +====================== + Apache configuration +====================== -WSGIScriptAlias / %%PYTHON_SITELIBDIR%%/openstack_dashboard/wsgi/django.wsgi process-group=horizon -WSGIDaemonProcess horizon user=horizon group=horizon processes=3 threads=10 display-name=%{GROUP} -WSGIProcessGroup horizon -Alias /static/dashboard %%PYTHON_SITELIBDIR%%/openstack_dashboard/static/dashboard - - Require all granted - - - Require all granted - +If you plan to use apache make sure that the mod_wsgi module is enabled and the +correct ownership for static/local libraries for the openstack_dashboard are +set: -Also if you plan to use apache make sure that wsgi4 module is enabled and -you set correct ownership for static and local libraries for openstack_dashboard: - # chown -R horizon %%PYTHON_SITELIBDIR%%/openstack_dashboard/static # chown -R horizon %%PYTHON_SITELIBDIR%%/openstack_dashboard/local -Create local_settings.py with your settings at -%%PYTHON_SITELIBDIR%%/openstack_dashboard/local +Use the following snippet as reference: -To enable django-compressor add this option to local_settings.py file: +### Start + + WSGIScriptAlias / %%PYTHON_SITELIBDIR%%/openstack_dashboard/wsgi/django.wsgi + WSGIDaemonProcess horizon user=horizon group=horizon processes=3 threads=10 display-name=%{GROUP} + WSGIProcessGroup horizon + WSGIApplicationGroup %{GLOBAL} + + DocumentRoot /var/lib/horizon + + Alias /static/horizon/lib/angular/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/angular/data/ + Alias /static/horizon/lib/angular_bootstrap/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/angular_bootstrap/data/ + Alias /static/horizon/lib/angular_fileupload/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/angular_fileupload/data/ + Alias /static/horizon/lib/angular_gettext/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/angular_gettext/data/ + Alias /static/horizon/lib/angular_lrdragndrop/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/angular_lrdragndrop/data/ + Alias /static/horizon/lib/angular_schemaform/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/angular_schemaform/data/ + Alias /static/horizon/lib/angular_smart_table/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/angular_smart_table/data/ + Alias /static/horizon/lib/bootstrap_datepicker/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/bootstrap_datepicker/data/ + Alias /static/horizon/lib/bootstrap_scss/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/bootstrap_scss/data/ + Alias /static/horizon/lib/bootswatch/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/bootswatch/data/ + Alias /static/horizon/lib/d3/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/d3/data/ + Alias /static/horizon/lib/font_awesome/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/font_awesome/data/ + Alias /static/horizon/lib/hogan/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/hogan/data/ + Alias /static/horizon/lib/jasmine/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/jasmine/data/ + Alias /static/horizon/lib/jquery_migrate/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/jquery_migrate/data/ + Alias /static/horizon/lib/jquery_quicksearch/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/jquery_quicksearch/data/ + Alias /static/horizon/lib/jquery_tablesorter/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/jquery_tablesorter/data/ + Alias /static/horizon/lib/jsencrypt/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/jsencrypt/data/ + Alias /static/horizon/lib/mdi/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/mdi/data/ + Alias /static/horizon/lib/objectpath/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/objectpath/data/ + Alias /static/horizon/lib/rickshaw/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/rickshaw/data/ + Alias /static/horizon/lib/roboto_fontface/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/roboto_fontface/data/ + Alias /static/horizon/lib/spin/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/spin/data/ + Alias /static/horizon/lib/termjs/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/termjs/data/ + Alias /static/horizon/lib/tv4/ %%PYTHON_SITELIBDIR%%/xstatic/pkg/tv4/data/ + Alias /static/horizon %%PYTHON_SITELIBDIR%%/horizon/static/horizon + Alias /static %%PYTHON_SITELIBDIR%%/openstack_dashboard/static + + + AllowOverride None + + + + Require all granted + + + + Require all granted + + + + Require all granted + + + + Require all granted + + + + +### End + +====================== + Custom configuration +====================== + +Create the configuration: + +# cd %%PYTHON_SITELIBDIR%%/openstack_dashboard/local +# cp local_settings.py.example local_settings.py + +Add one or more entries to the ALLOWED_HOSTS directive: + +ALLOWED_HOSTS = [ 'host1', '192.168.0.1' ] + +Horizon must be configured for at least one Keystone server to work properly: + +OPENSTACK_HOST = "127.0.0.1" +OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST +OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_" + +To enable django-compressor add this option: + STATIC_ROOT = '%%PYTHON_SITELIBDIR%%/openstack_dashboard/static' +================================================================================ Index: py-horizon/pkg-descr =================================================================== --- py-horizon/pkg-descr (revision 472050) +++ py-horizon/pkg-descr (working copy) @@ -4,4 +4,4 @@ implementation of a Django site that uses the horizon app to provide web-based interactions with the various OpenStack projects. -WWW: https://docs.openstack.org/horizon/latest/ +WWW: https://docs.openstack.org/horizon/