This directory contains Tempest tests to cover the contrail project, as well as a plugin to automatically load these tests into tempest. This is a set of integration tests to be run against a live open-contrail cluster. Tempest has test-cases for Contrail API validation, scenarios, and other specific tests useful in validating an open-contrail deployment.
See the tempest plugin docs for information on using it:
http://docs.openstack.org/developer/tempest/plugin.html#using-plugins
See the tempest docs for information on writing new tests etc:
http://docs.openstack.org/developer/tempest/
To run tungsten-tempest, you must first have Tempest installed and configured properly. Please reference Tempest's Quickstart guide to do so and for all exact details. Follow all the steps outlined therein.
Here are some sample steps:
$ git clone https://git.openstack.org/openstack/tempest
$ cd tempest
$ pip install -r requirements.txt
$ pip install -r test-requirements.txt
$ pip install tox
$ pip install tempest
Now below command should show you list of available tempest test cases.
$ ostestr -l
You can install all these including tempest in a virtual environment. If virtual environment is not installed, then install it using "sudo apt-get install python-virtualenv
". Afterward, proceed with the steps below.
This is done with pip after you check out the Patrole repo. Please reference Patrole
Quickstart guide for further details.
Here are some sample steps:
$ git clone https://git.openstack.org/openstack/patrole
$ cd patrole
$ pip install -e .
NOTE: This can be done within a venv. Now below command should show you list of available Patrole test cases.
$ ostestr -l | grep patrole
This is done with pip after you check out the tungsten-tempest repo:
$ git clone https://github.com/tungstenfabric/tungsten-tempest
$ pip install -e tungsten_tempest/
NOTE: This can be done within a venv. Now below command should show you list of available tungsten-tempest test cases.
$ ostestr -l | grep tungsten
You must properly configure tempest, which is relatively straightforward. For details on configuring tempest refer to the tempest-configuration.
Next you must properly configure Patrole, which is relatively straightforward. For details on configuring Patrole refer to the patrole-configuration
Next you must properly configure tungsten-fabric, which is relatively straightforward too. For details on configuring tungsten-fabric refer to the tungsten-configuration.
After comfiguring tempmest.conf as per tempest and Patrole requirements, please make below changes too in the patrole section of tempest.conf:
test_custom_requirements must be true if you want to run tests against a `custom_requirements_file` which defines RBAC requirements.
custom_requirements_file must be absolute path of file path of the YAML file that defines your RBAC requirements.
For the details about these flags please refer patrole.conf.sample file.
NOTE: Make sure you have contrail endpoints in keystone catalog-list already like sdn-l-config-*. Otherwise configure below two keys under [sdn] section of tempest.conf.
[sdn]
endpoint_type = <public|admin|internal|publicURL|adminURL|internalURL>
catalog_type = <Catalog type of the SDN service, default sdn-l-config>
Once the configuration is done you're now ready to run tungsten-fabric.
The easiest way to run is using any testr utilities like below:
$ ostestr run --regex tungsten_tempest_plugin.tests.api
This can also be done using the tempest_run command. This can be done by running:
$ tempest run --regex '^tungsten_tempest_plugin\.tests\.api'
There is also the option to use testr directly, or any testr based test runner, like ostestr. For example, from the work-space dir run:
$ stestr --regex '(?!.*\[.*\bslow\b.*\])(^tungsten_tempest_plugin\.tests\.api))'
will run the same set of tests as the default gate jobs.
You can also run tungsten_tempest tests using tox. To do so, cd
into the Tempest directory and run:
$ tox -eall-plugin -- tungstent_tempest_plugin.tests.api
Log information from tests is captured in tempest.log
under the Tempest repository. Some Patrole debugging information is captured in that log related to expected test results and role-overriding.
More detailed RBAC testing log output is emitted to tungsten_log
.
To configure tungsten-tempest's logging, see the tungsten-tempest-configuration guide.
To change the role that the tungsten_tempest tests are being run as, edit rbac_test_role
in the patrole
section of tempest.conf:
[patrole]
rbac_test_role = member
...
NOTE:
The rbac_test_role
is service-specific. member, for example, is an arbitrary role, but by convention is used to designate the default non-admin role in the system. Most tunsgtent_tempest tests should be run with admin and member roles. However, other services may use entirely different roles.
For more information about the member role and its nomenclature,
please see: https://ask.openstack.org/en/question/4759/member-vs-member/.