pub struct LeaseRevocationContent {
pub workload_id: String,
pub primary_provider_npub: String,
pub standby_providers: Vec<String>,
pub reason: String,
pub revoked_at: u64,
pub state_uri: Option<String>,
pub version: u8,
}Expand description
Lease revocation content (Unit 5 wiring).
Emitted by a primary provider whose workload state machine has
transitioned the workload out of Live (typically because the
primary observed its own heartbeats failing to reach quorum at
relays — split-brain self-eviction). Standby providers listed in
standby_providers can promote on observing this event without
fear of two writers, because the primary has already left Live
before publishing.
Fields§
§workload_id: StringConsumer-assigned workload identifier (the same UUID-shaped
string the consumer sent in the spawn request as
workload_id). Standbys key their slot table by this id and
use it to look up the matching reservation when a revocation
arrives. v0 events used a u32 (the primary’s local vmid) —
the change to String is a wire-format bump, but no v0
revocations were ever published in production (#34/#41
shipped the listener, not the publisher’s own consumers).
primary_provider_npub: String§standby_providers: Vec<String>§reason: String§revoked_at: u64§state_uri: Option<String>Optional Blossom URI of the latest checkpoint (Unit 6). When set, the standby restores from this state rather than spawning a fresh container.
version: u8Schema version. v0 (no field on the wire) deserializes to 1.
Trait Implementations§
Source§impl Clone for LeaseRevocationContent
impl Clone for LeaseRevocationContent
Source§fn clone(&self) -> LeaseRevocationContent
fn clone(&self) -> LeaseRevocationContent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LeaseRevocationContent
impl Debug for LeaseRevocationContent
Source§impl<'de> Deserialize<'de> for LeaseRevocationContent
impl<'de> Deserialize<'de> for LeaseRevocationContent
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for LeaseRevocationContent
impl RefUnwindSafe for LeaseRevocationContent
impl Send for LeaseRevocationContent
impl Sync for LeaseRevocationContent
impl Unpin for LeaseRevocationContent
impl UnsafeUnpin for LeaseRevocationContent
impl UnwindSafe for LeaseRevocationContent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more