diff --git a/config_tempest/services/object_storage.py b/config_tempest/services/object_storage.py index bdeee2fd..db7df383 100644 --- a/config_tempest/services/object_storage.py +++ b/config_tempest/services/object_storage.py @@ -72,17 +72,19 @@ class ObjectStorageService(Service): 'object-storage-feature-enabled', 'discoverability')): return False + return True except configparser.NoSectionError: + # discoverability wasn't set by python-tempestconf, + # let's discover it # Turning http://.../v1/foobar into http://.../ self.client.accounts.skip_path() resp, _ = self.client.accounts.get("healthcheck", {}) return resp['status'] == '200' - except Exception: - return False def set_default_tempest_options(self, conf): """Set default values for swift + :type conf: TempestConf object """ swift_status = self.check_service_status(conf) # Set roles based on service status diff --git a/config_tempest/tests/services/test_object_storage.py b/config_tempest/tests/services/test_object_storage.py index 0e4c8c50..55591cc1 100644 --- a/config_tempest/tests/services/test_object_storage.py +++ b/config_tempest/tests/services/test_object_storage.py @@ -59,11 +59,25 @@ class TestObjectStorageService(BaseServiceTest): 'admin') self.assertTrue(client.create_role.called) - def test_check_service_status(self): + def test_check_service_status_discover(self): self.Service.client = mock.Mock() self.Service.client.accounts = mock.Mock() return_mock = mock.Mock(return_value=self.FAKE_ACCOUNTS) self.Service.client.accounts.skip_check = mock.Mock() self.Service.client.accounts.get = return_mock - self.Service.check_service_status(self.Service.conf) - self.assertTrue(self.Service.check_service_status) + resp = self.Service.check_service_status(self.Service.conf) + self.assertTrue(resp) + + def test_check_service_status(self): + # discoverability set to False (e.g. via overrides) + self.Service.conf.set('object-storage-feature-enabled', + 'discoverability', + str(False)) + resp = self.Service.check_service_status(self.Service.conf) + self.assertFalse(resp) + # discoverability set to True (e.g. via overrides) + self.Service.conf.set('object-storage-feature-enabled', + 'discoverability', + str(True)) + resp = self.Service.check_service_status(self.Service.conf) + self.assertTrue(resp)