Call super class after extension check in vpnaas api test

This commit fixes a bug in test_vpnaas_extensions.py. If the extension
is disabled then the tenant isolation code is called generating a new
tenant and the resources needed to use it in this test. However, since
the skip exception is raised after the super() call the tearDownClass
will not be run. This will cause the resources created by tenant
isolation to never get deleted. This commit fixes this behavior by
moving the skip before the super call.

Change-Id: Id7915978e7a42f641ff99493cb3918424dd98674
Closes-Bug: #1268852
Skip negative tests of v3 server metadata

If sending long metadata to "create a server" API of Nova v3 API,
the API returns an OverLimit response now.

However the commit Ic17d2227909c9180ca86c9d578dad4c73ec57dfc will
change the response to BadRequest. To verify the commit on Jenkins,
it is necessary to skip the tests related to long metadata temporary.

Change-Id: Ic03c2247505780fbeda68e908298a98862ea0c7c
Related-Bug: #1273948
remove unused variable

Follow-up to 3c0b5b9, remove this variable. It's not used anymore.

Change-Id: I390d694cf5650d137763391717c39677537526d7
Add log info for tempest SSH connection issues

The patch does the following:
1. Add in extra information
2. Logs current attempts
3. Waits a little longer prior to the next SSH attempt

Related-bug: #1253896

Change-Id: I878362899b4cf81143c02c15c55936b33cf65ec8
Remove unnecessary volume creation in test_server_rescue

The setup in test_server_rescue is creating two volumes where really
only one shared volume is necessary, so remove the second volume. This
patch also uses the common base class code to wait for the volume
deletion on tear down and makes the volume name random within the
context of the class name for easier debugging.

This patch moves the volume create/delete into the specific test cases
that need them, uses the common base class code to delete the volume and
wait for it to be gone, and also moves the _delete_volume method from
the v2 compute base test class into it's parent so the v3 compute base
test case can also use it with it's own volumes client.

Partial-Bug: #1254772

Change-Id: Id98f65cc2843a97221222e86c60b3859e15af869
Removes leftover self.conf from isolated creds

Partially implements bp config-cleanup

Change-Id: I069fd68eae3998c62efd144e1d5a44ca185e3511
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
Clean/leave OpenStack after a stress test

New parameter "leave_dirty_stack" available in tempest.conf
to prevent (or not) the execution of tearDownClass()
after an exception during a stress test

Closes-Bug: #1273245
Change-Id: I89ecac1fb428cf8809a3634869f2dfdf564aea64
Use isolation credentials for neutron api tests

This commit just adds the use of isolated credentials to the neutron
api tests if tenant isolation is enabled. Previously the neutron
tests would all run in the same tenant regardless of the config
option.

Change-Id: I3f7b76dc273874c99147896b8c8052b75a8106b0
Merge "remove unused variable"
Merge "Clean/leave OpenStack after a stress test"
Merge "Skip negative tests of v3 server metadata"
Merge "Use isolation credentials for neutron api tests"
Merge "Add log info for tempest SSH connection issues"
Merge "Removes leftover self.conf from isolated creds"
Merge "Call super class after extension check in vpnaas api test"
Merge "Remove unnecessary volume creation in test_server_rescue"