Struct podman_api::api::Exec
source · pub struct Exec { /* private fields */ }
Expand description
Interface for accessing and manipulating Podman Exec.
Implementations§
source§impl Exec
impl Exec
sourcepub fn start<'exec>(
&'exec self,
opts: &'exec ExecStartOpts
) -> impl Stream<Item = Result<TtyChunk>> + 'exec
pub fn start<'exec>(
&'exec self,
opts: &'exec ExecStartOpts
) -> impl Stream<Item = Result<TtyChunk>> + 'exec
Starts a previously set up exec instance. If detach
is true, this endpoint returns
immediately after starting the command. Otherwise, it sets up an interactive session
with the command.
To create an exec instance use Container::create_exec
.
Examples:
async {
use podman_api::Podman;
use futures_util::StreamExt;
let podman = Podman::unix("/run/user/1000/podman/podman.sock");
let container = podman.containers().get("451b27c6b9d3");
let exec = container
.create_exec(
&podman_api::opts::ExecCreateOpts::builder()
.command(["cat", "/some/path/in/container"])
.build(),
)
.await
.unwrap();
let opts = Default::default();
let mut stream = exec.start(&opts);
while let Some(chunk) = stream.next().await {
println!("{:?}", chunk.unwrap());
}
};
sourcepub async fn inspect(&self) -> Result<Value>
pub async fn inspect(&self) -> Result<Value>
Returns low-level information about an exec instance.
Examples:
async {
use podman_api::Podman;
use futures_util::StreamExt;
let podman = Podman::unix("/run/user/1000/podman/podman.sock");
let container = podman.containers().get("451b27c6b9d3");
let exec = container
.create_exec(
&podman_api::opts::ExecCreateOpts::builder()
.command(["cat", "/some/path/in/container"])
.build(),
)
.await
.unwrap();
match exec.inspect().await {
Ok(info) => println!("{:?}", info),
Err(e) => eprintln!("{}", e)
}
};
sourcepub async fn resize(&self, width: usize, heigth: usize) -> Result<()>
pub async fn resize(&self, width: usize, heigth: usize) -> Result<()>
Resize the TTY session used by an exec instance. This endpoint only works if tty was specified as part of creating and starting the exec instance.
Examples:
use futures_util::StreamExt;
async {
use podman_api::Podman;
let podman = Podman::unix("/run/user/1000/podman/podman.sock");
let container = podman.containers().get("451b27c6b9d3");
let exec = container
.create_exec(
&podman_api::opts::ExecCreateOpts::builder()
.command(["cat", "/some/path/in/container"])
.build(),
)
.await
.unwrap();
if let Err(e) = exec.resize(1280, 720).await {
eprintln!("{}", e);
}
};