Separate build_interval/timeout from RestClient

RestClient used compute build_interval/timeout values as the default,
even if the other projects' clients. This implementation is not useful
when RestClient is changed to a library class.
Then this patch separates compute build_interval/timeout values from
the class and set the same static values as the default.

Change-Id: Ibc4307b406b71db258975da90a39c1f51ad27e12
diff --git a/tempest/clients.py b/tempest/clients.py
index a79275e..99339c1 100644
--- a/tempest/clients.py
+++ b/tempest/clients.py
@@ -158,8 +158,7 @@
             self.telemetry_client = TelemetryClientJSON(
                 self.auth_provider)
         self.negative_client = rest_client.NegativeRestClient(
-            self.auth_provider)
-        self.negative_client.service = service
+            self.auth_provider, service)
 
         # TODO(andreaf) EC2 client still do their auth, v2 only
         ec2_client_args = (self.credentials.username,
diff --git a/tempest/common/rest_client.py b/tempest/common/rest_client.py
index c54f698..3dd8503 100644
--- a/tempest/common/rest_client.py
+++ b/tempest/common/rest_client.py
@@ -78,16 +78,17 @@
 
     LOG = logging.getLogger(__name__)
 
-    def __init__(self, auth_provider):
+    def __init__(self, auth_provider, service,
+                 build_interval=1, build_timeout=60):
         self.auth_provider = auth_provider
+        self.service = service
+        self.build_interval = build_interval
+        self.build_timeout = build_timeout
 
         self.endpoint_url = None
-        self.service = None
         # The version of the API this client implements
         self.api_version = None
         self._skip_path = False
-        self.build_interval = CONF.compute.build_interval
-        self.build_timeout = CONF.compute.build_timeout
         self.general_header_lc = set(('cache-control', 'connection',
                                       'date', 'pragma', 'trailer',
                                       'transfer-encoding', 'via',
diff --git a/tempest/services/baremetal/base.py b/tempest/services/baremetal/base.py
index 4933300..657af29 100644
--- a/tempest/services/baremetal/base.py
+++ b/tempest/services/baremetal/base.py
@@ -49,8 +49,8 @@
     """
 
     def __init__(self, auth_provider):
-        super(BaremetalClient, self).__init__(auth_provider)
-        self.service = CONF.baremetal.catalog_type
+        super(BaremetalClient, self).__init__(
+            auth_provider, CONF.baremetal.catalog_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 b712452..68d8614 100644
--- a/tempest/services/compute/json/base.py
+++ b/tempest/services/compute/json/base.py
@@ -30,7 +30,7 @@
         if build_timeout is None:
             build_timeout = CONF.compute.build_timeout
 
-        super(ComputeClient, self).__init__(auth_provider)
-        self.service = CONF.compute.catalog_type
-        self.build_interval = build_interval
-        self.build_timeout = build_timeout
+        super(ComputeClient, self).__init__(auth_provider,
+                                            CONF.compute.catalog_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 7acbae7..7365c85 100644
--- a/tempest/services/data_processing/v1_1/client.py
+++ b/tempest/services/data_processing/v1_1/client.py
@@ -21,9 +21,10 @@
 
 
 class DataProcessingClient(rest_client.RestClient):
+
     def __init__(self, auth_provider):
-        super(DataProcessingClient, self).__init__(auth_provider)
-        self.service = CONF.data_processing.catalog_type
+        super(DataProcessingClient, self).__init__(
+            auth_provider, CONF.data_processing.catalog_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/database/json/flavors_client.py b/tempest/services/database/json/flavors_client.py
index f276a45..a57b045 100644
--- a/tempest/services/database/json/flavors_client.py
+++ b/tempest/services/database/json/flavors_client.py
@@ -24,8 +24,8 @@
 class DatabaseFlavorsClientJSON(rest_client.RestClient):
 
     def __init__(self, auth_provider):
-        super(DatabaseFlavorsClientJSON, self).__init__(auth_provider)
-        self.service = CONF.database.catalog_type
+        super(DatabaseFlavorsClientJSON, self).__init__(
+            auth_provider, CONF.database.catalog_type)
 
     def list_db_flavors(self, params=None):
         url = 'flavors'
diff --git a/tempest/services/database/json/versions_client.py b/tempest/services/database/json/versions_client.py
index 81c0e6c..911b55d 100644
--- a/tempest/services/database/json/versions_client.py
+++ b/tempest/services/database/json/versions_client.py
@@ -24,9 +24,9 @@
 class DatabaseVersionsClientJSON(rest_client.RestClient):
 
     def __init__(self, auth_provider):
-        super(DatabaseVersionsClientJSON, self).__init__(auth_provider)
+        super(DatabaseVersionsClientJSON, self).__init__(
+            auth_provider, CONF.database.catalog_type)
         self.skip_path()
-        self.service = CONF.database.catalog_type
 
     def list_db_versions(self, params=None):
         """List all versions."""
diff --git a/tempest/services/identity/json/identity_client.py b/tempest/services/identity/json/identity_client.py
index 281464c..3ad60f2 100644
--- a/tempest/services/identity/json/identity_client.py
+++ b/tempest/services/identity/json/identity_client.py
@@ -22,8 +22,8 @@
 class IdentityClientJSON(rest_client.RestClient):
 
     def __init__(self, auth_provider):
-        super(IdentityClientJSON, self).__init__(auth_provider)
-        self.service = CONF.identity.catalog_type
+        super(IdentityClientJSON, self).__init__(auth_provider,
+                                                 CONF.identity.catalog_type)
         self.endpoint_url = '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 3df0dab..acb0ab7 100644
--- a/tempest/services/identity/v3/json/base.py
+++ b/tempest/services/identity/v3/json/base.py
@@ -24,7 +24,7 @@
     """
 
     def __init__(self, auth_provider):
-        super(IdentityV3Client, self).__init__(auth_provider)
-        self.service = CONF.identity.catalog_type
+        super(IdentityV3Client, self).__init__(auth_provider,
+                                               CONF.identity.catalog_type)
         self.endpoint_url = 'adminURL'
         self.api_version = "v3"
diff --git a/tempest/services/identity/v3/json/identity_client.py b/tempest/services/identity/v3/json/identity_client.py
index 4c8d8df..e45e280 100644
--- a/tempest/services/identity/v3/json/identity_client.py
+++ b/tempest/services/identity/v3/json/identity_client.py
@@ -523,7 +523,7 @@
 class V3TokenClientJSON(rest_client.RestClient):
 
     def __init__(self):
-        super(V3TokenClientJSON, self).__init__(None)
+        super(V3TokenClientJSON, self).__init__(None, None)
         auth_url = CONF.identity.uri_v3
         if not auth_url:
             raise exceptions.InvalidConfiguration('you must specify a v3 uri '
diff --git a/tempest/services/image/v1/json/image_client.py b/tempest/services/image/v1/json/image_client.py
index d60c9d9..19f275f 100644
--- a/tempest/services/image/v1/json/image_client.py
+++ b/tempest/services/image/v1/json/image_client.py
@@ -35,8 +35,8 @@
 class ImageClientJSON(rest_client.RestClient):
 
     def __init__(self, auth_provider):
-        super(ImageClientJSON, self).__init__(auth_provider)
-        self.service = CONF.image.catalog_type
+        super(ImageClientJSON, self).__init__(auth_provider,
+                                              CONF.image.catalog_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 7421508..e617879 100644
--- a/tempest/services/image/v2/json/image_client.py
+++ b/tempest/services/image/v2/json/image_client.py
@@ -29,8 +29,8 @@
 class ImageClientV2JSON(rest_client.RestClient):
 
     def __init__(self, auth_provider):
-        super(ImageClientV2JSON, self).__init__(auth_provider)
-        self.service = CONF.image.catalog_type
+        super(ImageClientV2JSON, self).__init__(auth_provider,
+                                                CONF.image.catalog_type)
         self._http = None
 
     def _get_http(self):
diff --git a/tempest/services/messaging/json/messaging_client.py b/tempest/services/messaging/json/messaging_client.py
index 2794ea9..caed02f 100644
--- a/tempest/services/messaging/json/messaging_client.py
+++ b/tempest/services/messaging/json/messaging_client.py
@@ -28,8 +28,8 @@
 class MessagingClientJSON(rest_client.RestClient):
 
     def __init__(self, auth_provider):
-        super(MessagingClientJSON, self).__init__(auth_provider)
-        self.service = CONF.messaging.catalog_type
+        super(MessagingClientJSON, self).__init__(auth_provider,
+                                                  CONF.messaging.catalog_type)
         self.version = '1'
         self.uri_prefix = 'v{0}'.format(self.version)
 
diff --git a/tempest/services/network/json/network_client.py b/tempest/services/network/json/network_client.py
index c622ee4..096d6ec 100644
--- a/tempest/services/network/json/network_client.py
+++ b/tempest/services/network/json/network_client.py
@@ -38,10 +38,10 @@
     """
 
     def __init__(self, auth_provider):
-        super(NetworkClientJSON, self).__init__(auth_provider)
-        self.service = CONF.network.catalog_type
-        self.build_timeout = CONF.network.build_timeout
-        self.build_interval = CONF.network.build_interval
+        super(NetworkClientJSON, self).__init__(
+            auth_provider, CONF.network.catalog_type,
+            build_interval=CONF.network.build_interval,
+            build_timeout=CONF.network.build_timeout)
         self.version = '2.0'
         self.uri_prefix = "v%s" % (self.version)
 
diff --git a/tempest/services/object_storage/base.py b/tempest/services/object_storage/base.py
index c903ca5..3e8eb4c 100644
--- a/tempest/services/object_storage/base.py
+++ b/tempest/services/object_storage/base.py
@@ -24,6 +24,6 @@
     """
 
     def __init__(self, auth_provider):
-        super(ObjectStorageClient, self).__init__(auth_provider)
-        self.service = CONF.object_storage.catalog_type
+        super(ObjectStorageClient, self).__init__(
+            auth_provider, CONF.object_storage.catalog_type)
         self.format = 'json'
diff --git a/tempest/services/orchestration/json/orchestration_client.py b/tempest/services/orchestration/json/orchestration_client.py
index 9b4700a..6bf7ceb 100644
--- a/tempest/services/orchestration/json/orchestration_client.py
+++ b/tempest/services/orchestration/json/orchestration_client.py
@@ -28,10 +28,11 @@
 class OrchestrationClient(rest_client.RestClient):
 
     def __init__(self, auth_provider):
-        super(OrchestrationClient, self).__init__(auth_provider)
-        self.service = CONF.orchestration.catalog_type
-        self.build_interval = CONF.orchestration.build_interval
-        self.build_timeout = CONF.orchestration.build_timeout
+        super(OrchestrationClient, self).__init__(
+            auth_provider,
+            CONF.orchestration.catalog_type,
+            build_interval=CONF.orchestration.build_interval,
+            build_timeout=CONF.orchestration.build_timeout)
 
     def list_stacks(self, params=None):
         """Lists all stacks for a user."""
diff --git a/tempest/services/telemetry/json/telemetry_client.py b/tempest/services/telemetry/json/telemetry_client.py
index d2dd375..df7a575 100644
--- a/tempest/services/telemetry/json/telemetry_client.py
+++ b/tempest/services/telemetry/json/telemetry_client.py
@@ -25,8 +25,8 @@
 class TelemetryClientJSON(rest_client.RestClient):
 
     def __init__(self, auth_provider):
-        super(TelemetryClientJSON, self).__init__(auth_provider)
-        self.service = CONF.telemetry.catalog_type
+        super(TelemetryClientJSON, self).__init__(auth_provider,
+                                                  CONF.telemetry.catalog_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 8bc2f93..e6c997c 100644
--- a/tempest/services/volume/json/base.py
+++ b/tempest/services/volume/json/base.py
@@ -24,7 +24,8 @@
     """
 
     def __init__(self, auth_provider):
-        super(VolumeClient, self).__init__(auth_provider)
-        self.service = CONF.volume.catalog_type
-        self.build_interval = CONF.volume.build_interval
-        self.build_timeout = CONF.volume.build_timeout
+        super(VolumeClient, self).__init__(
+            auth_provider,
+            CONF.volume.catalog_type,
+            build_interval=CONF.volume.build_interval,
+            build_timeout=CONF.volume.build_timeout)
diff --git a/tempest/tests/test_rest_client.py b/tempest/tests/test_rest_client.py
index 5b2ce7a..42ba5a0 100644
--- a/tempest/tests/test_rest_client.py
+++ b/tempest/tests/test_rest_client.py
@@ -38,7 +38,7 @@
         self.useFixture(fake_config.ConfigFixture())
         self.stubs.Set(config, 'TempestConfigPrivate', fake_config.FakePrivate)
         self.rest_client = rest_client.RestClient(
-            fake_auth_provider.FakeAuthProvider())
+            fake_auth_provider.FakeAuthProvider(), None)
         self.stubs.Set(httplib2.Http, 'request', self.fake_http.request)
         self.useFixture(mockpatch.PatchObject(self.rest_client, '_get_region',
                                               side_effect=self._get_region()))
@@ -304,7 +304,7 @@
         self.useFixture(fake_config.ConfigFixture())
         self.stubs.Set(config, 'TempestConfigPrivate', fake_config.FakePrivate)
         self.rest_client = rest_client.RestClient(
-            fake_auth_provider.FakeAuthProvider())
+            fake_auth_provider.FakeAuthProvider(), None)
 
     def test_response_less_than_400(self):
         self.rest_client._error_checker(**self.set_data("399"))
@@ -434,7 +434,7 @@
         self.fake_http = fake_http.fake_httplib2()
         super(TestNegativeRestClient, self).setUp()
         self.negative_rest_client = rest_client.NegativeRestClient(
-            fake_auth_provider.FakeAuthProvider())
+            fake_auth_provider.FakeAuthProvider(), None)
         self.useFixture(mockpatch.PatchObject(self.negative_rest_client,
                                               '_log_request'))