Skip to main content

WarmPoolHandle

Struct WarmPoolHandle 

Source
pub struct WarmPoolHandle {
    pub source_vm_id: String,
    pub stack: StackKey,
    pub source_snapshot: SnapshotRef,
}
Expand description

A pre-restored VM checked out of the pool, ready for the caller to bring up under a new tenant identity.

The caller takes the SnapshotRef out of the handle, attaches their per-tenant network_overrides, and feeds it to provider.create_vm_with_spec(new_vm_id, &VmSpec { restore_from: Some(...), ..VmSpec::default() }). Firecracker 1.10+ honors the override on restore — the heavy kernel/init path is already done, so the new tenant only pays the restore cost.

source_vm_id is informational: it identifies the pool entry that was drained for this acquire. The pool has already removed it from its tracking map by the time the handle is returned, so the caller doesn’t have to worry about double-handoff.

Fields§

§source_vm_id: String

VM ID the pool was tracking before this acquire. Pool no longer holds any reference to it; the caller owns it.

§stack: StackKey

Bucket key this entry was drained from.

§source_snapshot: SnapshotRef

Snapshot that was registered for this bucket. Pass to VmProvider::create_vm_with_spec after setting SnapshotRef::network_overrides for the new tenant.

Trait Implementations§

Source§

impl Clone for WarmPoolHandle

Source§

fn clone(&self) -> WarmPoolHandle

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for WarmPoolHandle

Source§

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

Formats the value using the given formatter. Read more

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> 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.