Struct Podman

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

Entrypoint interface for communicating with podman daemon

Implementations§

Source§

impl Podman

Source

pub fn new<U>(uri: U) -> Result<Podman>
where U: AsRef<str>,

Creates a new Podman instance by automatically choosing appropriate connection type based on provided uri.

Supported schemes are:

  • unix:// only works when build target is unix, otherwise returns an Error
  • tcp://
  • http://

To create a Podman instance utilizing TLS use explicit Podman::tls constructor (this requires tls feature enabled).

Uses LATEST_API_VERSION, to use a specific version see Podman::new_versioned.

Source

pub fn new_versioned<U>( uri: U, version: impl Into<ApiVersion>, ) -> Result<Podman>
where U: AsRef<str>,

Same as Podman::new but the API version can be explicitly specified.

Source

pub fn unix<P>(socket_path: P) -> Podman
where P: AsRef<Path>,

Available on Unix only.

Creates a new podman instance for a podman host listening on a given Unix socket.

socket_path is the part of URI that comes after the unix://. For example a URI unix:///run/podman.sock has a socket_path == “/run/podman.sock”.

Uses LATEST_API_VERSION, to use a specific version see Podman::unix_versioned.

Source

pub fn unix_versioned<P>( socket_path: P, version: impl Into<ApiVersion>, ) -> Podman
where P: AsRef<Path>,

Available on Unix only.

Same as Podman::unix but the API version can be explicitly specified.

Source

pub fn tls<H, P>(host: H, cert_path: P, verify: bool) -> Result<Podman>
where H: AsRef<str>, P: AsRef<Path>,

Available on crate feature tls only.

Creates a new podman instance for a podman host listening on a given TCP socket host. host is the part of URI that comes after tcp:// or http:// or https:// schemes, also known as authority part.

cert_path specifies the base path in the filesystem containing a certificate (cert.pem) and a key (key.pem) that will be used by the client. If verify is true a CA file will be added (ca.pem) to the connector.

Returns an error if the provided host will fail to parse as URL or reading the certificate files will fail.

Uses LATEST_API_VERSION, to use a specific version see Podman::tls_versioned.

Source

pub fn tls_versioned<H, P>( host: H, version: impl Into<ApiVersion>, cert_path: P, verify: bool, ) -> Result<Podman>
where H: AsRef<str>, P: AsRef<Path>,

Available on crate feature tls only.

Same as Podman::tls but the API version can be explicitly specified.

Source

pub fn tcp<H>(host: H) -> Result<Podman>
where H: AsRef<str>,

Creates a new podman instance for a podman host listening on a given TCP socket host. host is the part of URI that comes after tcp:// or http:// schemes, also known as authority part.

TLS is supported with feature tls enabled through Podman::tls constructor.

Returns an error if the provided host will fail to parse as URL.

Uses LATEST_API_VERSION, to use a specific version see Podman::tcp_versioned.

Source

pub fn tcp_versioned<H>( host: H, version: impl Into<ApiVersion>, ) -> Result<Podman>
where H: AsRef<str>,

Same as Podman::tcp but the API version can be explicitly specified.

Source

pub async fn adjust_api_version(&mut self) -> Result<()>

Verifies the API version returned by the server and adjusts the version used by this client in future requests.

Source

pub fn containers(&self) -> Containers

Api Reference

Returns a handle to podman containers that can be used to operate on them.

Source

pub fn execs(&self) -> Execs

Api Reference

Returns a handle to podman execs that can be used to operate on them.

Source

pub fn images(&self) -> Images

Api Reference

Returns a handle to podman images that can be used to operate on them.

Source

pub fn manifests(&self) -> Manifests

Api Reference

Returns a handle to podman manifests that can be used to operate on them.

Source

pub fn networks(&self) -> Networks

Api Reference

Returns a handle to podman networks that can be used to operate on them.

Source

pub fn pods(&self) -> Pods

Api Reference

Returns a handle to podman pods that can be used to operate on them.

Source

pub fn volumes(&self) -> Volumes

Api Reference

Returns a handle to podman volumes that can be used to operate on them.

Source

pub fn secrets(&self) -> Secrets

Api Reference

Returns a handle to podman secrets that can be used to operate on them.

Source

pub async fn info(&self) -> Result<Info>

Api Reference

Returns information on the system and libpod configuration

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.info().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};
Source

pub async fn ping(&self) -> Result<LibpodPingInfo>

Api Reference

Return protocol information from libpod.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.ping().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};
Source

pub async fn version(&self) -> Result<VersionResponse>

Api Reference

Returns component version information.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.version().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};
Source

pub async fn data_usage(&self) -> Result<SystemDfReport>

Api Reference

Return information about disk usage for containers, images, and volumes.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.data_usage().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};
Source

pub async fn prune(&self) -> Result<SystemPruneReport>

Api Reference

Prune unused data.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.prune().await {
        Ok(info) => println!("{:?}", info),
        Err(e) => eprintln!("{}", e),
    }
};
Source

pub fn events<'libpod>( &'libpod self, opts: &EventsOpts, ) -> impl Stream<Item = Result<Event>> + Unpin + 'libpod

Api Reference

Returns system events

Example:

async {
    use podman_api::Podman;
    use futures_util::StreamExt;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    let mut events = podman.events(&Default::default());

    while let Some(event) = events.next().await {
        match event {
            Ok(event) => println!("{:?}", event),
            Err(e) => eprintln!("{}", e),
        }
    }
};
Source

pub async fn play_kubernetes_yaml( &self, opts: &PlayKubernetesYamlOpts, yaml: impl Into<String>, ) -> Result<PlayKubeReport>

Api Reference

Create and run pods based on a Kubernetes YAML file (pod or service kind).

Example:

async {
    use podman_api::Podman;

    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    let yaml = r#"
    apiVersion: v1
    kind: Pod
    metadata:
      name: youthfulwescoff
    spec:
      containers:
      - image: docker.io/library/alpine:latest
        name: youthfulwescoff
        securityContext:
          capabilities:
            drop:
            - CAP_MKNOD
            - CAP_NET_RAW
            - CAP_AUDIT_WRITE
        stdin: true
        tty: true
    "#;

    match podman.play_kubernetes_yaml(&Default::default(), yaml).await {
        Ok(report) => println!("{:?}", report),
        Err(e) => eprintln!("{}", e),
    }
};
Source

pub async fn remove_kubernetes_pods(&self) -> Result<PlayKubeReport>

Api Reference

Tears down pods defined in a YAML file.

Example:

async {
    use podman_api::Podman;
    let podman = Podman::unix("/run/user/1000/podman/podman.sock");

    match podman.remove_kubernetes_pods().await {
        Ok(report) => println!("{:?}", report),
        Err(e) => eprintln!("{}", e),
    }
};

Trait Implementations§

Source§

impl Clone for Podman

Source§

fn clone(&self) -> Podman

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Podman

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Podman

§

impl !RefUnwindSafe for Podman

§

impl Send for Podman

§

impl Sync for Podman

§

impl Unpin for Podman

§

impl !UnwindSafe for Podman

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T