Adding 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:

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 module from the unittest package for unit testing.