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:
parent
4ec06d749a
commit
c786213f95
|
@ -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)
|
||||
|
|
|
@ -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',
|
||||
|
|
Loading…
Reference in New Issue