180 lines
5.4 KiB
ReStructuredText
180 lines
5.4 KiB
ReStructuredText
========================
|
|
Team and repository tags
|
|
========================
|
|
|
|
.. image:: https://governance.openstack.org/badges/manila-ui.svg
|
|
:target: https://governance.openstack.org/reference/tags/index.html
|
|
|
|
.. Change things from this point on
|
|
|
|
===============================
|
|
manila-ui
|
|
===============================
|
|
|
|
Manila Management Dashboard
|
|
|
|
* Free software: Apache license
|
|
|
|
.. Uncomment these bullet items when the project is integrated into OpenStack
|
|
|
|
* Source: https://git.openstack.org/cgit/openstack/manila-ui
|
|
* Bugs: https://bugs.launchpad.net/manila-ui
|
|
|
|
|
|
Installation instructions
|
|
-------------------------
|
|
|
|
For Manila UI installation in RDO, see:
|
|
`Installing Manila UI in RDO`_. For other distributions, begin by
|
|
cloning the Horizon and Manila UI repositories::
|
|
|
|
git clone https://github.com/openstack/horizon
|
|
git clone https://github.com/openstack/manila-ui
|
|
|
|
Create a virtual environment and install Horizon dependencies::
|
|
|
|
cd horizon
|
|
python tools/install_venv.py
|
|
|
|
Set up your ``local_settings.py`` file::
|
|
|
|
cp openstack_dashboard/local/local_settings.py.example openstack_dashboard/local/local_settings.py
|
|
|
|
Open up the copied ``local_settings.py`` file in your preferred text
|
|
editor. You will want to customize several settings:
|
|
|
|
- ``OPENSTACK_HOST`` should be configured with the hostname of your
|
|
OpenStack server. Verify that the ``OPENSTACK_KEYSTONE_URL`` and
|
|
``OPENSTACK_KEYSTONE_DEFAULT_ROLE`` settings are correct for your
|
|
environment. (They should be correct unless you modified your
|
|
OpenStack server to change them.)
|
|
|
|
|
|
Install Manila UI with all dependencies in your virtual environment::
|
|
|
|
tools/with_venv.sh pip install -e ../manila-ui/
|
|
|
|
And enable it in Horizon::
|
|
|
|
cp ../manila-ui/manila_ui/local/enabled/_*.py openstack_dashboard/local/enabled
|
|
cp ../manila-ui/manila_ui/local/local_settings.d/_90_manila_*.py openstack_dashboard/local/local_settings.d
|
|
|
|
|
|
Starting the app
|
|
----------------
|
|
|
|
If everything has gone according to plan, you should be able to run::
|
|
|
|
./run_tests.sh --runserver 0.0.0.0:8080
|
|
|
|
and have the application start on port 8080. The horizon dashboard will
|
|
be located at http://localhost:8080/
|
|
|
|
Installing Manila UI in RDO
|
|
---------------------------
|
|
|
|
In order to install Manila UI in [RDO](https://www.rdoproject.org),
|
|
please follow the steps below (you may need to use `sudo` privileges
|
|
if you are not root)::
|
|
|
|
# yum install -y openstack-manila-ui
|
|
# systemctl restart httpd
|
|
# systemctl restart memcached
|
|
|
|
Manila UI will now be available through OpenStack Horizon; look for
|
|
the Shares tab under Project > Compute. You can access Horizon with
|
|
Manila UI using the same URL and port as before.
|
|
|
|
_`Configuration`
|
|
----------------
|
|
|
|
It is possible to enable or disable some Manila UI features. To do so,
|
|
look for files located in "manila_ui/local/local_settings.d/" directory,
|
|
where you can redefine the values of the OPENSTACK_MANILA_FEATURES dict::
|
|
|
|
* enable_share_groups
|
|
* enable_replication
|
|
* enable_migration
|
|
* enable_public_share_type_creation
|
|
* enable_public_share_group_type_creation
|
|
* enable_public_shares
|
|
* enabled_share_protocols
|
|
|
|
By default, enabled_share_protocols within the OPENSTACK_MANILA_FEATURES
|
|
dict contains a list with all the supported protocols. The operator can
|
|
change this to display to users only those protocols that has been deployed
|
|
and are available to use. E.g. if only NFS is available, the operator is
|
|
expected to redefine enabled_share_protocols as follows:
|
|
|
|
.. code-block:: python
|
|
|
|
OPENSTACK_MANILA_FEATURES = {
|
|
'enable_share_groups': True,
|
|
'enable_replication': True,
|
|
'enable_migration': True,
|
|
'enable_public_share_type_creation': True,
|
|
'enable_public_share_group_type_creation': True,
|
|
'enable_public_shares': True,
|
|
'enabled_share_protocols': ['NFS'],
|
|
}
|
|
|
|
New Features
|
|
------------
|
|
|
|
When implementing a new feature, you may think about making it optional,
|
|
so it could be enabled or disabled in different deployments.
|
|
|
|
How to use it:
|
|
|
|
.. code-block:: python
|
|
|
|
from django.conf import settings
|
|
manila_config = getattr(settings, 'OPENSTACK_MANILA_FEATURES', {})
|
|
manila_config.get('your_new_config_option', 'value_of_config_option')
|
|
|
|
See `Configuration`_ section for more configuration details.
|
|
|
|
It is also expected that each addition of new logic to Manila UI is covered by
|
|
unit tests.
|
|
|
|
Test modules should be located under "manila_ui/tests", satisfying
|
|
the following template when tests are written for a specific module::
|
|
|
|
manila_ui[/tests]/path/to/[test_]modulename.py
|
|
|
|
However, when testing the flow between different modules (using test app),
|
|
the tests can be added to a test module that can satisfy
|
|
the following template::
|
|
|
|
manila_ui[/tests]/path/to/directory/tests.py
|
|
|
|
Manila UI tests use the mock library for testing.
|
|
|
|
Running unit tests
|
|
------------------
|
|
|
|
The unit tests can be executed directly from within this Manila UI plugin
|
|
project directory by using::
|
|
|
|
$ cd ../manila-ui
|
|
$ tox
|
|
|
|
This is made possible by the dependency in test-requirements.txt upon the
|
|
horizon source, which pulls down all of the horizon and openstack_dashboard
|
|
modules that the plugin uses.
|
|
|
|
To run only py27 unit tests, use following command::
|
|
|
|
$ tox -e py27
|
|
|
|
To run only py34 unit tests, use following command::
|
|
|
|
$ tox -e py34
|
|
|
|
To run unit tests using specific Django version use the following::
|
|
|
|
$ tox -e py27dj17
|
|
$ tox -e py27dj18
|
|
$ tox -e py27dj19
|
|
$ tox -e py27dj110
|