Initial commit: CloudRestoreAS v1.0.0 - Aplicación completa de restauración automática SQL Server

This commit is contained in:
2026-01-25 16:53:00 -07:00
commit 854ffa116f
43 changed files with 6357 additions and 0 deletions

82
app/constants.py Normal file
View File

@@ -0,0 +1,82 @@
"""Constantes globales de la aplicación."""
from pathlib import Path
# Rutas base
APP_DIR = Path(__file__).parent.parent
DATA_DIR = APP_DIR / "data"
LOGS_DIR = APP_DIR / "logs"
# Base de datos
DB_PATH = DATA_DIR / "app.db"
# Estados de jobs
class JobStatus:
QUEUED = "queued"
EXTRACTING = "extracting"
RESTORING = "restoring"
CLEANING = "cleaning"
COMPLETED = "completed"
FAILED = "failed"
FAILED_RESTART = "failed_restart"
CANCELLED = "cancelled"
# Niveles de log
class LogLevel:
DEBUG = "DEBUG"
INFO = "INFO"
WARNING = "WARNING"
ERROR = "ERROR"
CRITICAL = "CRITICAL"
# Tipos de paso de job
class StepType:
STABILITY_CHECK = "stability_check"
NODE_MAPPING = "node_mapping"
EXTRACT = "extract"
LOCATE_BAK = "locate_bak"
SQL_CONNECT = "sql_connect"
FILELIST = "filelist"
RESTORE = "restore"
CLEANUP = "cleanup"
# Configuración por defecto
DEFAULT_CONFIG = {
"paths": {
"input_folder": "",
"processed_folder": "",
"failed_folder": "",
"extract_folder": "",
"data_sql_folder": "",
"seven_zip_exe": ""
},
"sql": {
"server": "localhost",
"use_windows_auth": True,
"username": "",
"password_encrypted": ""
},
"concurrency": {
"extract_workers": 1,
"restore_workers": 1
},
"stability": {
"check_enabled": True,
"check_interval_seconds": 5,
"stable_duration_seconds": 10,
"use_ready_marker": False
},
"timeouts": {
"extract_minutes": 30,
"restore_minutes": 60
},
"retries": {
"max_attempts": 3,
"retry_delay_seconds": 60
},
"features": {
"dry_run_mode": False,
"auto_scan_enabled": True,
"scan_interval_seconds": 30
}
}