From 077471dc44f79622d703773431512ca56b0e4afd Mon Sep 17 00:00:00 2001 From: granseef <florian.gransee@ufz.de> Date: Fri, 21 Feb 2025 11:37:45 +0100 Subject: [PATCH] add thing abstraction to minio_setup --- docker-compose.yml | 8 +++++++- src/setup_minio.py | 8 +++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c8713180..5107772b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -546,7 +546,7 @@ services: condition: service_healthy environment: LOG_LEVEL: "${LOG_LEVEL}" - TOPIC: thing_creation + TOPIC: configdb_update MQTT_BROKER: mqtt-broker:1883 MQTT_USER: "${MQTT_USER}" MQTT_PASSWORD: "${MQTT_PASSWORD}" @@ -560,6 +560,12 @@ services: DB_API_BASE_URL: "${DB_API_BASE_URL}" JOURNALING: "${JOURNALING}" FERNET_ENCRYPTION_SECRET: "${FERNET_ENCRYPTION_SECRET}" + CONFIGDB_DSN: "postgresql://\ + ${CONFIGDB_USER}:\ + ${CONFIGDB_PASSWORD}@\ + ${CONFIGDB_HOST}:\ + ${CONFIGDB_PORT}/\ + ${CONFIGDB_DB}" entrypoint: ["python3", "setup_minio.py"] diff --git a/src/setup_minio.py b/src/setup_minio.py index f13c338b..6ef3d565 100755 --- a/src/setup_minio.py +++ b/src/setup_minio.py @@ -5,9 +5,10 @@ import logging from minio_cli_wrapper.mc import Mc from timeio.mqtt import AbstractHandler, MQTTMessage -from timeio.thing import Thing +from timeio.feta import Thing from timeio.common import get_envvar, setup_logging from timeio.crypto import decrypt, get_crypt_key +from timeio.typehints import MqttPayload logger = logging.getLogger("minio-setup") @@ -30,9 +31,10 @@ class CreateThingInMinioHandler(AbstractHandler): secret_key=get_envvar("MINIO_SECURE_KEY"), secure=get_envvar("MINIO_SECURE", default=True, cast_to=bool), ) + self.configdb_dsn = get_envvar("CONFIGDB_DSN") - def act(self, content: dict, message: MQTTMessage): - thing = Thing.get_instance(content) + def act(self, content: MqttPayload.ConfigDBUpdate, message: MQTTMessage): + thing = Thing.from_uuid(content["thing"], dsn=self.configdb_dsn) user = thing.raw_data_storage.username passw = decrypt(thing.raw_data_storage.password, get_crypt_key()) bucket = thing.raw_data_storage.bucket_name -- GitLab