Skip to main content

SandboxRuntime

Trait SandboxRuntime 

Source
pub trait SandboxRuntime: Send + Sync {
Show 17 methods // Required methods fn create_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, spec: &'life1 SandboxSpec, ) -> Pin<Box<dyn Future<Output = CiabResult<SandboxInfo>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<SandboxInfo>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_sandboxes<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, state: Option<SandboxState>, provider: Option<&'life1 str>, labels: &'life2 HashMap<String, String>, ) -> Pin<Box<dyn Future<Output = CiabResult<Vec<SandboxInfo>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn start_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn stop_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn pause_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn resume_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn terminate_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn exec<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, request: &'life2 ExecRequest, ) -> Pin<Box<dyn Future<Output = CiabResult<ExecResult>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn read_file<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, path: &'life2 str, ) -> Pin<Box<dyn Future<Output = CiabResult<Vec<u8>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn write_file<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, id: &'life1 Uuid, path: &'life2 str, content: &'life3 [u8], ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait; fn list_files<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, path: &'life2 str, ) -> Pin<Box<dyn Future<Output = CiabResult<Vec<FileInfo>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn get_stats<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<ResourceStats>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn stream_logs<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, options: &'life2 LogOptions, ) -> Pin<Box<dyn Future<Output = CiabResult<Receiver<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; // Provided methods fn exec_streaming<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, request: &'life2 ExecRequest, ) -> Pin<Box<dyn Future<Output = CiabResult<(Receiver<String>, JoinHandle<CiabResult<ExecResult>>)>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn exec_streaming_interactive<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, request: &'life2 ExecRequest, ) -> Pin<Box<dyn Future<Output = CiabResult<(Receiver<String>, Sender<String>, JoinHandle<CiabResult<ExecResult>>)>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn kill_exec<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... }
}

Required Methods§

Source

fn create_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, spec: &'life1 SandboxSpec, ) -> Pin<Box<dyn Future<Output = CiabResult<SandboxInfo>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Create a new sandbox from the given spec.

Source

fn get_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<SandboxInfo>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get info about a sandbox by ID.

Source

fn list_sandboxes<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, state: Option<SandboxState>, provider: Option<&'life1 str>, labels: &'life2 HashMap<String, String>, ) -> Pin<Box<dyn Future<Output = CiabResult<Vec<SandboxInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

List all sandboxes, optionally filtered by state, provider, and labels.

Source

fn start_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Start a sandbox.

Source

fn stop_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Stop a sandbox.

Source

fn pause_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Pause a sandbox.

Source

fn resume_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Resume a paused sandbox.

Source

fn terminate_sandbox<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Terminate and remove a sandbox.

Source

fn exec<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, request: &'life2 ExecRequest, ) -> Pin<Box<dyn Future<Output = CiabResult<ExecResult>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Execute a command inside a sandbox.

Source

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

Read a file from a sandbox.

Source

fn write_file<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, id: &'life1 Uuid, path: &'life2 str, content: &'life3 [u8], ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Write a file to a sandbox.

Source

fn list_files<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, path: &'life2 str, ) -> Pin<Box<dyn Future<Output = CiabResult<Vec<FileInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

List files in a directory inside a sandbox.

Source

fn get_stats<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<ResourceStats>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get resource stats for a sandbox.

Source

fn stream_logs<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, options: &'life2 LogOptions, ) -> Pin<Box<dyn Future<Output = CiabResult<Receiver<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Stream logs from a sandbox.

Provided Methods§

Source

fn exec_streaming<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, request: &'life2 ExecRequest, ) -> Pin<Box<dyn Future<Output = CiabResult<(Receiver<String>, JoinHandle<CiabResult<ExecResult>>)>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Execute a command inside a sandbox, streaming stdout lines as they arrive. Returns a receiver of output lines and a join handle for the final ExecResult.

Default implementation falls back to exec() and sends all lines at once.

Source

fn exec_streaming_interactive<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 Uuid, request: &'life2 ExecRequest, ) -> Pin<Box<dyn Future<Output = CiabResult<(Receiver<String>, Sender<String>, JoinHandle<CiabResult<ExecResult>>)>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Execute a command with bidirectional streaming. Returns (stdout lines receiver, stdin sender, join handle). Send lines to the stdin sender to write to the process’s stdin.

Source

fn kill_exec<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Kill an active exec process for a sandbox.

Implementors§