Added endpoint types for intialization of different IdentityClients

There is a bug https://bugs.launchpad.net/tempest/+bug/1473396 which
describes that IdentityClient always uses admin enpoint but this is
not correct for non-admin api/identity tests. The latter need to use
public endpoint_type instead.

Added one more identity client ('identity_public_client') to two
existent. Added to tempest.conf 3 enpoint_types to [identity] group
instead of old one 'endpoint_type' for intialization of different
IdentityClients:

* CONF.identity.v3_endpoint_type (because Keystone api v3 can be
configured independently from v2);
* CONF.identity.v2_public_endpoint_type (for Keystone v2 public api);
* CONF.identity.v2_admin_endpoint_type (for Keystone v2 admin api).

Thus, non-admin tests in api/identity/v2 directory would use
'identity_public_client'; admin tests in api/identity/admin would use
'identity_client' and v3 tests in api/identity/v3 - identity_v3_client.

Change-Id: Icd5d175f8de6ccdaa6c718f6d4f68677cd4d7008
Closes-Bug: #1473396
This commit is contained in:
Jane Zadorozhna 2015-07-10 14:34:50 +03:00
parent 4ec06d749a
commit c786213f95
2 changed files with 36 additions and 7 deletions

View File

@ -344,15 +344,25 @@ class Manager(manager.Manager):
def _set_identity_clients(self):
params = {
'service': CONF.identity.catalog_type,
'region': CONF.identity.region,
'endpoint_type': 'adminURL'
'region': CONF.identity.region
}
params.update(self.default_params_with_timeout_values)
params_v2_admin = params.copy()
params_v2_admin['endpoint_type'] = CONF.identity.v2_admin_endpoint_type
# Client uses admin endpoint type of Keystone API v2
self.identity_client = IdentityClient(self.auth_provider,
**params)
**params_v2_admin)
params_v2_public = params.copy()
params_v2_public['endpoint_type'] = (
CONF.identity.v2_public_endpoint_type)
# Client uses public endpoint type of Keystone API v2
self.identity_public_client = IdentityClient(self.auth_provider,
**params_v2_public)
params_v3 = params.copy()
params_v3['endpoint_type'] = CONF.identity.v3_endpoint_type
# Client uses the endpoint type of Keystone API v3
self.identity_v3_client = IdentityV3Client(self.auth_provider,
**params)
**params_v3)
self.endpoints_client = EndPointClient(self.auth_provider,
**params)
self.service_client = ServiceClient(self.auth_provider, **params)

View File

@ -112,11 +112,30 @@ IdentityGroup = [
"services' region name unless they are set explicitly. "
"If no such region is found in the service catalog, the "
"first found one is used."),
cfg.StrOpt('endpoint_type',
cfg.StrOpt('v2_admin_endpoint_type',
default='adminURL',
choices=['public', 'admin', 'internal',
'publicURL', 'adminURL', 'internalURL'],
help="The admin endpoint type to use for OpenStack Identity "
"(Keystone) API v2",
deprecated_opts=[cfg.DeprecatedOpt('endpoint_type',
group='identity')]),
cfg.StrOpt('v2_public_endpoint_type',
default='publicURL',
choices=['public', 'admin', 'internal',
'publicURL', 'adminURL', 'internalURL'],
help="The endpoint type to use for the identity service."),
help="The public endpoint type to use for OpenStack Identity "
"(Keystone) API v2",
deprecated_opts=[cfg.DeprecatedOpt('endpoint_type',
group='identity')]),
cfg.StrOpt('v3_endpoint_type',
default='adminURL',
choices=['public', 'admin', 'internal',
'publicURL', 'adminURL', 'internalURL'],
help="The endpoint type to use for OpenStack Identity "
"(Keystone) API v3",
deprecated_opts=[cfg.DeprecatedOpt('endpoint_type',
group='identity')]),
cfg.StrOpt('username',
help="Username to use for Nova API requests."),
cfg.StrOpt('tenant_name',