add client_manager_class param to BaseTestCase

Tempest base test case (BaseTestCase) gets client manager which
has many clients for OpenStack services.

To support development of tempest plugins for individual services out
of tempest tree, this patch add client_manager param to BaseTestCase,
so that tempest plugins in other repositories can override client
manager class by its own client manager which has clients just for
its test cases.

Change-Id: Ifc29617743b76b01eb6cd30a375cf47b56e4f635
diff --git a/tempest/test.py b/tempest/test.py
index dfed947..2c5202e 100644
--- a/tempest/test.py
+++ b/tempest/test.py
@@ -234,6 +234,9 @@
     log_format = ('%(asctime)s %(process)d %(levelname)-8s '
                   '[%(name)s] %(message)s')
 
+    # Client manager class to use in this test case.
+    client_manager = clients.Manager
+
     @classmethod
     def setUpClass(cls):
         # It should never be overridden by descendants
@@ -519,8 +522,8 @@
             else:
                 raise exceptions.InvalidCredentials(
                     "Invalid credentials type %s" % credential_type)
-        return clients.Manager(credentials=creds, service=cls._service,
-                               api_microversions=cls.services_microversion)
+        return cls.client_manager(credentials=creds, service=cls._service,
+                                  api_microversions=cls.services_microversion)
 
     @classmethod
     def clear_credentials(cls):