tempest/tools
Andrea Frittoli 8bbdb1660f Multiversion authentication part1
Moves authentication from rest_client to an external auth_provider,
assigned to the client by the client manager.

The auth provider can decorate a request based on credentials (coming
from the client manager) and filters (region, service, endpoint_type)
given by the client. The auth provider can also return the raw
auth_data, which in the Keystone implementation is a tuple (token,
auth_data). The auth provider allows mixing multiple credentials
when decorating a request, possibly using empty or invalid credentials,
to facilitate negative tests.

The auth provider caches auth data, so that all API requests for a
specific set of credentials only require a single call to obtain a
token, unless the token expires or is forcefully deleted from the
auth provder.

Two implementations of the auth provider are included: Keystonev2 and
Keystonev3.  The Manager object behaves as factory of auth_providers,
building the correct one based on the configured auth_version, and on
the interface type (JSON or XML).

Fixes endpoint selection for v3 auth. Drops unused basic_auth.
Extends TokenClients to provide both token and auth data,
and accept different combinations of credentials for v3.
Removes redundant server_client_v3_auth.

Adapts tempest unit tests to work with modified rest client.

Introduces a configuration parameter for authentication version to be
used. That is used when instantiating the client manager, and it
applies to all clients used by api tests.

Next steps (next patches):
- move to credentials as dict (as opposed to tuple)
- expose a get_client method from the client manager
  and create clients only when requested
- remove redundant CustomizedHeader object storage clients
- supports keystone v3 in tenant isolation
- use Auth Provider in scenario tests
- use Auth Provider in CLI tests
- implement parsing of catalog XML format (?)

Partially implements: bp multi-keystone-api-version-tests

Change-Id: Icfa921e9051c01f339f8d2471b12d6ec950cc456
2014-02-05 11:34:53 +00:00
..
config sync oslo to current 2014-01-03 09:25:29 -05:00
check_logs.py Remove vim headers 2014-01-20 11:22:45 +09:00
colorizer.py Remove vim headers 2014-01-20 11:22:45 +09:00
find_stack_traces.py Remove vim headers 2014-01-20 11:22:45 +09:00
generate_sample.sh Improve the UX around sample config generation 2013-11-26 15:47:52 +00:00
install_venv_common.py sync oslo to current 2014-01-03 09:25:29 -05:00
install_venv.py Remove vim headers 2014-01-20 11:22:45 +09:00
pretty_tox_serial.sh Set pipefail for wrapper scripts 2013-12-14 10:42:20 -05:00
pretty_tox.sh Set pipefail for wrapper scripts 2013-12-14 10:42:20 -05:00
skip_tracker.py Remove vim headers 2014-01-20 11:22:45 +09:00
tempest_auto_config.py Remove vim headers 2014-01-20 11:22:45 +09:00
verify_tempest_config.py Multiversion authentication part1 2014-02-05 11:34:53 +00:00
with_venv.sh Fix use of venv in Tempest. 2012-12-18 09:51:23 -05:00