From 20f09c3b5e7c8668143f9244a4d5fd9a159a99be Mon Sep 17 00:00:00 2001 From: david Date: Mon, 1 Dec 2025 09:55:54 +0100 Subject: [PATCH] =?UTF-8?q?Subida=20a=20producci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/cli.py | 4 ++-- app/config/setup_logger.py | 19 +++++++++++++++---- app/sync_factuges_main.py | 13 +++++++++---- app/sync_verifactu_main.py | 9 +++++---- scripts/build-factuges-sync.sh | 8 ++++++-- setup.cfg | 2 +- 6 files changed, 38 insertions(+), 17 deletions(-) diff --git a/app/cli.py b/app/cli.py index d49c57d..70efece 100644 --- a/app/cli.py +++ b/app/cli.py @@ -19,7 +19,7 @@ Mode = Literal["factuges", "verifactu", "all"] def run_module(module: str) -> None: """Lanza un módulo Python como subproceso y falla en caso de error.""" - subprocess.run([sys.executable, "-m", module], check=True) + subprocess.run([sys.executable, "-m", module], check=False) def resolve_mode(arg_mode: Optional[str]) -> Mode: @@ -59,7 +59,7 @@ def main() -> None: run_module("app.sync_verifactu_main") else: # mode == "all" # Primero sincroniza FactuGES, luego Verifactu. - # Si la primera falla, el proceso termina por el check=True. + # Si la primera falla, el proceso no termina por el check=False. run_module("app.sync_factuges_main") run_module("app.sync_verifactu_main") diff --git a/app/config/setup_logger.py b/app/config/setup_logger.py index da90aa7..cf160b1 100644 --- a/app/config/setup_logger.py +++ b/app/config/setup_logger.py @@ -1,5 +1,3 @@ -# app/logger.py - from __future__ import annotations import logging @@ -49,9 +47,9 @@ def create_logger( # ------------------------------ # 2) Handler de fichero (solo prod) # ------------------------------ - environment = os.getenv("ENV", "development").lower() + is_production = os.getenv("ENV") == "production" - if log_path and environment in ("production", "prod"): + if log_path and is_production: p = Path(log_path) # Aseguramos directorios @@ -67,6 +65,19 @@ def create_logger( h_file.setFormatter(formatter) logger.addHandler(h_file) + # Verificación explícita + try: + test_msg = f"Log file active at: {p}" + h_file.acquire() + h_file.stream.write(f"{test_msg}\n") + h_file.flush() + h_file.release() + + logger.info(test_msg) + except Exception as e: + logger.error(f"ERROR: cannot write to log file {p}: {e}") + raise + return logger diff --git a/app/sync_factuges_main.py b/app/sync_factuges_main.py index 2b6428c..5b004f8 100644 --- a/app/sync_factuges_main.py +++ b/app/sync_factuges_main.py @@ -23,13 +23,16 @@ def main(): logger = create_logger( name="factuges-sync", log_path=log_dir / "sync_factuges.log", # Solo lo genera en producción + ) + logger.info("") logger.info("============================================================") - logger.info(" FACTUGES Sync FactuGES - START ") - logger.info(" Version: %s", version) - logger.info(" UTC Now: %s", datetime.utcnow().isoformat()) - logger.info(" Environment: {config['ENV']}") + logger.info("FACTUGES Sync FactuGES - START ") + logger.info("Version: %s", version) + logger.info("UTC Now: %s", datetime.utcnow().isoformat()) + logger.info("Environment: %s", config['ENV']) + logger.info("Log: %s", log_dir / "sync_factuges.log") log_config(config) @@ -70,6 +73,7 @@ def main(): logger.info("== END (0) ==") logger.info("============================================================") + logger.info("") sys.exit(0) except Exception as e: @@ -78,6 +82,7 @@ def main(): logger.error("Traceback:", exc_info=True) logger.info("== END (1) ==") logger.info("============================================================") + logger.info("") if conn_mysql is not None: conn_mysql.rollback() diff --git a/app/sync_verifactu_main.py b/app/sync_verifactu_main.py index 8fca565..cf22c22 100644 --- a/app/sync_verifactu_main.py +++ b/app/sync_verifactu_main.py @@ -27,10 +27,11 @@ def main(): ) logger.info("============================================================") - logger.info(" FACTUGES Sync Verifactu - START ") - logger.info(" Version: %s", version) - logger.info(" UTC Now: %s", datetime.utcnow().isoformat()) - logger.info(" Environment: {config['ENV']}") + logger.info("FACTUGES Sync Verifactu - START ") + logger.info("Version: %s", version) + logger.info("UTC Now: %s", datetime.utcnow().isoformat()) + logger.info("Environment: %s", config['ENV']) + logger.info("Log: %s", log_dir / "sync_verifactu.log") log_config(config) diff --git a/scripts/build-factuges-sync.sh b/scripts/build-factuges-sync.sh index 0ba26e9..313a4da 100755 --- a/scripts/build-factuges-sync.sh +++ b/scripts/build-factuges-sync.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -SCRIPT_VERSION="2.0.0" +SCRIPT_VERSION="2.0.1" # ================================================ # FACTUGES SYNC - Docker Build Script (Simplificado) @@ -26,8 +26,10 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(realpath "${SCRIPT_DIR}/..")" OUT_DIR="${PROJECT_DIR}/out/${COMPANY}" +rm -rf "$OUT_DIR" mkdir -p "$OUT_DIR" + # ---------- 3. Info ---------- DATE=$(date +'%Y%m%d-%H%M%S') ISO_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") @@ -46,13 +48,15 @@ echo " FACTUGES SYNC Build Script v${SCRIPT_VERSION}" echo " Compañía: ${COMPANY}" echo " Versión: ${IMAGE_VERSION}" echo " Fecha: ${DATE}" +echo " Carga: ${LOAD}" echo "-------------------------------------------------------" echo "" # ---------- 4. Build único ---------- echo "📦 Construyendo imagen Docker..." -docker build --no-cache \ +#docker build --no-cache \ +docker build \ -t "${TAG_VERSION}" \ -t "${TAG_LATEST}" \ --build-arg COMPANY="${COMPANY}" \ diff --git a/setup.cfg b/setup.cfg index 27b3d56..61e8090 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = factuges-sync -version = 0.0.25 +version = 0.1.4 description = ETL job to sync data from legacy DB to MariaDB author = Rodax Software author_email = info@rodax-software.com