fetch: tolère rsync 23 sur la pré-copie à chaud (WAL sqlite)
1 changed file +3 −1
modified
mld/deploy.py
+3 −1
@@ -58,7 +58,9 @@ def fetch(app, from_alias, final=False): | ||
| 58 | 58 | _log(app, "fetch %s depuis %s (%s)%s" % (m["dir"], from_alias, ip, " [final]" if final else "")) |
| 59 | 59 | excl = SYNC_BASE_EXCLUDES + list(m.get("sync_excludes") or []) |
| 60 | 60 | rc, out, err = ssh.rsync_pull(ip, _abs(m["dir"]), os.path.join(stage_dir(app), "dir"), excludes=excl) |
| 61 | − if rc not in (0, 24): | |
| 61 | + if rc == 23 and not final: | |
| 62 | + _log(app, " avertissement pré-copie à chaud (fichiers en cours d'écriture, repris au delta final) : %s" % err.strip().splitlines()[0][:120]) | |
| 63 | + elif rc not in (0, 24): | |
| 62 | 64 | raise DeployError("rsync fetch a échoué (%s): %s" % (rc, err.strip()[-300:])) |
| 63 | 65 | for extra in m.get("extra_paths") or []: |
| 64 | 66 | dest = os.path.join(stage_dir(app), "extra", extra.strip("~/").replace("/", "__")) |
| 65 | 67 | |