diff --git a/awx/main/management/commands/regenerate_secret_key.py b/awx/main/management/commands/regenerate_secret_key.py index 9c86ef4e6e..248256eb7e 100644 --- a/awx/main/management/commands/regenerate_secret_key.py +++ b/awx/main/management/commands/regenerate_secret_key.py @@ -32,8 +32,14 @@ class Command(BaseCommand): def handle(self, **options): self.old_key = settings.SECRET_KEY custom_key = os.environ.get("TOWER_SECRET_KEY") - if options.get("use_custom_key") and custom_key: - self.new_key = custom_key + if options.get("use_custom_key"): + if custom_key: + self.new_key = custom_key + else: + print("Use custom key was specified but the env var TOWER_SECRET_KEY was not available") + import sys + + sys.exit(1) else: self.new_key = base64.encodebytes(os.urandom(33)).decode().rstrip() self._notification_templates() diff --git a/awx/main/tests/functional/commands/test_secret_key_regeneration.py b/awx/main/tests/functional/commands/test_secret_key_regeneration.py index f223f5d80d..808fefbdc9 100644 --- a/awx/main/tests/functional/commands/test_secret_key_regeneration.py +++ b/awx/main/tests/functional/commands/test_secret_key_regeneration.py @@ -171,13 +171,17 @@ class TestKeyRegeneration: def test_use_custom_key_with_empty_tower_secret_key_env_var(self): os.environ['TOWER_SECRET_KEY'] = '' - new_key = call_command('regenerate_secret_key', '--use-custom-key') - assert settings.SECRET_KEY != new_key + with pytest.raises(SystemExit) as e: + call_command('regenerate_secret_key', '--use-custom-key') + assert e.type == SystemExit + assert e.value.code == 1 def test_use_custom_key_with_no_tower_secret_key_env_var(self): os.environ.pop('TOWER_SECRET_KEY', None) - new_key = call_command('regenerate_secret_key', '--use-custom-key') - assert settings.SECRET_KEY != new_key + with pytest.raises(SystemExit) as e: + call_command('regenerate_secret_key', '--use-custom-key') + assert e.type == SystemExit + assert e.value.code == 1 def test_with_tower_secret_key_env_var(self): custom_key = 'MXSq9uqcwezBOChl/UfmbW1k4op+bC+FQtwPqgJ1u9XV'