From cd65a8362b0a5ff236b7c36b840f5e01ed4a27a6 Mon Sep 17 00:00:00 2001 From: Christian Boettcher <c.boettcher@fz-juelich.de> Date: Tue, 14 Dec 2021 14:58:05 +0100 Subject: [PATCH] consistently use json-string as intermediate format --- src/datacat_integration/secrets.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/datacat_integration/secrets.py b/src/datacat_integration/secrets.py index b39b921..9b29b6d 100644 --- a/src/datacat_integration/secrets.py +++ b/src/datacat_integration/secrets.py @@ -3,8 +3,9 @@ from urllib.parse import urljoin from airflow.secrets import BaseSecretsBackend import requests import logging +import json -from datacat_integration.connection import DataCatConnection, get_connection_from_entry +from datacat_integration.connection import DataCatConnection, DataCatalogEntry, get_connection_from_entry connection_backend_type = "airflow_connections" @@ -42,7 +43,7 @@ class DataCatConnectionWithSecrets(DataCatConnection): url = urljoin(self.url, f"{datacat_type}/{oid}/secrets") response = requests.get(url, headers=headers) if response.ok: - return response.json() + return json.dumps(response.json()) else: raise ConnectionError(response.text) @@ -55,7 +56,7 @@ class DataCatConnectionWithSecrets(DataCatConnection): url = urljoin(self.url, f"{datacat_type}/{oid}/secrets_values") response = requests.get(url, headers=headers) if response.ok: - return response.json() + return json.dumps(response.json()) else: raise ConnectionError(response.text) @@ -68,7 +69,7 @@ class DataCatConnectionWithSecrets(DataCatConnection): url = urljoin(self.url, f"{datacat_type}/{oid}/secrets/{key}") response = requests.get(url, headers=headers) if response.ok: - return response.json() + return json.dumps(response.json()) else: raise ConnectionError(response.text) @@ -87,7 +88,7 @@ class DatacatSecretsBackend(BaseSecretsBackend): log.debug(f"Get connection: {conn_id}") secrets_conn = DataCatConnectionWithSecrets(self.url, self.user, self.password) - data = secrets_conn.get_entry(connection_backend_type, conn_id) - secrets = secrets_conn.get_all_secret_key_value(connection_backend_type, conn_id) + data = DataCatalogEntry.from_json(secrets_conn.get_entry(connection_backend_type, conn_id)).__dict__ + secrets = json.loads(secrets_conn.get_all_secret_key_value(connection_backend_type, conn_id)) conn = get_connection_with_secrets_from_entry(data, secrets, connection_backend_type, conn_id) return conn \ No newline at end of file -- GitLab