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)