pub struct HostRolloutSnapshot {Show 13 fields
pub rollout_id: RolloutId,
pub hostname: String,
pub channel: String,
pub state: HostRolloutState,
pub target_closure: String,
pub current_closure_at_dispatch: Option<String>,
pub current_closure: Option<String>,
pub dispatched_at: DateTime<Utc>,
pub dispatch_acked_at: Option<DateTime<Utc>>,
pub activation_started_at: Option<DateTime<Utc>>,
pub activation_completed_at: Option<DateTime<Utc>>,
pub soak_due_at: Option<DateTime<Utc>>,
pub last_event_seq: u64,
}Expand description
LIFT #3: snapshot of a host’s per-rollout state, carried in the HeartbeatResponse when CP detects the agent’s reducer is empty but CP holds non-terminal records for the host (typical post-restart shape after LIFT #1 synthesizes the state advance). The agent’s boot-recovery handler applies each snapshot to its in-memory HostRolloutState before workers spawn, restoring the cache so probe runners + advance-ticker resume their work post-restart.
Fields mirror nixfleet_state_machine::HostRolloutState’s
LOADBEARING set (RFC-0005 §5) — anything the agent’s reducer or
downstream workers (probe topology, advance-ticker, soak-elapsed
detection) need to drive the state forward. Probe state itself is
NOT carried: probe runners re-emit LocalProbeTopologyDeclared
from health-checks.json on startup and probes repopulate via
fresh runs. A pre-restart sustained-failure timer (probe_failure_ first_at) resets across restart; tracked as v0.2.1 polish.
Fields§
§rollout_id: RolloutId§hostname: String§channel: String§state: HostRolloutState§target_closure: String§current_closure_at_dispatch: Option<String>§current_closure: Option<String>§dispatched_at: DateTime<Utc>§dispatch_acked_at: Option<DateTime<Utc>>§activation_started_at: Option<DateTime<Utc>>§activation_completed_at: Option<DateTime<Utc>>§soak_due_at: Option<DateTime<Utc>>§last_event_seq: u64Trait Implementations§
Source§impl Clone for HostRolloutSnapshot
impl Clone for HostRolloutSnapshot
Source§fn clone(&self) -> HostRolloutSnapshot
fn clone(&self) -> HostRolloutSnapshot
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more