OutboundAgentEvent

Enum OutboundAgentEvent 

Source
pub enum OutboundAgentEvent {
    DispatchAck {
        current_closure_at_dispatch: ClosureHash,
        received_at: DateTime<Utc>,
        seq: u64,
    },
    ActivationStarted {
        started_at: DateTime<Utc>,
        switch_method: String,
        seq: u64,
    },
    ActivationCompleted {
        observed_current_closure: ClosureHash,
        exit_code: i32,
        completed_at: DateTime<Utc>,
        seq: u64,
    },
    ActivationFailed {
        exit_code: i32,
        stderr_tail: String,
        failed_at: DateTime<Utc>,
        seq: u64,
    },
    ActivationDeferred {
        component: String,
        deferred_at: DateTime<Utc>,
        seq: u64,
    },
    ProbeTopologyDeclared {
        probes: Vec<ProbeTopologyEntry>,
        declared_at: DateTime<Utc>,
        seq: u64,
    },
    ProbeObservedFirst {
        probe_name: ProbeName,
        mode: ProbeMode,
        observed_at: DateTime<Utc>,
        seq: u64,
    },
    ProbeResult {
        probe_name: ProbeName,
        mode: ProbeMode,
        status: ProbeStatus,
        observed_at: DateTime<Utc>,
        failure_reason: Option<String>,
        sub_results: Option<Vec<ProbeSubResult>>,
        seq: u64,
    },
    ProbeFailureFirst {
        probe_name: ProbeName,
        mode: ProbeMode,
        first_failed_at: DateTime<Utc>,
        seq: u64,
    },
    Failed {
        failed_at: DateTime<Utc>,
        sustained_duration_secs: u64,
        failing_probes: Vec<ProbeName>,
        policy_applied: OnHealthFailure,
        seq: u64,
    },
    RollbackComplete {
        reverted_to_closure: ClosureHash,
        exit_code: i32,
        completed_at: DateTime<Utc>,
        seq: u64,
    },
    Converged {
        converged_at: DateTime<Utc>,
        current_closure: ClosureHash,
        seq: u64,
    },
}
Expand description

Outbound wire payloads (POST /v1/agent/events). Defined here for the reducer’s LocalEmitEvent effect; Phase 6/7 lifts these into nixfleet-proto::agent_wire once the HTTP routes are wired.

Variants§

§

DispatchAck

Fields

§current_closure_at_dispatch: ClosureHash
§received_at: DateTime<Utc>
§seq: u64
§

ActivationStarted

Fields

§started_at: DateTime<Utc>
§switch_method: String
§seq: u64
§

ActivationCompleted

Fields

§observed_current_closure: ClosureHash
§exit_code: i32
§completed_at: DateTime<Utc>
§seq: u64
§

ActivationFailed

Fields

§exit_code: i32
§stderr_tail: String
§failed_at: DateTime<Utc>
§seq: u64
§

ActivationDeferred

LIFT #2 (RFC-0005 §4.2): live activation skipped because component (dbus/systemd/kernel/init) cannot be live-swapped on a running system. Profile + bootloader updated; next reboot completes the activation. Host stays at Activating until the operator reboots; CP’s handle_heartbeat (LIFT #1) synthesizes the completion on the agent’s next boot-recovery handshake. Visibility-only at the wire level — replaces the pre-LIFT #2 fake-ActivationCompleted that lied with exit_code = 0 and a stale observed_current_closure.

Fields

§component: String
§deferred_at: DateTime<Utc>
§seq: u64
§

ProbeTopologyDeclared

Fields

§declared_at: DateTime<Utc>
§seq: u64
§

ProbeObservedFirst

Fields

§probe_name: ProbeName
§observed_at: DateTime<Utc>
§seq: u64
§

ProbeResult

Fields

§probe_name: ProbeName
§observed_at: DateTime<Utc>
§failure_reason: Option<String>
§sub_results: Option<Vec<ProbeSubResult>>

None for non-evidence probes; Some(vec) for evidence probes, carrying per-control sub-results. The applier’s probe_failures co-write iterates this to populate one row per failing control (RFC-0007 §7.1 + §7.2).

§seq: u64
§

ProbeFailureFirst

Fields

§probe_name: ProbeName
§first_failed_at: DateTime<Utc>
§seq: u64
§

Failed

Fields

§failed_at: DateTime<Utc>
§sustained_duration_secs: u64
§failing_probes: Vec<ProbeName>
§policy_applied: OnHealthFailure
§seq: u64
§

RollbackComplete

Fields

§reverted_to_closure: ClosureHash
§exit_code: i32
§completed_at: DateTime<Utc>
§seq: u64
§

Converged

Fields

§converged_at: DateTime<Utc>
§current_closure: ClosureHash
§seq: u64

Trait Implementations§

Source§

impl Clone for OutboundAgentEvent

Source§

fn clone(&self) -> OutboundAgentEvent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OutboundAgentEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<OutboundAgentEvent> for AgentEvent

Source§

fn from(e: OutboundAgentEvent) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for OutboundAgentEvent

Source§

fn eq(&self, other: &OutboundAgentEvent) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for OutboundAgentEvent

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.