pub struct LocalExecutionManager { /* private fields */ }Expand description
Local lifecycle facade shared by service, CLI, and SDK adapters.
Implementations§
Trait Implementations§
Source§impl Clone for LocalExecutionManager
impl Clone for LocalExecutionManager
Source§fn clone(&self) -> LocalExecutionManager
fn clone(&self) -> LocalExecutionManager
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 ExecutionManager for LocalExecutionManager
impl ExecutionManager for LocalExecutionManager
Source§fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
request: CreateExecutionRequest,
operation_id: &'life1 OperationId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionReservation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
request: CreateExecutionRequest,
operation_id: &'life1 OperationId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionReservation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Persist exactly one unstarted execution reservation for
operation_id.Source§fn start<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionLease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn start<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionLease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Start one created execution after fencing stale callers by generation.
fn inspect<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionStatus>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn read_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<Vec<LogEntry>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<Vec<LogEntry>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Read structured stdout/stderr entries after fencing the runtime generation.
Source§fn create_filesystem_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
snapshot_id: &'life2 ExecutionSnapshotId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionSnapshot>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_filesystem_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
snapshot_id: &'life2 ExecutionSnapshotId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionSnapshot>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Temporarily quiesce the execution, atomically capture its rootfs in the
runtime-managed snapshot store, and restore its prior stable state.
Source§fn filesystem_snapshot_size<'life0, 'life1, 'async_trait>(
&'life0 self,
snapshot_id: &'life1 ExecutionSnapshotId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<Option<u64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn filesystem_snapshot_size<'life0, 'life1, 'async_trait>(
&'life0 self,
snapshot_id: &'life1 ExecutionSnapshotId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<Option<u64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Return the size of a fully published runtime-managed snapshot, or
None when it does not exist.Source§fn delete_filesystem_snapshot<'life0, 'life1, 'async_trait>(
&'life0 self,
snapshot_id: &'life1 ExecutionSnapshotId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_filesystem_snapshot<'life0, 'life1, 'async_trait>(
&'life0 self,
snapshot_id: &'life1 ExecutionSnapshotId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete a runtime-managed snapshot, refusing while an active execution
still uses it as a copy-on-write lower.
Source§fn pause<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
keep_memory: bool,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionLease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn pause<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
keep_memory: bool,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionLease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Pause one execution and return the generation-fenced paused lease.
fn resume<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionLease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn restart_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
operation_id: &'life2 OperationId,
options: RestartExecutionOptions,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionLease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn restart_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
operation_id: &'life2 OperationId,
options: RestartExecutionOptions,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionLease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Restart with controls that become part of the durable operation intent.
fn kill<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
expected_generation: ExecutionGeneration,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<KillOutcome>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn reconcile<'life0, 'life1, 'async_trait>(
&'life0 self,
operation_id: &'life1 OperationId,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ReconcileOutcome>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn create_and_start<'life0, 'life1, 'async_trait>(
&'life0 self,
request: CreateExecutionRequest,
operation_id: &'life1 OperationId,
) -> Pin<Box<dyn Future<Output = Result<ExecutionLease, ExecutionManagerError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn create_and_start<'life0, 'life1, 'async_trait>(
&'life0 self,
request: CreateExecutionRequest,
operation_id: &'life1 OperationId,
) -> Pin<Box<dyn Future<Output = Result<ExecutionLease, ExecutionManagerError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Create and start exactly one execution for
operation_id. Read moreSource§fn restart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
generation: ExecutionGeneration,
operation_id: &'life2 OperationId,
) -> Pin<Box<dyn Future<Output = Result<ExecutionLease, ExecutionManagerError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn restart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
generation: ExecutionGeneration,
operation_id: &'life2 OperationId,
) -> Pin<Box<dyn Future<Output = Result<ExecutionLease, ExecutionManagerError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Terminate the current runtime, advance its generation exactly once,
and start it again under an idempotent operation identity.
Source§impl ExecutionPortConnector for LocalExecutionManager
impl ExecutionPortConnector for LocalExecutionManager
fn connect_port<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
generation: ExecutionGeneration,
port: NonZeroU16,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionPortStream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl ExecutionSessionManager for LocalExecutionManager
impl ExecutionSessionManager for LocalExecutionManager
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
generation: ExecutionGeneration,
request: ExecRequest,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn start_process<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
generation: ExecutionGeneration,
request: ExecRequest,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionProcess>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn start_pty<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
generation: ExecutionGeneration,
request: PtyRequest,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<ExecutionProcess>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn transfer_file<'life0, 'life1, 'async_trait>(
&'life0 self,
execution_id: &'life1 ExecutionId,
generation: ExecutionGeneration,
request: FileRequest,
) -> Pin<Box<dyn Future<Output = ExecutionManagerResult<FileResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl !RefUnwindSafe for LocalExecutionManager
impl !UnwindSafe for LocalExecutionManager
impl Freeze for LocalExecutionManager
impl Send for LocalExecutionManager
impl Sync for LocalExecutionManager
impl Unpin for LocalExecutionManager
impl UnsafeUnpin for LocalExecutionManager
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