Skip to content

Commit

Permalink
Validate settings before running Pulp instance
Browse files Browse the repository at this point in the history
When token authentization is enabled, 4 additional variables have to be
set. The state of these variables is now checked, while properly
informing the user, instead of relying on exceptions raised later during
the instance's run.

closes #1550
  • Loading branch information
MichalPysik committed Jun 27, 2024
1 parent 05c2f1c commit aaf762a
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGES/1550.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Pulp Container specific settings are now properly validated at startup of a Pulp instance.
1 change: 1 addition & 0 deletions pulp_container/app/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ class PulpContainerPluginAppConfig(PulpPluginAppConfig):

def ready(self):
super().ready()
from . import checks
36 changes: 36 additions & 0 deletions pulp_container/app/checks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from django.conf import settings
from django.core.checks import Error as CheckError, register


@register()
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 variable has to be set when token authentification is enabled")
)
if getattr(settings, "TOKEN_SIGNATURE_ALGORITHM", None) is None:
errors.append(
CheckError(
"TOKEN_SIGNATURE_ALGORITHM variable has to be set when token authentification is enabled"
)
)
if getattr(settings, "PUBLIC_KEY_PATH", None) is None:
errors.append(
CheckError(
"PUBLIC_KEY_PATH variable has to be set when token authentification is enabled"
)
)
if getattr(settings, "PRIVATE_KEY_PATH", None) is None:
errors.append(
CheckError(
"PRIVATE_KEY_PATH variable has to be set when token authentification is enabled"
)
)

return errors

0 comments on commit aaf762a

Please sign in to comment.