This page describes how to setup Horizon for developing Sahara by either installing it as part of DevStack with Sahara or installing it in an isolated environment and running from the command line.
See the DevStack guide for more information on installing and configuring DevStack with Sahara.
Sahara UI can be installed as a DevStack plugin by adding the following line to your local.conf file
Note The host where you are going to perform installation has to be able to connect to all OpenStack endpoints. You can list all available endpoints using the following command:
$ keystone endpoint-list
You can list the registered services with this command:
$ keystone service-list
Sahara service should be present in keystone service list with service type data-processing
$ sudo apt-get update $ sudo apt-get install git-core python-dev gcc python-setuptools \ python-virtualenv node-less libssl-dev libffi-dev libxslt-devOn Ubuntu 12.10 and higher you have to install the following lib as well:
$ sudo apt-get install nodejs-legacy
Here is an example:
$ git clone https://github.com/openstack/horizon {HORIZON_DIR}Then install the virtual environment:
$ python {HORIZON_DIR}/tools/install_venv.py
$ cp {HORIZON_DIR}/openstack_dashboard/local/local_settings.py.example {HORIZON_DIR}/openstack_dashboard/local/local_settings.py
Set the proper values for host and url variables:
OPENSTACK_HOST = "ip of your controller"If you are using Nova-Network with auto_assign_floating_ip=True add the following parameter:
SAHARA_AUTO_IP_ALLOCATION_ENABLED = True
Clone sahara-dashboard repository and checkout the desired branch
$ git clone https://github.com/openstack/sahara-dashboard {SAHARA_DASHBOARD_DIR}
Copy plugin-enabling files from sahara-dashboard repository to horizon
$ cp -a {SAHARA_DASHBOARD_DIR}/sahara_dashboard/enabled/* {HORIZON_DIR}/openstack_dashboard/local/enabled/
Install sahara-dashboard project into horizon virtualenv.
$ source {HORIZON_DIR}/.venv/bin/activate
$ pip install {SAHARA_DASHBOARD_DIR}
Start Horizon
$ source {HORIZON_DIR}/.venv/bin/activate $ python {HORIZON_DIR}/manage.py runserver 0.0.0.0:8080This will start Horizon in debug mode. That means the logs will be written to console and if any exceptions happen, you will see the stack-trace rendered as a web-page.
Debug mode can be disabled by changing DEBUG=True to False in local_settings.py. In that case Horizon should be started slightly differently, otherwise it will not serve static files:
$ source {HORIZON_DIR}/.venv/bin/activate $ python {HORIZON_DIR}/manage.py runserver --insecure 0.0.0.0:8080Note It is not recommended to use Horizon in this mode for production.
If you have changed any files in {SAHARA_DASHBOARD_DIR}/sahara_dashboard/content/data_processing directory, You will need to update horizon virtualenv by installing sahara-dashboard again as on step 7.