Merge "Register Tempest clients via the new interface"
diff --git a/tempest/service_clients.py b/tempest/service_clients.py
index d0daa2b..f131b58 100644
--- a/tempest/service_clients.py
+++ b/tempest/service_clients.py
@@ -22,9 +22,19 @@
from tempest.lib import auth
from tempest.lib import exceptions
from tempest.lib.services import clients
+from tempest.lib.services import compute
+from tempest.lib.services import image
+from tempest.lib.services import network
LOG = logging.getLogger(__name__)
+client_modules_by_service_name = {
+ 'compute': compute,
+ 'image.v1': image.v1,
+ 'image.v2': image.v2,
+ 'network': network
+}
+
def tempest_modules():
"""List of service client modules available in Tempest.
@@ -289,6 +299,16 @@
raise exceptions.UnknownServiceClient(
services=list(client_parameters.keys()))
+ # Register service clients owned by tempest
+ for service in tempest_modules():
+ if service in list(client_modules_by_service_name):
+ attribute = service.replace('.', '_')
+ configs = service.split('.')[0]
+ module = client_modules_by_service_name[service]
+ self.register_service_client_module(
+ attribute, service, module.__name__,
+ module.__all__, **self.parameters[configs])
+
# Register service clients from plugins
clients_registry = clients.ClientsRegistry()
plugin_service_clients = clients_registry.get_service_clients()
@@ -362,10 +382,10 @@
@property
def registered_services(self):
- # TODO(andreaf) For now add all Tempest services. to the list of
- # registered service
- _default_services = tempest_modules()
- return self._registered_services | _default_services
+ # TODO(andreaf) Temporary set needed until all services are migrated
+ _non_migrated_services = tempest_modules() - set(
+ client_modules_by_service_name)
+ return self._registered_services | _non_migrated_services
def _setup_parameters(self, parameters):
"""Setup default values for client parameters
diff --git a/tempest/tests/test_service_clients.py b/tempest/tests/test_service_clients.py
index befed68..3d8b360 100644
--- a/tempest/tests/test_service_clients.py
+++ b/tempest/tests/test_service_clients.py
@@ -265,11 +265,12 @@
_params[_key])
def test_register_service_client_module(self):
- factory_mock = self.useFixture(fixtures.MockPatch(
- 'tempest.service_clients.ClientsFactory')).mock
expected_params = {'fake_param1': 'fake_value1',
'fake_param2': 'fake_value2'}
_manager = self._get_manager(init_region='fake_region_default')
+ # Mock after the _manager is setup to preserve the call count
+ factory_mock = self.useFixture(fixtures.MockPatch(
+ 'tempest.service_clients.ClientsFactory')).mock
_manager.register_service_client_module(
name='fake_module',
service_version='fake_service',
@@ -291,13 +292,14 @@
self.assertIn('fake_service', _manager._registered_services)
def test_register_service_client_module_override_default(self):
- factory_mock = self.useFixture(fixtures.MockPatch(
- 'tempest.service_clients.ClientsFactory')).mock
new_region = 'new_region'
expected_params = {'fake_param1': 'fake_value1',
'fake_param2': 'fake_value2',
'region': new_region}
_manager = self._get_manager(init_region='fake_region_default')
+ # Mock after the _manager is setup to preserve the call count
+ factory_mock = self.useFixture(fixtures.MockPatch(
+ 'tempest.service_clients.ClientsFactory')).mock
_manager.register_service_client_module(
name='fake_module',
service_version='fake_service',