tempest-plugin/README.rst
Rick Bartra 9ede7e5237 Cleanup clients, add documenation, and fix 2 tests
This commit does the following:

- Cleanup the service clients to not hard code resource values
  used in API endpoints
- Add documentation to the README
- Fix the following tests that were not previously working:
  - `test_get_action_validation`
  - `test_invoke_action_control`

Change-Id: I8636f3b704871ad98c346b4a19c7f7f41c705e13
2018-08-24 17:33:47 -04:00

60 lines
3.0 KiB
ReStructuredText

===============================================
Tempest Integration of airship-tempest-plugin
===============================================
Purpose:
--------
The purpose of this plugin is to provide automated tests
for all OpenStack Airship components.
DISCALIMER:
-----------
This initial implementation is just to meet the first use case which is RBAC
testing. For RBAC testing, we only need to hit the API endpoint and check
role permission to the API being tested. Some of the REST clients will need to be
rewritten if functional testing is desired. Those that need to be rewritten
are documented in each service client code.
Environment Information:
------------------------
Testing can be done in a airship-in-a-bottle environment. Please refer to [0] and [1].
Tempest and Tempest plugin installation can be done in a Python virtual environment.
FAQ:
----
- Where do the REST clients exist?
https://github.com/att-comdev/airship-tempest-plugin/tree/master/airship_tempest_plugin/services
- Where do the tests exists? [3]
https://github.com/att-comdev/airship-tempest-plugin/tree/master/airship_tempest_plugin/tests/api
- Example of where/how the REST clients are instantiated.
https://github.com/att-comdev/airship-tempest-plugin/blob/master/airship_tempest_plugin/tests/api/shipyard/base.py
- Where do we define expected results (requirements)?
https://github.com/att-comdev/airship-tempest-plugin/blob/master/airship_tempest_plugin/tests/api/common/rbac_roles.yaml
- Where do we add configuration to support another Airship component?
https://github.com/att-comdev/airship-tempest-plugin/blob/master/airship_tempest_plugin/config.py
- Where do we run the test from?
After the plugin is installed, run it from the tempest directory
- Example of how to run all the RBAC tests for Shipyard:
'tempest run --regex airship_tempest_plugin.tests.api.shipyard.rbac'
- What is Patrole?
https://github.com/openstack/patrole/blob/master/README.rst
- What is a Tempest plugin? [8]
https://docs.openstack.org/tempest/latest/plugin.html
Patrole Supporting Documentation:
---------------------------------
Patrole documentation for requirements driven approach that is used: https://github.com/openstack/patrole/blob/master/doc/source/framework/requirements_authority.rst
Patrole role-overriding: https://github.com/openstack/patrole/blob/master/doc/source/framework/rbac_utils.rst#role-overriding
Patrole under-permission exception: https://github.com/openstack/patrole/blob/master/patrole_tempest_plugin/rbac_exceptions.py#L51
Patrole over-permission exception: https://github.com/openstack/patrole/blob/master/patrole_tempest_plugin/rbac_exceptions.py#L44
Future Considerations:
---------------------
Will the airship-tempest-plugin continue to live here: https://github.com/att-comdev/airship-tempest-plugin or will it be moved under OpenStack?
Will there exist a RBAC gate for all Airship projects?
Referenced Links:
-----------------
[0] https://github.com/openstack/airship-in-a-bottle
[1] https://www.airshipit.org/