From 3e6ab33ef40b3a0d22ca2fe1f30eab411a39b057 Mon Sep 17 00:00:00 2001 From: vitor-aignosi Date: Wed, 16 Jul 2025 08:59:24 -0300 Subject: [PATCH] SIENTIAPDE-1163 Update requirements and refactor Ingestor class for MongoDB integration - Updated sientia-dataops-library dependency version to 1.3.0 in requirements.txt. - Refactored Ingestor class to use CoreNotificationHandler and added MongoDB connection parameters to improve configuration management. --- ingestor/ingestor.py | 18 ++++++++++++------ requirements.txt | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ingestor/ingestor.py b/ingestor/ingestor.py index 528bf0f..268a520 100644 --- a/ingestor/ingestor.py +++ b/ingestor/ingestor.py @@ -3,7 +3,8 @@ from os import getenv from copy import deepcopy from typing import Dict, Any -from sientia_do.notifications.handlers import NotificationHandler +from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler +from sientia_do.temporal.utils.logger import get_logger from ingestor.managers.ingestor_manager import IngestorManager @@ -23,6 +24,10 @@ class Ingestor: HEARTBEAT_TTL (int): Time-to-live for heartbeats in seconds. Defaults to 20. HOSTNAME (str): Identifier for the current pod or host. Defaults to "localhost". POLL_INTERVAL (int): Interval in seconds for polling operations. Defaults to 5. + MONGODB_URL (str): URL of the MongoDB server. Defaults to "localhost:27017". + MONGODB_USERNAME (str): Username for the MongoDB server. Defaults to "sientia". + MONGODB_PASSWORD (str): Password for the MongoDB server. Defaults to "sientia". + MONGODB_DATABASE (str): Name of the MongoDB database. Defaults to "sientia". Attributes: kafka_servers (list): List of Kafka server addresses. redis_host (str): Hostname of the Redis server. @@ -50,17 +55,18 @@ class Ingestor: self.heartbeat_ttl = int(getenv("HEARTBEAT_TTL", "20")) self.pod_id = getenv("HOSTNAME", "localhost") self.poll_interval = int(getenv("POLL_INTERVAL", "5")) - mongo_url = getenv("MONGODB_URL", 'localhost:27017') - mongo_username = getenv("MONGODB_USERNAME", 'sientia') - mongo_password = getenv("MONGODB_PASSWORD", 'sientia') - self.mongo_database = getenv("MONGODB_DATABASE", 'sientia') + mongo_url = getenv("MONGODB_URL", "localhost:27017") + mongo_username = getenv("MONGODB_USERNAME", "sientia") + mongo_password = getenv("MONGODB_PASSWORD", "sientia") + self.mongo_database = getenv("MONGODB_DATABASE", "sientia") self.mongo_connection_string = f"mongodb://{mongo_username}:{mongo_password}@{mongo_url}" self.kafka_servers = kafka_servers.split(",") self.logger = None self.init_logger() self.notification_handler = NotificationHandler( - servers=self.kafka_servers, + connection_string=self.mongo_connection_string, + database=self.mongo_database, logger=self.logger, project_name="OPC_INGESTOR" ) diff --git a/requirements.txt b/requirements.txt index 47e8725..f7e0a73 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ asyncua==1.1.5 redis -git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.2.0 +git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.3.0 prometheus_client pymongo \ No newline at end of file