3148fc8903
Fuzzy dependencies tend to be a little brittle, as breaking changes could be introduced that engineers are not aware of. This locks down the versions used in this project's npm dependencies. (The bower dependencies didn't need them). Change-Id: I5bacb62a724b803926aa16859e536b15a74d40c1 |
||
---|---|---|
bin | ||
extensions | ||
merlin | ||
tools | ||
.gitignore | ||
.gitreview | ||
Gruntfile.js | ||
README.md | ||
bower.json | ||
karma-unit.conf.js | ||
nodeenv.sh | ||
package.json | ||
requirements.txt | ||
test-requirements.txt | ||
tox.ini |
README.md
Instructions on integrating Merlin extensions into Horizon
Although the repo contains directories meant to be used as Django apps (with templates, static files, urls & views), the whole project is not meant to be run as a standalone Django web-application (with its own settings.py etc). Instead, it should be embedded into running Horizon instance. To do so you should perform the following steps:
-
The easiest way to always use the latest version of Merlin is by using symlinks. Identify the directory where
openstack_dashboard
andhorizon
reside. Let's assume this is/usr/lib/python2.7/site-packages
and merlin repo is located at/home/user/dev/merlin
. Then run the following commands# for main Merlin sources ln -s /home/user/dev/merlin/merlin /usr/lib/python2.7/site-packages/merlin # for files of the Merlin's Mistral extension ln -s /home/user/dev/merlin/extensions/mistral /usr/lib/python2.7/site-packages/mistral
-
Next thing to do is add panel with Mistral Workbook builder (a Merlin extension) into Horizon. To do it, copy the pluggable config for the Mistral panel:
cp /home/user/dev/merlin/extensions/enabled/_50_add_mistral_panel.py /usr/lib/python2.7/site-packages/openstack_dashboard/enabled/
-
This step is TEMPORARY and will be needed until the real API for listing/ loading/ saving of Mistral workbooks is implemented. You need to add the following setting to the top of
/home/user/dev/horizon/openstack_dashboard/local/local_settings.py
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'horizon.sqlite3' } }
and run
/home/user/dev/horizon/manage.py syncdb
after that. -
Restart Horizon web-server. According to the default values in
_50_add_mistral_panel.py
you would be able to Mistral panel inside the Project dashboard, Orchestration panel group.
How to run Merlin unit-tests locally
cd /home/user/dev/merlin
npm install
- If npm is not installed yet, run
sudo apt-get install npm
(let's assume you're using Ubuntu) andsudo apt-get install nodejs-legacy
node_modules/.bin/bower install
sudo npm install -g grunt-cli
grunt test:unit
For more info please refer to https://wiki.openstack.org/wiki/Merlin