diff --git a/scripts/retest-floating.py b/scripts/retest-floating.py index 5a6be85..806494b 100644 --- a/scripts/retest-floating.py +++ b/scripts/retest-floating.py @@ -95,9 +95,11 @@ def bench(script, timeout=3600): def prerequisites(): missing = [] - r = bench("test -f /opt/upg/upgrade-test.py && echo bench-ok", timeout=120) + # R-749: ask for what the bench must BRING (docker, python3) — /opt/upg is what sync_bench() puts there AFTER this + # check; asking for it here refused every freshly created bench. + r = bench("command -v docker >/dev/null && command -v python3 >/dev/null && docker info >/dev/null 2>&1 && echo bench-ok", timeout=120) if "bench-ok" not in (r.stdout or ""): - missing.append("the bench LXC %s on %s with /opt/upg (runbook §2)" % (BENCH_CT, BENCH_HOST)) + missing.append("the bench LXC %s on %s with docker and python3 (runbook §2)" % (BENCH_CT, BENCH_HOST)) if not os.path.isdir(os.path.join(DRILL, ".git")): missing.append("the drill checkout at %s (runbook §3)" % DRILL) if not os.path.isfile(os.path.join(os.environ.get("SC", os.path.expanduser("~/.felhom-retest")), ".ctlpw")): @@ -202,7 +204,7 @@ def main(argv): print("CANNOT START — missing: " + "; ".join(missing)) return 2 s = sync_bench() - if "synced" not in (s.stdout or ""): + if "synced" not in (s.stdout or "") or "bench-ok" not in (bench("test -f /opt/upg/upgrade-test.py && echo bench-ok", timeout=120).stdout or ""): print("CANNOT START — the bench could not be synced: " + (s.stdout + s.stderr).strip()[-200:]) return 2 results = []