From eb36f6c998476525a89b8ab46b569e46e7353244 Mon Sep 17 00:00:00 2001 From: Bruno Rocha Date: Mon, 17 Jun 2024 16:19:04 +0100 Subject: [PATCH 1/2] Load required settings from django-ansible-base if not set. No-Issue --- galaxy_ng/app/dynaconf_hooks.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/galaxy_ng/app/dynaconf_hooks.py b/galaxy_ng/app/dynaconf_hooks.py index 17c1437f07..1ebb700a21 100755 --- a/galaxy_ng/app/dynaconf_hooks.py +++ b/galaxy_ng/app/dynaconf_hooks.py @@ -42,6 +42,7 @@ def post(settings: Dynaconf) -> Dict[str, Any]: data.update(configure_password_validators(settings)) data.update(configure_api_base_path(settings)) data.update(configure_legacy_roles(settings)) + data.update(configure_dab_required_settings(settings)) data.update(configure_resource_provider(settings)) # This should go last, and it needs to receive the data from the previous configuration @@ -737,3 +738,14 @@ def alter_hostname_settings( Action.AFTER_GET: hook_functions } } + + +def configure_dab_required_settings(settings: Dynaconf) -> Dict[str, Any]: + """Load all keys defined on dab dynamic_settings if not already defined.""" + data = {} + notset = object() + from ansible_base.lib.dynamic_config import dynamic_settings + for key in dir(dynamic_settings): + if key.isupper() and settings.get(key, notset) is notset: + data[key] = getattr(dynamic_settings, key) + return data From 72c84217f641d733cde456d21079ce19de92cc88 Mon Sep 17 00:00:00 2001 From: Bruno Rocha Date: Mon, 17 Jun 2024 19:20:02 +0100 Subject: [PATCH 2/2] Add test No-Issue --- galaxy_ng/tests/unit/test_settings.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 galaxy_ng/tests/unit/test_settings.py diff --git a/galaxy_ng/tests/unit/test_settings.py b/galaxy_ng/tests/unit/test_settings.py new file mode 100644 index 0000000000..20e51cb277 --- /dev/null +++ b/galaxy_ng/tests/unit/test_settings.py @@ -0,0 +1,15 @@ +from django.test import TestCase +from django.conf import settings +from ansible_base.lib.dynamic_config import dynamic_settings + + +DAB_REQUIRED_SETTINGS = [key for key in dir(dynamic_settings) if key.isupper()] + + +class TestSetting(TestCase): + def test_dab_settings_are_loaded(self): + """Ensure all required settings from DAB are configured on Galaxy""" + notset = object() + for key in DAB_REQUIRED_SETTINGS: + key_on_galaxy = settings.get(key, notset) + self.assertIsNot(key_on_galaxy, notset)