- Changed project name in values.yaml from "sientia-dataops-model-manager" to "sientia-model-manager". - Added new environment variables for GitHub repository and branch configuration. - Refactored cleanup paths to use a centralized REPORTS_TEMP_DIR constant for consistency. - Updated runtime configurations and adjusted volume mounts for better resource management. - Enabled SSH access for the model manager and disabled Grafana dashboard creation. - Updated tests to reflect changes in directory paths and environment variable usage.
63 lines
1.8 KiB
Python
63 lines
1.8 KiB
Python
"""
|
|
Cleanup workflow for removing local filesystem.
|
|
|
|
This module provides a Temporal cron workflow that runs daily to clean up
|
|
temporary files and directories older than the configured retention period.
|
|
"""
|
|
|
|
from temporalio import workflow
|
|
|
|
with workflow.unsafe.imports_passed_through():
|
|
import os
|
|
from datetime import timedelta
|
|
from typing import Any
|
|
|
|
from model_manager.activities.activities import Activities
|
|
from model_manager.runtime_paths import REPORTS_TEMP_DIR
|
|
from model_manager.workflows.train_model import no_retry_policy
|
|
|
|
TIMEOUT_CLEANUP_LOCAL = int(os.getenv('TIMEOUT_CLEANUP_LOCAL', '120'))
|
|
|
|
|
|
@workflow.defn(name='cleanup_files')
|
|
class CleanupFiles:
|
|
"""
|
|
Cleanup workflow for removing stale files.
|
|
|
|
This workflow cleans up:
|
|
- Local temporary directories with timestamp suffixes
|
|
|
|
The workflow is designed to be simple and robust, with error handling
|
|
delegated to the individual activities.
|
|
"""
|
|
|
|
@workflow.run
|
|
async def run(self, input_data: dict[str, Any]) -> None:
|
|
"""
|
|
Execute the cleanup workflow.
|
|
|
|
This method orchestrates the cleanup of local directories
|
|
in sequence. No exception handling is needed as activities handle their
|
|
own errors and notifications.
|
|
"""
|
|
temp_path = REPORTS_TEMP_DIR
|
|
|
|
# Metadata for tracking
|
|
metadata = {
|
|
'metadata': {
|
|
'pod_id': os.getenv('POD_ID'),
|
|
'workflow_name': 'cleanup_files',
|
|
}
|
|
}
|
|
|
|
# Execute local directory cleanup
|
|
await workflow.execute_activity_method(
|
|
Activities.cleanup_temp_directories,
|
|
{
|
|
**metadata,
|
|
'temp_path': temp_path,
|
|
},
|
|
retry_policy=no_retry_policy,
|
|
start_to_close_timeout=timedelta(seconds=TIMEOUT_CLEANUP_LOCAL),
|
|
)
|