Expand description
Transitions from Deferred.
Activation was set up at the bootloader level but the live switch
was deferred because a critical component (dbus/systemd/kernel/init)
cannot be live-swapped on a running system. The host stays Deferred
until the operator reboots; on reboot the agent’s boot-recovery
handshake observes current_closure == target_closure and CP’s
handle_heartbeat synthesis (LIFT #1) drives the transition out
via RemoteActivationCompleted.
Legal events from Deferred:
LocalActivationCompleted/RemoteActivationCompleted— post-reboot, the activation has actually taken; drivesDeferred → Soaking(same target state as Activating → Soaking). LIFT #1’s CP-side synthesis is the typical emitter.LocalActivationFailed/RemoteActivationFailed— operator rebooted but boot failed / verification failed. DrivesDeferred → Failed. Rare; covered for completeness.
All other events are illegal from Deferred (probe events: probes aren’t running yet because activation hasn’t completed; rollback events: nothing to roll back from at the in-memory state level — the bootloader has the new target; rollback semantics for Deferred is a v0.3 design question).
Functions§
- handle 🔒