diff --git a/CHANGES/1550.bugfix b/CHANGES/1550.bugfix new file mode 100644 index 000000000..f3554617a --- /dev/null +++ b/CHANGES/1550.bugfix @@ -0,0 +1 @@ +Pulp Container specific settings are now properly validated at startup of a Pulp instance. diff --git a/pulp_container/app/__init__.py b/pulp_container/app/__init__.py index 669f62a21..d02fc572d 100644 --- a/pulp_container/app/__init__.py +++ b/pulp_container/app/__init__.py @@ -11,3 +11,4 @@ class PulpContainerPluginAppConfig(PulpPluginAppConfig): def ready(self): super().ready() + from . import checks diff --git a/pulp_container/app/checks.py b/pulp_container/app/checks.py new file mode 100644 index 000000000..916859b78 --- /dev/null +++ b/pulp_container/app/checks.py @@ -0,0 +1,43 @@ +from django.conf import settings +from django.core.checks import Error as CheckError, register + + +@register(deploy=True) +def container_settings_check(app_configs, **kwargs): + errors = [] + + # Other checks only apply if token auth is enabled + if str(getattr(settings, "TOKEN_AUTH_DISABLED", False)).lower() == "true": + return errors + + if getattr(settings, "TOKEN_SERVER", None) is None: + errors.append( + CheckError( + "TOKEN_SERVER setting has to be set when token authentification is enabled", + id="pulp_container.E001", + ), + ) + if getattr(settings, "TOKEN_SIGNATURE_ALGORITHM", None) is None: + errors.append( + CheckError( + "TOKEN_SIGNATURE_ALGORITHM setting has to be set when token authentification" + " is enabled", + id="pulp_container.E001", + ) + ) + if getattr(settings, "PUBLIC_KEY_PATH", None) is None: + errors.append( + CheckError( + "PUBLIC_KEY_PATH setting has to be set when token authentification is enabled", + id="pulp_container.E001", + ) + ) + if getattr(settings, "PRIVATE_KEY_PATH", None) is None: + errors.append( + CheckError( + "PRIVATE_KEY_PATH setting has to be set when token authentification is enabled", + id="pulp_container.E001", + ) + ) + + return errors