Skip to main content

VmProtoAgent

Struct VmProtoAgent 

Source
pub struct VmProtoAgent { /* private fields */ }
Expand description

The guest agent of one running VM, reached over its vsock device.

Implementations§

Source§

impl VmProtoAgent

Source

pub fn over(handle: Arc<dyn VmHandle>) -> Self

The agent inside handle’s guest.

The port lends the vsock capability out of the handle (VmHandle::vsock borrows) while callers hold the agent across awaits and hand it to detached tasks, so the agent owns the handle.

Trait Implementations§

Source§

impl GuestAgent for VmProtoAgent

Source§

fn run<'life0, 'async_trait>( &'life0 self, start: StartCommand, ) -> Pin<Box<dyn Future<Output = Result<Receiver<Result<OutputChunk>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Run a command and stream its output. The final OutputChunk is always OutputChunk::Exit.
Source§

fn exec<'life0, 'async_trait>( &'life0 self, start: StartCommand, ) -> Pin<Box<dyn Future<Output = Result<(ExecInput, Receiver<Result<OutputChunk>>)>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Start an interactive session: input sink, output stream.
Source§

fn sync_clock<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ClockSync>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Set the guest wall clock to the host’s now. Read more
Source§

fn reconfigure_network<'life0, 'life1, 'async_trait>( &'life0 self, cmd: &'life1 NetReconfigCommand, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Re-address the guest after a restore onto a fresh network.
Source§

fn wait_for_port<'life0, 'async_trait>( &'life0 self, port: u16, timeout: Duration, ) -> Pin<Box<dyn Future<Output = Result<PortWait>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Wait until the guest’s own listen table has a listener on port — never a connect probe, which would perturb the workload.
Source§

fn files(&self) -> &dyn GuestFiles

The file channel into this Computer.
Source§

impl GuestFiles for VmProtoAgent

Source§

fn read<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Read a whole file.
Source§

fn write<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, path: &'life1 str, mode: u32, data: &'life2 [u8], ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Write a whole file, creating it with mode.
Source§

fn stat<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<FileStatDto>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Stat one path; symlinks are reported, not followed.
Source§

fn list<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<FileStatDto>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

List a directory, non-recursively, with full per-entry metadata.
Source§

fn make_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, mode: u32, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Create a directory and any missing parents; succeeds if it exists.
Source§

fn remove<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, recursive: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Remove a file, symlink or directory; a non-empty directory needs recursive.
Source§

fn rename<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, from: &'life1 str, to: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Rename an entry within the Computer.
Source§

fn watch<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str, recursive: bool, ) -> Pin<Box<dyn Future<Output = Result<DirWatch>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Open a directory watch. The stream ends cleanly when the Computer stops; dropping it cancels the watch.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more