pub struct NativeLinuxOciBundleProvider { /* private fields */ }Expand description
Prepares immutable bundles from Box image/rootfs policy while the separate A3S OCI Runtime service owns container lifecycle and I/O.
Implementations§
Source§impl NativeLinuxOciBundleProvider
impl NativeLinuxOciBundleProvider
pub fn new( home_dir: impl Into<PathBuf>, runtime_path: impl Into<PathBuf>, agent_path: impl Into<PathBuf>, ) -> Self
pub fn runtime_path(&self) -> &Path
pub fn agent_path(&self) -> &Path
pub fn with_pull_progress_fn(self, pull_progress_fn: PullProgressFn) -> Self
Trait Implementations§
Source§impl Clone for NativeLinuxOciBundleProvider
impl Clone for NativeLinuxOciBundleProvider
Source§fn clone(&self) -> NativeLinuxOciBundleProvider
fn clone(&self) -> NativeLinuxOciBundleProvider
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl OciBundleProvider for NativeLinuxOciBundleProvider
impl OciBundleProvider for NativeLinuxOciBundleProvider
Source§fn prepare<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
_context: &'life2 OciBundlePreparationContext,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<OciPreparedExecution>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn prepare<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
_context: &'life2 OciBundlePreparationContext,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<OciPreparedExecution>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Prepare one immutable OCI bundle after runtime capability preflight.
Source§fn cleanup<'life0, 'life1, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn cleanup<'life0, 'life1, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove only Box-owned preparation artifacts after runtime cleanup.
Source§fn ensure_log_projection<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
binding: &'life2 OciRuntimeBinding,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn ensure_log_projection<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
binding: &'life2 OciRuntimeBinding,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Ensure the Box-owned init-output projection is ready before OCI start.
Test and embedding providers may retain raw runtime output only.
Source§fn wait_log_projection_drained<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
binding: &'life2 OciRuntimeBinding,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn wait_log_projection_drained<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
binding: &'life2 OciRuntimeBinding,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Wait until the exact init stdout/stderr streams have reached EOF and
Box’s configured log driver has consumed them.
Source§fn wait_log_projection_stopped_after_owner_loss<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
binding: &'life2 OciRuntimeBinding,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn wait_log_projection_stopped_after_owner_loss<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
record: &'life1 BoxRecord,
binding: &'life2 OciRuntimeBinding,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Wait until the exact projection worker has stopped after the runtime
owner was lost. This path must not claim that output was fully drained:
owner-death recovery deliberately preserves an unknown exit status and
may also have lost the tail of the init output stream.
Source§fn preflight(
&self,
_record: &BoxRecord,
_context: &OciBundlePreparationContext,
) -> ExecutionManagerResult<()>
fn preflight( &self, _record: &BoxRecord, _context: &OciBundlePreparationContext, ) -> ExecutionManagerResult<()>
Reject a runtime/provider mismatch before product or runtime mutation.
Auto Trait Implementations§
impl !RefUnwindSafe for NativeLinuxOciBundleProvider
impl !UnwindSafe for NativeLinuxOciBundleProvider
impl Freeze for NativeLinuxOciBundleProvider
impl Send for NativeLinuxOciBundleProvider
impl Sync for NativeLinuxOciBundleProvider
impl Unpin for NativeLinuxOciBundleProvider
impl UnsafeUnpin for NativeLinuxOciBundleProvider
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
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> ⓘ
Converts
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> ⓘ
Converts
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