96 lines
2.5 KiB
Python
96 lines
2.5 KiB
Python
"""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"
|
|
SFTP_COPY = "sftp_copy" # Transferencia del .bak al servidor SQL externo (SFTP/SSH)
|
|
FORWARD_ZIP = "forward_zip" # Reenvío del ZIP al input_folder del servidor destino
|
|
|
|
# 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
|
|
},
|
|
# Integración con PANEL_BASES_ANEXO24. Si api_url está vacío, CloudRestoreAS
|
|
# opera en modo local usando la sección "sql" (retrocompatibilidad).
|
|
"panel": {
|
|
"api_url": "",
|
|
"api_token": "",
|
|
# Nombre del restore_target en el panel (identidad de este CRA).
|
|
# Con panel configurado: enrutamiento automático restore_local | forward.
|
|
"instance_key": "",
|
|
# False en dev: el panel local usa HTTPS con certificado propio.
|
|
"verify_ssl": False,
|
|
}
|
|
}
|