Skip to main content

preflight_hosts

Function preflight_hosts 

Source
pub fn preflight_hosts(
    cluster: &ClusterConfig,
    controller_host: &str,
    prebuilding: bool,
) -> Result<(), String>
Expand description

Pre-fan-out readiness probe for every host, run BEFORE any build and in BOTH prebuild and --no-prebuild modes (mount-readiness is orthogonal to binary freshness). One ssh per remote host: always verifies the shared data_path is mounted + readable; when prebuilding, also runs the controller-vs-remote ABI gate (arch / libc / pkill). The controller is checked LOCALLY (no ssh — it is the build/dispatch host, so ABI is trivially satisfied).

A definitive failure aborts before fan-out with a per-host message: an ABI mismatch, or a missing EXPLICIT data_path (a declared shared mount that isn’t there is a launch-breaking misconfig, matching fdl probe’s stance). Missing convention-default paths and unreachable hosts only warn. Running before the (multi-minute) builds means a bad host fails fast without wasting a build on a good one.

controller_host is the local hostname (its worker entry, if any, is covered by the local check and skipped from the ssh sweep).