Framework for building UIs for OpenStack projects dealing with complex input data
Go to file
Michael Krotscheck 4beaf29f6e Added test execution in Firefox.
This adds capturing and executing tests in the Firefox browser. It also
adds the use of the jasmine-jquery framework to permit easier detection
of DOM elements in a rendered directive, as the present method does not
play well with Firefox' tendency to randomly reorder attribute positions.

Testing with Firefox is already supported in infra.

Change-Id: Ifc81e1b243975536ee40e627c1e4a164855fe85c
2015-06-17 12:19:32 -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 Added test execution in Firefox. 2015-06-17 12:19:32 -07: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 Added test execution in Firefox. 2015-06-17 12:19:32 -07:00
nodeenv.sh Add karma testing 2015-04-17 15:27:11 +03:00
package.json Added test execution in Firefox. 2015-06-17 12:19:32 -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