From 78ef76e09eea7ed8c87a76e4bdcfb287e5865bd3 Mon Sep 17 00:00:00 2001 From: Arx Cruz Date: Wed, 8 Aug 2018 11:29:05 +0200 Subject: [PATCH] Removing dependence of SERVICE_EXTENSION_KEY Remove this constant, and implement get_service_extension_key method to get this information from the services. Story: 2002787 Task: 22730 Change-Id: I7d395a3b864f9f06f5d266eb356af990c4f00a6c --- config_tempest/constants.py | 11 ----------- config_tempest/services/base.py | 4 ++++ config_tempest/services/compute.py | 3 +++ config_tempest/services/identity.py | 3 +++ config_tempest/services/network.py | 3 +++ config_tempest/services/object_storage.py | 3 +++ config_tempest/services/services.py | 20 ++++++-------------- config_tempest/services/volume.py | 3 +++ 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/config_tempest/constants.py b/config_tempest/constants.py index 4949c5c5..474f355d 100644 --- a/config_tempest/constants.py +++ b/config_tempest/constants.py @@ -62,14 +62,3 @@ SERVICE_NAMES = { 'workflowv2': 'mistral', 'load-balancer': 'octavia', } - -# Keep track of where the extensions are saved for that service. -# This is necessary because the configuration file is inconsistent - it uses -# different option names for service extension depending on the service. -SERVICE_EXTENSION_KEY = { - 'compute': 'api_extensions', - 'object-store': 'discoverable_apis', - 'network': 'api_extensions', - 'volumev3': 'api_extensions', - 'identity': 'api_extensions' -} diff --git a/config_tempest/services/base.py b/config_tempest/services/base.py index 864d7d52..4731f697 100644 --- a/config_tempest/services/base.py +++ b/config_tempest/services/base.py @@ -110,6 +110,10 @@ class Service(object): """ return self.name + def get_service_extension_key(self): + """Return the extension key for a particular service""" + return None + def get_unversioned_service_name(self): """Return name of service without versions. diff --git a/config_tempest/services/compute.py b/config_tempest/services/compute.py index 23355d0d..af1f962b 100644 --- a/config_tempest/services/compute.py +++ b/config_tempest/services/compute.py @@ -43,6 +43,9 @@ class ComputeService(VersionedService): if self._get_number_of_hosts() >= 2: conf.set('compute-feature-enabled', 'resize', 'True') + def get_service_extension_key(self): + return 'api_extensions' + def _get_number_of_hosts(self): # Right now the client returned is hosts, in the future # change it to a dict, and get the client as requested diff --git a/config_tempest/services/identity.py b/config_tempest/services/identity.py index ca7ab197..f4352c29 100644 --- a/config_tempest/services/identity.py +++ b/config_tempest/services/identity.py @@ -54,6 +54,9 @@ class IdentityService(VersionedService): # rather prefer to set empty list here for now. self.extensions = [] + def get_service_extension_key(self): + return 'api_extensions' + def get_supported_versions(self): return ['v2', 'v3'] diff --git a/config_tempest/services/network.py b/config_tempest/services/network.py index 26b25f1d..b0af76ab 100644 --- a/config_tempest/services/network.py +++ b/config_tempest/services/network.py @@ -50,6 +50,9 @@ class NetworkService(VersionedService): conf.set('network', 'floating_network_name', self._public_network_name) + def get_service_extension_key(self): + return 'api_extensions' + def _supplied_network(self): LOG.info("Looking for existing network id: {0}" "".format(self._public_network_id)) diff --git a/config_tempest/services/object_storage.py b/config_tempest/services/object_storage.py index 28fa741c..6af98910 100644 --- a/config_tempest/services/object_storage.py +++ b/config_tempest/services/object_storage.py @@ -60,6 +60,9 @@ class ObjectStorageService(Service): def get_feature_name(self): return 'object-storage' + def get_service_extension_key(self): + return 'discoverable_apis' + def _check_health_check(self, path): try: self.client.accounts.skip_path() diff --git a/config_tempest/services/services.py b/config_tempest/services/services.py index 0e9c7bc6..b52f5f86 100644 --- a/config_tempest/services/services.py +++ b/config_tempest/services/services.py @@ -259,17 +259,9 @@ class Services(object): if keystone_v3_support: self.get_service('identity').set_identity_v3_extensions() - # TODO(arxcruz): We already have a service.get_feature_name so we - # don't need this special case in object-store - for service, ext_key in C.SERVICE_EXTENSION_KEY.iteritems(): - if not self.is_service(service): - continue - service_object = self.get_service(service) - if service_object is not None: - extensions = ','.join(service_object.get_extensions()) - # FIXME: object-store config param object-storage needs to be - # handled here In future this should be removed from Services class - if service == 'object-store': - service = 'object-storage' - service_name = service_object.get_unversioned_service_name() - self._conf.set(service_name + postfix, ext_key, extensions) + for service in self._services: + ext_key = service.get_service_extension_key() + if ext_key: + extensions = ','.join(service.get_extensions()) + service_name = service.get_feature_name() + self._conf.set(service_name + postfix, ext_key, extensions) diff --git a/config_tempest/services/volume.py b/config_tempest/services/volume.py index f73925b3..bd486936 100644 --- a/config_tempest/services/volume.py +++ b/config_tempest/services/volume.py @@ -33,6 +33,9 @@ class VolumeService(VersionedService): body = json.loads(body) self.versions = self.deserialize_versions(body) + def get_service_extension_key(self): + return 'api_extensions' + def get_supported_versions(self): return ['v2', 'v3']