refactor: remove MinIO repository references and streamline cleanup process

- Eliminated MinIO repository dependencies from the `Activities`, `Cleanup`, and `Training` classes.
- Updated the `cleanup_resources` method to focus on removing local temporary directories instead of handling MinIO file deletions.
- Adjusted the `TrainModel` class to pass the run directory for cleanup, enhancing resource management in the training workflow.
This commit is contained in:
vitor-aignosi
2026-04-06 09:30:38 -03:00
parent d2bb588739
commit 18412958d2
4 changed files with 22 additions and 85 deletions

View File

@@ -123,7 +123,6 @@ class Activities(ExperimentTracking, Training, Cleanup):
Cleanup.__init__(
self,
minio_repository=self.minio_repository,
logger=logger,
notification_handler=notification_handler,
metrics_controller=metrics_controller,

View File

@@ -21,7 +21,6 @@ with workflow.unsafe.imports_passed_through():
from sientia_do.observability.logger import Logger
from sientia_do.observability.metrics_controller import MetricsController
from sientia_do.observability.sientia_monitoring import SientiaMonitoring
from sientia_do.repository.minio_repository import MinioRepository
from model_manager.metrics import ACTIVITY_EXECUTION_TOTAL, WORKFLOW_EXECUTION_TOTAL

View File

@@ -12,7 +12,6 @@ with workflow.unsafe.imports_passed_through():
import traceback
from typing import Any
import pandas as pd
from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from sientia_do.notifications.models import NotificationLevel
from sientia_do.observability.logger import Logger
@@ -21,9 +20,7 @@ with workflow.unsafe.imports_passed_through():
from sientia_do.repository.minio_repository import MinioRepository
from sientia_model.model_repository.mlflow_repository import SientiaMLflowRepository
from sientia_model.model_repository.plugin_store import PluginStore
from sientia_model.wrappers.sientia_model import SientiaModel
from model_manager.metrics import ACTIVITY_EXECUTION_TOTAL, WORKFLOW_EXECUTION_TOTAL
from model_manager.utils.models.train_model_params import TrainModelParams
from model_manager.utils.repository.data_manager_repository import DataManagerRepository
@@ -258,7 +255,6 @@ class Training(SientiaMonitoring):
'run_id': run_info.run_id,
}
except Exception as e: # noqa: BLE001
metrics_status = 'error'
error_msg = f'Error training model - error: {str(e)}'
@@ -273,12 +269,9 @@ class Training(SientiaMonitoring):
attachment_content=trace,
)
raise ModelTrainingError(
model_trained=model_trained,
model_saved=model_saved,
) from e
raise e
@activity.defn(name='cleanup_resources')
activity.defn(name='cleanup_resources')
async def cleanup_resources(self, input_data: dict[str, Any]) -> None:
"""
Cleanup temporary resources created during training.
@@ -286,38 +279,22 @@ class Training(SientiaMonitoring):
Args:
input_data: Cleanup configuration containing:
- metadata (dict): Workflow execution metadata.
- bucket_name (str): MinIO bucket of the uploaded file.
- file_name (str): MinIO object key to delete.
- run_dir (str): Temporary directory to remove.
Raises:
Exception: If cleanup fails (after sending notification).
"""
metadata = input_data.get('metadata', {})
bucket_name = input_data.get('bucket_name', '')
file_name = input_data.get('file_name', '')
val_file_name = input_data.get('val_file_name')
run_dir = input_data.get('run_dir', '')
try:
await self.minio_repository.delete_file(
object_name=file_name,
bucket=bucket_name,
metadata=metadata,
)
if val_file_name:
await self.minio_repository.delete_file(
object_name=val_file_name,
bucket=bucket_name,
metadata=metadata,
)
self.model_repository.cleanup_run_directory(run_dir)
except Exception as e: # noqa: BLE001
error_msg = (
'Error cleaning up resources - '
f'File: {bucket_name}/{file_name}, Error: {str(e)}'
)
error_msg = f'Error cleaning up resources - Run directory: {run_dir}, Error: {str(e)}'
trace = traceback.format_exc()
await self.send_notification_async(
self.send_notification(
metadata=metadata,
notification_id='CLEANUP_RESOURCES_ERROR',
message=error_msg,
@@ -327,3 +304,4 @@ class Training(SientiaMonitoring):
)
raise