feature/generador-instaladores-linux-windows
This commit is contained in:
@@ -1,8 +1,36 @@
|
||||
"""Constantes globales de la aplicación."""
|
||||
|
||||
import platform
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
IS_WINDOWS = sys.platform == "win32"
|
||||
|
||||
# Plataforma y arquitectura de ESTE build, en el vocabulario que usa el PANEL para
|
||||
# decidir qué artefacto le corresponde a cada servidor (a24c.cras_releases).
|
||||
# Se reportan en POST /api/restore/instance-config junto con app_version.
|
||||
APP_PLATFORM = "windows" if IS_WINDOWS else "linux"
|
||||
|
||||
# platform.machine() varía por SO para la misma arquitectura ("AMD64" en Windows,
|
||||
# "x86_64" en Linux); se normaliza a un solo vocabulario.
|
||||
_ARCH_ALIASES = {
|
||||
"x86_64": "x86_64",
|
||||
"amd64": "x86_64",
|
||||
"x86": "x86",
|
||||
"i386": "x86",
|
||||
"i686": "x86",
|
||||
"aarch64": "arm64",
|
||||
"arm64": "arm64",
|
||||
}
|
||||
|
||||
|
||||
def _resolve_arch() -> str:
|
||||
raw = (platform.machine() or "").strip().lower()
|
||||
return _ARCH_ALIASES.get(raw, raw or "unknown")
|
||||
|
||||
|
||||
APP_ARCH = _resolve_arch()
|
||||
|
||||
|
||||
def _resolve_app_dir() -> Path:
|
||||
"""Directorio donde vive el ejecutable (persistente)."""
|
||||
@@ -15,19 +43,27 @@ def _resolve_bundle_dir() -> Path:
|
||||
"""Recursos embebidos en el binario PyInstaller onefile."""
|
||||
if getattr(sys, "frozen", False):
|
||||
return Path(sys._MEIPASS)
|
||||
platform = "windows" if sys.platform == "win32" else "linux"
|
||||
return _resolve_app_dir() / "packaging" / "bundled" / platform
|
||||
return _resolve_app_dir() / "packaging" / "bundled" / APP_PLATFORM
|
||||
|
||||
|
||||
APP_DIR = _resolve_app_dir()
|
||||
CONFIG_DIR = APP_DIR / "config"
|
||||
ENV_PATH = CONFIG_DIR / ".env"
|
||||
|
||||
# Sello con la versión que corrió por última vez en esta instalación. El bootstrap lo
|
||||
# reescribe en cada arranque; el instalador remoto del PANEL lo lee por SFTP para
|
||||
# verificar el despliegue sin depender de stdout (el .exe se compila con console=False).
|
||||
VERSION_PATH = CONFIG_DIR / ".version"
|
||||
|
||||
# Sello con el hash de packaging/bundled-versions.json del build que desplegó 7zip/odbc.
|
||||
# Si cambia, el bootstrap re-copia esas carpetas (ver _copy_bundled_tree).
|
||||
BUNDLED_STAMP_PATH = CONFIG_DIR / ".bundled_deps"
|
||||
|
||||
DATA_DIR = CONFIG_DIR / "data"
|
||||
LOGS_DIR = CONFIG_DIR / "logs"
|
||||
ODBC_DIR = CONFIG_DIR / "odbc"
|
||||
SEVEN_ZIP_DIR = CONFIG_DIR / "7zip"
|
||||
|
||||
IS_WINDOWS = sys.platform == "win32"
|
||||
BUNDLE_DIR = _resolve_bundle_dir()
|
||||
BUNDLED_SOURCE_7ZIP = BUNDLE_DIR / "bundled" / "7zip"
|
||||
BUNDLED_SOURCE_ODBC = BUNDLE_DIR / "bundled" / "odbc"
|
||||
@@ -136,4 +172,18 @@ DEFAULT_CONFIG = {
|
||||
"instance_key": "",
|
||||
"verify_ssl": False,
|
||||
},
|
||||
"retention": {
|
||||
# Limpieza diaria de respaldos obsoletos para no saturar el disco del servidor.
|
||||
"enabled": True,
|
||||
# Procesados/: por nodo, borra los aplicados con finished_at < (ref_del_nodo - days).
|
||||
"days": 2,
|
||||
# Fallados/: por antigüedad absoluta, borra los más viejos que (hoy - failed_days).
|
||||
"failed_days": 7,
|
||||
# Hora local (0-23) a la que corre la limpieza diaria.
|
||||
"run_at_hour": 3,
|
||||
# Cada cuánto despierta el hilo para evaluar si toca correr.
|
||||
"check_interval_seconds": 3600,
|
||||
# Arranca en SECO: solo reporta qué borraría. El operador lo desactiva tras validar.
|
||||
"dry_run": True,
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user