Trove Horizon plugin.
Go to file
OpenStack Release Bot f1b781c9e1 Switch to 2023.1 Python3 unit tests and generic template name
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for antelope. Also,
updating the template name to generic one.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: I94383e91a50347776727feabad9d0e6c6401af96
2022-09-16 15:21:09 +00:00
devstack Calls manager.py by "$PYTHON" instead of "env python" 2020-03-31 07:17:34 +00:00
doc Add doc/requirements 2021-01-07 17:15:30 +01:00
releasenotes Update master for stable/zed 2022-09-16 15:21:08 +00:00
tools Avoid tox-install.sh 2018-03-14 21:14:23 +01:00
trove_dashboard Merge "Django 4: django.conf.urls.url is removed" 2022-08-18 14:03:20 +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 Switch to 2023.1 Python3 unit tests and generic template name 2022-09-16 15:21:09 +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 Adds a full example of devstack local.conf 2020-03-26 10:16:59 +00:00
requirements.txt Use MultiIPField for access form to avoid need for custom validation 2021-03-06 10:45:14 +00:00
run_tests.sh Completing the plugin 2015-12-18 15:53:31 -07:00
setup.cfg Update python testing as per zed cycle testing runtime 2022-07-11 14:54:37 +09:00
setup.py Cleanup py27 support 2020-04-07 18:39:22 +02:00
test-requirements.txt Add doc/requirements 2021-01-07 17:15:30 +01:00
tox.ini Add python3.9 support 2022-04-28 22:02:02 +08: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

Here is a full example of devstack local.conf file that includes the trove plugin:

[[local|localrc]]
RECLONE=False
HOST_IP=<your-host-ip-here>

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

LIBS_FROM_GIT+=,python-troveclient
DATABASE_PASSWORD=password
ADMIN_PASSWORD=password
SERVICE_PASSWORD=password
SERVICE_TOKEN=password
RABBIT_PASSWORD=password
LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=False
LOGDAYS=1

IPV4_ADDRS_SAFE_TO_USE=10.111.0.0/26
FIXED_RANGE=10.111.0.0/26
NETWORK_GATEWAY=10.111.0.1
FLOATING_RANGE=172.30.5.0/24
PUBLIC_NETWORK_GATEWAY=172.30.5.1

# Pre-requisites
ENABLED_SERVICES=rabbit,mysql,key

# Horizon
enable_service horizon

# Nova
enable_service n-api
enable_service n-cpu
enable_service n-cond
enable_service n-sch
enable_service n-api-meta
enable_service placement-api
enable_service placement-client

# Glance
enable_service g-api
enable_service g-reg

# Cinder
enable_service cinder
enable_service c-api
enable_service c-vol
enable_service c-sch

# Neutron
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta

# enable DVR
Q_PLUGIN=ml2
Q_ML2_TENANT_NETWORK_TYPE=vxlan
Q_DVR_MODE=legacy

# Swift
ENABLED_SERVICES+=,swift
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
SWIFT_REPLICAS=1

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