Framework for building UIs for OpenStack projects dealing with complex input data
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Vlad Okhrimenko 7c09eb5fb5 No need to use disableDefaultClickBehaviour 3 years ago
bin Add karma testing 4 years ago
extensions Provide 'validatable-with' directive 3 years ago
merlin No need to use disableDefaultClickBehaviour 3 years ago
tools Rewrite Merlin as a collection of Django apps for Horizon integration 4 years ago
.gitignore Refactor third-party libraries usage and clean up karma config 4 years ago
.gitreview Added .gitreview 4 years ago
Gruntfile.js Add karma testing 4 years ago
README.md Well, the last fix to the deployment instructions :) 3 years ago
bower.json Refactor third-party libraries usage and clean up karma config 4 years ago
karma-unit.conf.js Rewrite <editable> directive 4 years ago
nodeenv.sh Add karma testing 4 years ago
package.json Added npm run test-unit to merlin's package.json file 4 years ago
requirements.txt Rewrite Merlin as a collection of Django apps for Horizon integration 4 years ago
test-requirements.txt Rewrite Merlin as a collection of Django apps for Horizon integration 4 years ago
tox.ini Add karma testing 4 years ago

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 openstack_dashboard.settings

    DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.sqlite3',
           'NAME': 'horizon.sqlite3'
       }
    }
    

and run openstack-dashboard/manage.py syncdb after that.

  1. 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
  3. node_modules/.bin/bower install
  4. sudo npm install -g grunt-cli
  5. grunt test:unit

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