fix(tests): restore best-effort semantics of lasuite-drive pre_install bucket trigger (rcust M2 regression)
All checks were successful
continuous-integration/drone/push Build is passing

The P2b port of setup_custom_tests.sh -> ops.py::pre_install made the 90s bucket-poll timeout a
fatal AssertionError; the original shell hook fell through on timeout BY DESIGN (best-effort) and
the custom-tier MinIO storage test is the real gate for a genuinely missing bucket. Live evidence:
in both M2 sweep failures the bucket landed just after the window and every later tier including
the custom MinIO test passed. Warn loudly + continue, exactly the old semantics.

Adversary-approved fix-forward (REVIEW-rcust 57c66ad, scoped to this raise).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
autonomic-bot
2026-06-10 20:53:31 +00:00
parent 57c66add51
commit 1357544301

View File

@ -19,7 +19,12 @@ def pre_install(ctx):
NOT create the MinIO bucket: `minio-createbuckets` is a `replicas:0` one-shot (restart_policy: NOT create the MinIO bucket: `minio-createbuckets` is a `replicas:0` one-shot (restart_policy:
none) that must be triggered. The MinIO storage test asserts the bucket exists, so trigger it none) that must be triggered. The MinIO storage test asserts the bucket exists, so trigger it
here and poll. `--detach` is REQUIRED: the job creates the bucket then EXITS 0, so it never here and poll. `--detach` is REQUIRED: the job creates the bucket then EXITS 0, so it never
holds a steady 1/1 replica — a blocking scale would wait forever.""" holds a steady 1/1 replica — a blocking scale would wait forever.
BEST-EFFORT, like the setup_custom_tests.sh it replaced: on poll timeout we WARN and continue
(the one-shot often lands just after the window). The custom-tier MinIO storage test is the
real gate for a genuinely missing bucket — failing the install op here was an rcust M2
regression (the original hook fell through on timeout by design)."""
stack = ctx.domain.replace(".", "_") stack = ctx.domain.replace(".", "_")
print(" pre_install: creating MinIO bucket via the minio-createbuckets one-shot", flush=True) print(" pre_install: creating MinIO bucket via the minio-createbuckets one-shot", flush=True)
subprocess.run( subprocess.run(
@ -51,7 +56,12 @@ def pre_install(ctx):
) )
return return
time.sleep(3) time.sleep(3)
raise AssertionError("minio-createbuckets one-shot did not create drive-media-storage in 90s") print(
" !! pre_install: minio-createbuckets one-shot did not create drive-media-storage in 90s "
"— continuing (best-effort, as the pre-restructure hook did); the custom-tier MinIO test "
"gates a genuinely missing bucket",
flush=True,
)
def _wait_collabora_ready(domain, timeout=420): def _wait_collabora_ready(domain, timeout=420):