From 654c3d3c35e742726be62d1d57f9361edc95d74e Mon Sep 17 00:00:00 2001 From: rafa Date: Mon, 24 Aug 2026 15:27:41 -0400 Subject: [PATCH] sync_audio_to_prod.py: local_meta() propaga fallos de docker exec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mismo patrón que carta_article_ids() (commit anterior): si el docker exec contra el contenedor WP local fallaba (contenedor caído/inexistente), local_meta() devolvía stdout vacío en vez de comprobar returncode. sync_one() interpretaba la cadena vacía como "sin-audio-local" (skip), no como error, así que un lote entero podía acabar "ok=0/skip=N" tras perder Docker en vez de abortar. Ahora lanza RuntimeError con el stderr si docker exec falla; se propaga por sync_one() hasta el try/except de main(), que ya cuenta err y devuelve 1 — el wrapper aborta correctamente con exit=1 y 0 sincronizaciones. Probado: FEA_WP_CONTAINER inexistente + --ids → aborta en el primer ID (exit=1, ok=0). Camino normal (--ids con contenedor real, dry-run) sigue dando el mismo resultado que antes. Revisión de Codix en el PR #215. --- scripts/sync_audio_to_prod.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/sync_audio_to_prod.py b/scripts/sync_audio_to_prod.py index 31e83b4..b7f8e08 100644 --- a/scripts/sync_audio_to_prod.py +++ b/scripts/sync_audio_to_prod.py @@ -75,6 +75,8 @@ def local_meta(post_id: int, key: str) -> str: ["docker", "exec", WP_CONTAINER, "php", "/tmp/fea_post_io.php", "getmeta", str(post_id), key], capture_output=True, text=True, timeout=60, ) + if r.returncode != 0: + raise RuntimeError(f"docker exec {WP_CONTAINER} falló leyendo meta '{key}' de #{post_id} (rc={r.returncode}): {r.stderr.strip()[:300]}") return r.stdout.strip()