sync_audio_to_prod.py: local_meta() propaga fallos de docker exec
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.
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user