Merge "Add a service catalog override url for the functional tests"

This commit is contained in:
Jenkins 2015-09-01 11:25:32 +00:00 committed by Gerrit Code Review
commit a4fb27ac27
3 changed files with 25 additions and 11 deletions
doc/source
functionaltests/common

@ -39,6 +39,9 @@ The config file should look like the following:
:: ::
[identity] [identity]
# optionally override the url from the service catalog
# designate_override_url = http://designate.example.com
# Replace these with values that represent your identity configuration # Replace these with values that represent your identity configuration
uri = http://localhost:5000/v2.0 uri = http://localhost:5000/v2.0
uri_v3 = http://localhost:5000/v3 uri_v3 = http://localhost:5000/v3

@ -27,6 +27,17 @@ from tempest_lib.auth import KeystoneV2AuthProvider
from functionaltests.common.utils import memoized from functionaltests.common.utils import memoized
class KeystoneV2AuthProviderWithOverridableUrl(KeystoneV2AuthProvider):
def base_url(self, *args, **kwargs):
# use the base url from the config if it was specified
if cfg.CONF.identity.designate_override_url:
return cfg.CONF.identity.designate_override_url
else:
return super(KeystoneV2AuthProviderWithOverridableUrl, self) \
.base_url(*args, **kwargs)
class BaseDesignateClient(RestClient): class BaseDesignateClient(RestClient):
def __init__(self): def __init__(self):
@ -49,6 +60,12 @@ class BaseDesignateClient(RestClient):
def _get_keystone_auth_provider(self): def _get_keystone_auth_provider(self):
pass pass
def _create_keystone_auth_provider(self, creds):
auth_provider = KeystoneV2AuthProviderWithOverridableUrl(
creds, cfg.CONF.identity.uri)
auth_provider.fill_credentials()
return auth_provider
class DesignateClient(BaseDesignateClient): class DesignateClient(BaseDesignateClient):
"""Client with default user""" """Client with default user"""
@ -65,9 +82,7 @@ class DesignateClient(BaseDesignateClient):
password=cfg.CONF.identity.password, password=cfg.CONF.identity.password,
tenant_name=cfg.CONF.identity.tenant_name, tenant_name=cfg.CONF.identity.tenant_name,
) )
auth_provider = KeystoneV2AuthProvider(creds, cfg.CONF.identity.uri) return self._create_keystone_auth_provider(creds)
auth_provider.fill_credentials()
return auth_provider
class DesignateAltClient(BaseDesignateClient): class DesignateAltClient(BaseDesignateClient):
@ -85,9 +100,7 @@ class DesignateAltClient(BaseDesignateClient):
password=cfg.CONF.identity.alt_password, password=cfg.CONF.identity.alt_password,
tenant_name=cfg.CONF.identity.alt_tenant_name, tenant_name=cfg.CONF.identity.alt_tenant_name,
) )
auth_provider = KeystoneV2AuthProvider(creds, cfg.CONF.identity.uri) return self._create_keystone_auth_provider(creds)
auth_provider.fill_credentials()
return auth_provider
class DesignateAdminClient(BaseDesignateClient): class DesignateAdminClient(BaseDesignateClient):
@ -105,9 +118,7 @@ class DesignateAdminClient(BaseDesignateClient):
password=cfg.CONF.identity.admin_password, password=cfg.CONF.identity.admin_password,
tenant_name=cfg.CONF.identity.admin_tenant_name, tenant_name=cfg.CONF.identity.admin_tenant_name,
) )
auth_provider = KeystoneV2AuthProvider(creds, cfg.CONF.identity.uri) return self._create_keystone_auth_provider(creds)
auth_provider.fill_credentials()
return auth_provider
class ClientMixin(object): class ClientMixin(object):

@ -27,8 +27,8 @@ cfg.CONF.register_group(cfg.OptGroup(
)) ))
cfg.CONF.register_opts([ cfg.CONF.register_opts([
cfg.StrOpt('designate_endpoint_override', cfg.StrOpt('designate_override_url',
help="Endpoint to use to bypass Keystone auth"), help="Use this instead of the endpoint in the service catalog"),
cfg.StrOpt('uri', help="The Keystone v2 endpoint"), cfg.StrOpt('uri', help="The Keystone v2 endpoint"),
cfg.StrOpt('uri_v3', help="The Keystone v3 endpoint"), cfg.StrOpt('uri_v3', help="The Keystone v3 endpoint"),