diff --git a/airflow/secrets/__init__.py b/airflow/secrets/__init__.py index 621962776d9fc..69aa79cb083d0 100644 --- a/airflow/secrets/__init__.py +++ b/airflow/secrets/__init__.py @@ -79,10 +79,10 @@ def initialize_secrets_backends() -> List[BaseSecretsBackend]: * import secrets backend classes * instantiate them and return them in a list """ - alternative_secrets_backend = conf.get(section=CONFIG_SECTION, key='class_name', fallback='') + alternative_secrets_backend = conf.get(section=CONFIG_SECTION, key='backend', fallback='') try: alternative_secrets_config_dict = json.loads( - conf.get(section=CONFIG_SECTION, key='config_json', fallback='{}') + conf.get(section=CONFIG_SECTION, key='backend_kwargs', fallback='{}') ) except JSONDecodeError: alternative_secrets_config_dict = {} diff --git a/tests/secrets/test_secrets.py b/tests/secrets/test_secrets.py index 1aa71e918ef68..41fac05b89a05 100644 --- a/tests/secrets/test_secrets.py +++ b/tests/secrets/test_secrets.py @@ -19,7 +19,8 @@ import unittest from unittest import mock -from airflow.secrets import get_connections +from airflow.secrets import get_connections, initialize_secrets_backends +from tests.test_utils.config import conf_vars class TestSecrets(unittest.TestCase): @@ -39,6 +40,17 @@ def test_get_connections_first_try(self, mock_env_get, mock_meta_get): mock_env_get.assert_called_once_with(conn_id="fake_conn_id") mock_meta_get.not_called() + @conf_vars({ + ("secrets", "backend"): "airflow.providers.amazon.aws.secrets.ssm.AwsSsmSecretsBackend", + ("secrets", "backend_kwargs"): '{"prefix": "/airflow", "profile_name": null}', + }) + def test_initialize_secrets_backends(self): + backends = initialize_secrets_backends() + backend_classes = [backend.__class__.__name__ for backend in backends] + + self.assertEqual(3, len(backends)) + self.assertIn('AwsSsmSecretsBackend', backend_classes) + if __name__ == "__main__": unittest.main()