Framework for building UIs for OpenStack projects dealing with complex input data
Go to file
Michael Krotscheck 3148fc8903 Removed fuzzy dependencies.
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
2015-06-16 12:06:29 -07:00
bin Add karma testing 2015-04-17 15:27:11 +03:00
extensions Restrict existing Action/Workflow to the existing ones 2015-06-16 17:17:47 +00:00
merlin Restrict existing Action/Workflow to the existing ones 2015-06-16 17:17:47 +00:00
tools Rewrite Merlin as a collection of Django apps for Horizon integration 2014-10-16 19:32:50 +04:00
.gitignore Refactor third-party libraries usage and clean up karma config 2015-04-25 19:18:52 +00:00
.gitreview Added .gitreview 2014-08-28 23:51:02 +00:00
Gruntfile.js Add karma testing 2015-04-17 15:27:11 +03:00
README.md Added some minor fixes to documentation. 2015-06-06 16:14:27 -07:00
bower.json Refactor third-party libraries usage and clean up karma config 2015-04-25 19:18:52 +00:00
karma-unit.conf.js Rewrite <editable> directive 2015-04-28 17:05:18 +03:00
nodeenv.sh Add karma testing 2015-04-17 15:27:11 +03:00
package.json Removed fuzzy dependencies. 2015-06-16 12:06:29 -07:00
requirements.txt Rewrite Merlin as a collection of Django apps for Horizon integration 2014-10-16 19:32:50 +04:00
test-requirements.txt Rewrite Merlin as a collection of Django apps for Horizon integration 2014-10-16 19:32:50 +04:00
tox.ini Add karma testing 2015-04-17 15:27:11 +03:00

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:

  1. The easiest way to always use the latest version of Merlin is by using symlinks. Identify the directory where openstack_dashboard and horizon 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
    
  2. 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/
    
  3. 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.

  4. 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

  1. cd /home/user/dev/merlin
  2. npm install
  • If npm is not installed yet, run sudo apt-get install npm (let's assume you're using Ubuntu) and sudo apt-get install nodejs-legacy
  1. node_modules/.bin/bower install
  2. sudo npm install -g grunt-cli
  3. grunt test:unit

For more info please refer to https://wiki.openstack.org/wiki/Merlin