podman_rest_client/v4/apis/
system.rs

1use crate::api_common::config::HasConfig;
2use crate::api_common::request;
3use crate::api_common::Error;
4use http::request::Builder;
5use std::future::Future;
6use std::pin::Pin;
7pub trait System: HasConfig + Send + Sync {
8    /// GET /libpod/events
9    ///
10    /// Get events
11    ///
12    /// Returns events filtered on query parameters
13    fn system_events_libpod<'a>(
14        &'a self,
15        params: Option<crate::v4::params::SystemEventsLibpod<'a>>,
16    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
17        Box::pin(request::execute_request_unit(
18            self.get_config(),
19            move |mut req_builder: Builder| {
20                req_builder = req_builder.method("GET");
21                let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
22                let mut request_path = request_url.path().to_owned();
23                if request_path.ends_with('/') {
24                    request_path.pop();
25                }
26                request_path.push_str("/libpod/events");
27                request_url.set_path(&request_path);
28                if let Some(params) = &params {
29                    let mut query_pairs = request_url.query_pairs_mut();
30                    if let Some(since) = params.since {
31                        query_pairs.append_pair("since", since);
32                    }
33                    if let Some(until) = params.until {
34                        query_pairs.append_pair("until", until);
35                    }
36                    if let Some(filters) = params.filters {
37                        query_pairs.append_pair("filters", filters);
38                    }
39                    if let Some(stream) = params.stream {
40                        query_pairs.append_pair("stream", &stream.to_string());
41                    }
42                }
43                let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
44                req_builder = req_builder.uri(hyper_uri);
45                Ok(req_builder.body(String::new())?)
46            },
47        ))
48    }
49    /// GET /libpod/info
50    ///
51    /// Get info
52    ///
53    /// Returns information on the system and libpod configuration
54    fn system_info_libpod<'a>(
55        &'a self,
56    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
57        Box::pin(request::execute_request_unit(
58            self.get_config(),
59            move |mut req_builder: Builder| {
60                req_builder = req_builder.method("GET");
61                let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
62                let mut request_path = request_url.path().to_owned();
63                if request_path.ends_with('/') {
64                    request_path.pop();
65                }
66                request_path.push_str("/libpod/info");
67                request_url.set_path(&request_path);
68                let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
69                req_builder = req_builder.uri(hyper_uri);
70                Ok(req_builder.body(String::new())?)
71            },
72        ))
73    }
74    /// GET /libpod/system/df
75    ///
76    /// Show disk usage
77    ///
78    /// Return information about disk usage for containers, images, and volumes
79    fn system_data_usage_libpod<'a>(
80        &'a self,
81    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
82        Box::pin(request::execute_request_unit(
83            self.get_config(),
84            move |mut req_builder: Builder| {
85                req_builder = req_builder.method("GET");
86                let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
87                let mut request_path = request_url.path().to_owned();
88                if request_path.ends_with('/') {
89                    request_path.pop();
90                }
91                request_path.push_str("/libpod/system/df");
92                request_url.set_path(&request_path);
93                let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
94                req_builder = req_builder.uri(hyper_uri);
95                Ok(req_builder.body(String::new())?)
96            },
97        ))
98    }
99    /// POST /libpod/system/prune
100    ///
101    /// Prune unused data
102    fn system_prune_libpod<'a>(
103        &'a self,
104    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
105        Box::pin(request::execute_request_unit(
106            self.get_config(),
107            move |mut req_builder: Builder| {
108                req_builder = req_builder.method("POST");
109                let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
110                let mut request_path = request_url.path().to_owned();
111                if request_path.ends_with('/') {
112                    request_path.pop();
113                }
114                request_path.push_str("/libpod/system/prune");
115                request_url.set_path(&request_path);
116                let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
117                req_builder = req_builder.uri(hyper_uri);
118                Ok(req_builder.body(String::new())?)
119            },
120        ))
121    }
122    /// GET /libpod/version
123    ///
124    /// Component Version information
125    fn system_version_libpod<'a>(
126        &'a self,
127    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
128        Box::pin(request::execute_request_unit(
129            self.get_config(),
130            move |mut req_builder: Builder| {
131                req_builder = req_builder.method("GET");
132                let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
133                let mut request_path = request_url.path().to_owned();
134                if request_path.ends_with('/') {
135                    request_path.pop();
136                }
137                request_path.push_str("/libpod/version");
138                request_url.set_path(&request_path);
139                let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
140                req_builder = req_builder.uri(hyper_uri);
141                Ok(req_builder.body(String::new())?)
142            },
143        ))
144    }
145}