Remove _get_endpoint_type() from RestClient
_get_endpoint_type() was used for getting endpoint_type from CONF for
each project, but most projects' sections contain a endpoint_type value
and it is easy to specify its value instead of _get_endpoint_type().
In addition, RestClient will become a tempest-lib class and it is needed
to separate CONF values from a RestClient class.
This patch removes _get_endpoint_type() and makes each client specify
its own CONF value.
Change-Id: I5609c56507bb5ad0ce249b020a8bea1fe11bee3e
diff --git a/tempest/common/rest_client.py b/tempest/common/rest_client.py
index 3dd8503..ca87a75 100644
--- a/tempest/common/rest_client.py
+++ b/tempest/common/rest_client.py
@@ -78,14 +78,14 @@
LOG = logging.getLogger(__name__)
- def __init__(self, auth_provider, service,
+ def __init__(self, auth_provider, service, endpoint_type='publicURL',
build_interval=1, build_timeout=60):
self.auth_provider = auth_provider
self.service = service
+ self.endpoint_type = endpoint_type
self.build_interval = build_interval
self.build_timeout = build_timeout
- self.endpoint_url = None
# The version of the API this client implements
self.api_version = None
self._skip_path = False
@@ -139,23 +139,6 @@
service_region = CONF.identity.region
return service_region
- def _get_endpoint_type(self, service):
- """
- Returns the endpoint type for a specific service
- """
- # If the client requests a specific endpoint type, then be it
- if self.endpoint_url:
- return self.endpoint_url
- endpoint_type = None
- for cfgname in dir(CONF._config):
- # Find all config.FOO.catalog_type and assume FOO is a service.
- cfg = getattr(CONF, cfgname)
- catalog_type = getattr(cfg, 'catalog_type', None)
- if catalog_type == service:
- endpoint_type = getattr(cfg, 'endpoint_type', 'publicURL')
- break
- return endpoint_type
-
@property
def user(self):
return self.auth_provider.credentials.username
@@ -188,7 +171,7 @@
def filters(self):
_filters = dict(
service=self.service,
- endpoint_type=self._get_endpoint_type(self.service),
+ endpoint_type=self.endpoint_type,
region=self._get_region(self.service)
)
if self.api_version is not None:
diff --git a/tempest/services/baremetal/base.py b/tempest/services/baremetal/base.py
index 657af29..4bcf2aa 100644
--- a/tempest/services/baremetal/base.py
+++ b/tempest/services/baremetal/base.py
@@ -50,7 +50,8 @@
def __init__(self, auth_provider):
super(BaremetalClient, self).__init__(
- auth_provider, CONF.baremetal.catalog_type)
+ auth_provider, CONF.baremetal.catalog_type,
+ endpoint_type=CONF.baremetal.endpoint_type)
self.uri_prefix = ''
def serialize(self, object_type, object_dict):
diff --git a/tempest/services/compute/json/base.py b/tempest/services/compute/json/base.py
index 68d8614..9187cc4 100644
--- a/tempest/services/compute/json/base.py
+++ b/tempest/services/compute/json/base.py
@@ -30,7 +30,9 @@
if build_timeout is None:
build_timeout = CONF.compute.build_timeout
- super(ComputeClient, self).__init__(auth_provider,
- CONF.compute.catalog_type,
- build_interval=build_interval,
- build_timeout=build_timeout)
+ super(ComputeClient, self).__init__(
+ auth_provider,
+ CONF.compute.catalog_type,
+ endpoint_type=CONF.compute.endpoint_type,
+ build_interval=build_interval,
+ build_timeout=build_timeout)
diff --git a/tempest/services/data_processing/v1_1/client.py b/tempest/services/data_processing/v1_1/client.py
index 7365c85..6004b22 100644
--- a/tempest/services/data_processing/v1_1/client.py
+++ b/tempest/services/data_processing/v1_1/client.py
@@ -24,7 +24,8 @@
def __init__(self, auth_provider):
super(DataProcessingClient, self).__init__(
- auth_provider, CONF.data_processing.catalog_type)
+ auth_provider, CONF.data_processing.catalog_type,
+ endpoint_type=CONF.data_processing.endpoint_type)
def _request_and_check_resp(self, request_func, uri, resp_status):
"""Make a request using specified request_func and check response
diff --git a/tempest/services/identity/json/identity_client.py b/tempest/services/identity/json/identity_client.py
index 3ad60f2..c91b63e 100644
--- a/tempest/services/identity/json/identity_client.py
+++ b/tempest/services/identity/json/identity_client.py
@@ -23,8 +23,8 @@
def __init__(self, auth_provider):
super(IdentityClientJSON, self).__init__(auth_provider,
- CONF.identity.catalog_type)
- self.endpoint_url = 'adminURL'
+ CONF.identity.catalog_type,
+ endpoint_type='adminURL')
def has_admin_extensions(self):
"""
diff --git a/tempest/services/identity/v3/json/base.py b/tempest/services/identity/v3/json/base.py
index acb0ab7..da8e287 100644
--- a/tempest/services/identity/v3/json/base.py
+++ b/tempest/services/identity/v3/json/base.py
@@ -25,6 +25,6 @@
def __init__(self, auth_provider):
super(IdentityV3Client, self).__init__(auth_provider,
- CONF.identity.catalog_type)
- self.endpoint_url = 'adminURL'
+ CONF.identity.catalog_type,
+ endpoint_type='adminURL')
self.api_version = "v3"
diff --git a/tempest/services/image/v1/json/image_client.py b/tempest/services/image/v1/json/image_client.py
index 19f275f..ba3a814 100644
--- a/tempest/services/image/v1/json/image_client.py
+++ b/tempest/services/image/v1/json/image_client.py
@@ -35,8 +35,10 @@
class ImageClientJSON(rest_client.RestClient):
def __init__(self, auth_provider):
- super(ImageClientJSON, self).__init__(auth_provider,
- CONF.image.catalog_type)
+ super(ImageClientJSON, self).__init__(
+ auth_provider,
+ CONF.image.catalog_type,
+ endpoint_type=CONF.image.endpoint_type)
self._http = None
def _image_meta_from_headers(self, headers):
diff --git a/tempest/services/image/v2/json/image_client.py b/tempest/services/image/v2/json/image_client.py
index e617879..23810f9 100644
--- a/tempest/services/image/v2/json/image_client.py
+++ b/tempest/services/image/v2/json/image_client.py
@@ -29,8 +29,10 @@
class ImageClientV2JSON(rest_client.RestClient):
def __init__(self, auth_provider):
- super(ImageClientV2JSON, self).__init__(auth_provider,
- CONF.image.catalog_type)
+ super(ImageClientV2JSON, self).__init__(
+ auth_provider,
+ CONF.image.catalog_type,
+ endpoint_type=CONF.image.endpoint_type)
self._http = None
def _get_http(self):
diff --git a/tempest/services/network/json/network_client.py b/tempest/services/network/json/network_client.py
index 096d6ec..c279efd 100644
--- a/tempest/services/network/json/network_client.py
+++ b/tempest/services/network/json/network_client.py
@@ -40,6 +40,7 @@
def __init__(self, auth_provider):
super(NetworkClientJSON, self).__init__(
auth_provider, CONF.network.catalog_type,
+ endpoint_type=CONF.network.endpoint_type,
build_interval=CONF.network.build_interval,
build_timeout=CONF.network.build_timeout)
self.version = '2.0'
diff --git a/tempest/services/object_storage/base.py b/tempest/services/object_storage/base.py
index 3e8eb4c..3900e82 100644
--- a/tempest/services/object_storage/base.py
+++ b/tempest/services/object_storage/base.py
@@ -25,5 +25,6 @@
def __init__(self, auth_provider):
super(ObjectStorageClient, self).__init__(
- auth_provider, CONF.object_storage.catalog_type)
+ auth_provider, CONF.object_storage.catalog_type,
+ endpoint_type=CONF.object_storage.endpoint_type)
self.format = 'json'
diff --git a/tempest/services/orchestration/json/orchestration_client.py b/tempest/services/orchestration/json/orchestration_client.py
index 6bf7ceb..2dedf01 100644
--- a/tempest/services/orchestration/json/orchestration_client.py
+++ b/tempest/services/orchestration/json/orchestration_client.py
@@ -31,6 +31,7 @@
super(OrchestrationClient, self).__init__(
auth_provider,
CONF.orchestration.catalog_type,
+ endpoint_type=CONF.orchestration.endpoint_type,
build_interval=CONF.orchestration.build_interval,
build_timeout=CONF.orchestration.build_timeout)
diff --git a/tempest/services/telemetry/json/telemetry_client.py b/tempest/services/telemetry/json/telemetry_client.py
index df7a575..622c996 100644
--- a/tempest/services/telemetry/json/telemetry_client.py
+++ b/tempest/services/telemetry/json/telemetry_client.py
@@ -25,8 +25,10 @@
class TelemetryClientJSON(rest_client.RestClient):
def __init__(self, auth_provider):
- super(TelemetryClientJSON, self).__init__(auth_provider,
- CONF.telemetry.catalog_type)
+ super(TelemetryClientJSON, self).__init__(
+ auth_provider,
+ CONF.telemetry.catalog_type,
+ endpoint_type=CONF.telemetry.endpoint_type)
self.version = '2'
self.uri_prefix = "v%s" % self.version
diff --git a/tempest/services/volume/json/base.py b/tempest/services/volume/json/base.py
index e6c997c..1800ee6 100644
--- a/tempest/services/volume/json/base.py
+++ b/tempest/services/volume/json/base.py
@@ -27,5 +27,6 @@
super(VolumeClient, self).__init__(
auth_provider,
CONF.volume.catalog_type,
+ endpoint_type=CONF.volume.endpoint_type,
build_interval=CONF.volume.build_interval,
build_timeout=CONF.volume.build_timeout)