podman_client/containers/
wait.rs1use http_body_util::Empty;
2use hyper::body::Bytes;
3use url::form_urlencoded;
4
5use crate::{
6 client::Client,
7 models::{
8 connection::SendRequestOptions,
9 lib::Error,
10 podman::containers::wait::{ContainerWait, ContainerWaitOptions},
11 },
12};
13
14impl Client {
15 pub async fn container_wait(
16 &self,
17 options: ContainerWaitOptions<'_>,
18 ) -> Result<ContainerWait, Error> {
19 let mut path = ["/libpod/containers/", options.name, "/wait"].concat();
20
21 let mut query = form_urlencoded::Serializer::new(String::new());
22 if let Some(condition) = options.condition {
23 query.append_pair("condition", condition.as_str());
24 }
25 if let Some(interval) = options.interval {
26 query.append_pair("interval", interval);
27 }
28 let query_string = query.finish();
29 if !query_string.is_empty() {
30 path += &["?", &query_string].concat();
31 }
32
33 let (_, data) = self
34 .send_request::<_, (), _>(SendRequestOptions {
35 method: "POST",
36 path: &path,
37 header: None,
38 body: Empty::<Bytes>::new(),
39 })
40 .await?;
41
42 Ok(data)
43 }
44}