Sahara UI Installation Guide
============================

Sahara UI is a plugin for OpenStack Dashboard. There are two ways to install
it. One is to plug it into existing Dashboard installation and another is
to setup another Dashboard and plug Sahara UI there. The first approach
advantage is that you will have Sahara UI in the very same Dashboard with
which you work with OpenStack. The disadvantage is that you have to tweak
your Dashboard configuration in order to enable the plugin. The second
approach does not have this disadvantage.

Further steps describe installation for the first approach. For the second
approach see :doc:`/horizon/dev.environment.guide`

1. Prerequisites
----------------

1) OpenStack IceHouse installed.

2) Sahara installed, configured and running, see :doc:`/userdoc/installation.guide`.

2. Sahara Dashboard Installation
--------------------------------

1) Go to the machine where Dashboard resides and install Sahara UI there:

   For RDO:

.. sourcecode:: console

    $ sudo yum install python-django-sahara
..

   Otherwise:

.. sourcecode:: console

    $ sudo pip install sahara-dashboard
..

   This will install the latest stable release of Sahara UI. If you
   want to install the development version of Sahara UI do the
   following instead:

.. sourcecode:: console

    $ sudo pip install http://tarballs.openstack.org/sahara-dashboard/sahara-dashboard-master.tar.gz
..

   Note that dev version might be broken at any time and also it
   might lose backward compatibility with Icehouse release at some point.

2) Configure OpenStack Dashboard. In ``settings.py`` add sahara to

.. sourcecode:: python

    HORIZON_CONFIG = {
        'dashboards': ('nova', 'syspanel', 'settings', ..., 'sahara'),
..

   and also add saharadashboard to

.. sourcecode:: python

    INSTALLED_APPS = (
        'saharadashboard',
        ....
..

   Note: ``settings.py`` file is located in
   ``/usr/share/openstack-dashboard/openstack_dashboard/`` by default.

3) Now let's switch to another file - ``local_settings.py``.
   If you are using Neutron instead of Nova-Network add the following
   parameter there:

.. sourcecode:: python

   SAHARA_USE_NEUTRON = True
..

   If you are using Nova-Network with ``auto_assign_floating_ip=False`` add
   the following parameter:

.. sourcecode:: python

   AUTO_ASSIGNMENT_ENABLED = False
..

   Note: For RDO, the ``local_settings.py`` file is named
   ``local_settings`` and its absolute path is
   ``/etc/openstack-dashboard/local_settings``, otherwise the file's
   absolute path is
   ``/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py``.

4) You also need to tell Sahara UI where it can find Sahara service.
   There are two ways to do that. First is to define Sahara endpoint in
   Keystone. The endpoint type must be ``data_processing``:

.. sourcecode:: console

    keystone service-create --name sahara --type data_processing \
        --description "Sahara Data Processing"

    keystone endpoint-create --service sahara --region RegionOne \
        --publicurl "http://10.0.0.2:8386/v1.1/%(tenant_id)s" \
        --adminurl "http://10.0.0.2:8386/v1.1/%(tenant_id)s" \
        --internalurl "http://10.0.0.2:8386/v1.1/%(tenant_id)s"
..

   While executing the commands above, don't forget to change IP
   addresses and ports to the ones actual for your setup.

   This approach might not work for you if your Keystone already has Sahara
   endpoint registered. This could be in DevStack and Fuel environments
   as both are capable to install Sahara and Sahara UI on their own. In
   that case use the second approach described below.

   The second way to tell Sahara UI where Sahara service is deployed
   is to specify ``SAHARA_URL`` parameter in ``local_settings.py``.
   For example:

.. sourcecode:: python

    SAHARA_URL = 'http://localhost:8386/v1.1'
..

5) The installation is complete. You need to restart the apache
   web server for the changes to take effect.

   For Ubuntu:

.. sourcecode:: console

    $ sudo service apache2 restart
..

   For Centos:

.. sourcecode:: console

    $ sudo service httpd reload
..

   Now if you log into Horizon you should see the Sahara menu available there.
