scripts/iso: bootstrap-modes harness catches up with the v1.21.0 in-script pairing wait

The old pairing/delivery scenarios expected a non-zero exit on an
unbound 204 poll — the one-poll-per-invocation design v1.21.0 (R-33)
deliberately removed; against the current script they would hang on a
real sleep. Now: a PATH-faked sleep counts the waits and flips the poll
to 200 after 3 cycles, so one scenario proves the whole v1.21.0 shape
in a single invocation (register -> in-script 204 waits -> delivery ->
host-install -> done-flag, exit 0), plus a 410 crash-window scenario
(still exits non-zero on purpose). Runaway guard: fake sleep kills the
loop after 25 calls. Assistant image gains python3 (the bootstrap's
JSON parsing needs it; PVE ships it on the real box) — the harness runs
in that image.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UuFPHmHNrCJj1VhY6QdDMU
This commit is contained in:
2026-07-22 10:11:56 +02:00
parent 9e292958c2
commit ad1d26a9fd
2 changed files with 47 additions and 24 deletions
+4 -2
View File
@@ -15,9 +15,11 @@ FROM debian:trixie
# 2.12-9+pmx2 generation, so the tool matches the modules it embeds. imagemagick: the R-38 GRUB boot
# card — grub/generate-grub-background.sh letterboxes the website's brand asset onto a 1024x768
# gfxterm canvas at repack time, so the boot screen has ONE source (the website asset) and not a
# second pre-rendered copy checked into the repo to drift.
# second pre-rendered copy checked into the repo to drift. python3: felhom-bootstrap.sh's JSON
# parsing depends on it on the installed box (PVE ships it) — the test harness
# (test/bootstrap-modes.sh) runs the bootstrap in THIS image, so it must match that dependency.
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates wget gnupg xorriso shellcheck \
ca-certificates wget gnupg xorriso shellcheck python3 \
grub-common grub-efi-amd64-bin mtools dosfstools imagemagick \
&& rm -rf /var/lib/apt/lists/*