Trove Horizon plugin.
Go to file
Hirotaka Wakabayashi 0db9bad00c Calls manager.py by "$PYTHON" instead of "env python"
devstack should call manager.py by using $PYTHON variable that devstack
uses through openstack installation because manage.py uses python2
unless caller explicitly uses python3 interpreter.

Currently devstack fails with the following error message when devstack
uses python3::

  ++ /opt/stack/trove-dashboard/devstack/plugin.sh:configure_trove_dashboard:14 :   ../manage.py compilemessages
  Traceback (most recent call last):
    File "../manage.py", line 18, in <module>
      from django.core.management import execute_from_command_line
  ImportError: No module named django.core.management
  + /opt/stack/trove-dashboard/devstack/plugin.sh:configure_trove_dashboard:1 :   exit_trap

The reason for this error is no django.core.management library exists
in python2 site-packages because devstack installs the library as a
python3 library.

Story: 2007463
Task: 39148
Signed-off-by: Hirotaka Wakabayashi <hiwkby@yahoo.com>
Change-Id: Ia5f87788e117e9bbd9823afb6a8f139eb3ae5870
2020-03-31 07:17:34 +00:00
devstack Calls manager.py by "$PYTHON" instead of "env python" 2020-03-31 07:17:34 +00:00
releasenotes Merge "Drop python 2.7 support and testing" 2019-12-28 17:09:56 +00:00
tools Avoid tox-install.sh 2018-03-14 21:14:23 +01:00
trove_dashboard Merge "Remove six usage" 2020-02-06 01:09:11 +00:00
.gitignore Add "*.swp" to ".gitignore" file 2018-01-02 22:33:25 +08:00
.gitreview OpenDev Migration Patch 2019-04-19 19:44:38 +00:00
.zuul.yaml Drop python 2.7 support and testing 2019-12-05 06:15:25 +00:00
babel-django.cfg translation: drop babel extractor definitions 2019-12-27 02:31:06 +09:00
babel-djangojs.cfg translation: drop babel extractor definitions 2019-12-27 02:31:06 +09:00
CONTRIBUTING.rst Update the documentation link for doc migration 2017-12-19 05:48:34 +00:00
HACKING.rst Replace git.openstack.org URLs with opendev.org URLs 2019-04-24 15:30:49 +08:00
LICENSE Completing the plugin 2015-12-18 15:53:31 -07:00
manage.py Completing the plugin 2015-12-18 15:53:31 -07:00
MANIFEST.in Completing the plugin 2015-12-18 15:53:31 -07:00
README.rst Replace git.openstack.org URLs with opendev.org URLs 2019-04-24 15:30:49 +08:00
requirements.txt Drop Django 1.11 support 2019-12-29 06:40:55 +09:00
run_tests.sh Completing the plugin 2015-12-18 15:53:31 -07:00
setup.cfg Drop python 2.7 support and testing 2019-12-05 06:15:25 +00:00
setup.py Completing the plugin 2015-12-18 15:53:31 -07:00
test-requirements.txt Update hacking version 2019-01-20 20:34:03 +08:00
tox.ini Drop Django 1.11 support 2019-12-29 06:40:55 +09:00

OpenStack Dashboard plugin for Trove project

image

How to use with Horizon on server:

Use pip to install the package on the server running Horizon. Then either copy or link the files in trove_dashboard/enabled to openstack_dashboard/local/enabled. This step will cause the Horizon service to pick up the trove plugin when it starts.

How to use with devstack:

Add the following to your devstack local.conf file:

enable_plugin trove-dashboard https://opendev.org/openstack/trove-dashboard

To run unit tests:

./run_tests.sh

Editing Code

Apache

Make a change to trove-dashboard then goto to the horizon directory and compress the code with django and then restart apache.:

# rsync code to /opt/stack/trove-dashboard
# copy or link files from trove-dashboard/enabled/* to horizon/openstack_dashboard/local/enabled/
cd /opt/stack/horizon
python manage.py compress
python manage.py collectstatic --noinput
sudo service apache2 restart

Django

You can also speed up development time using the django test server instead of apache.:

/opt/stack/horizon/run_tests.sh --runserver

If you set COMPRESS_ENABLED and COMPRESS_OFFLINE to False in local_settings.py that allows you to bypass the compress and collectstatic as well.

Settings

The use of a cross-process cache such as Memcached is required.

Install Memcached itself and a Memcached binding such as python-memcached.

For a single horizon instance use the CACHES setting like the example below.:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    },
}

For multiple horizon instances behind a load balancer configure each instance to use the same cache like the example below.:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': [u'10.2.100.133:11211', u'10.2.100.134:11211'']
    },
}

NOTE:

As of the Mitaka release, the dashboard for trove is now maintained outside of the Horizon codebase, in this repository.

Trove project: https://opendev.org/openstack/trove/

Trove at wiki.openstack.org: https://wiki.openstack.org/wiki/Trove

Launchpad project: https://launchpad.net/trove-dashboard