podman_rest_client/v5/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::v5::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<crate::v5::models::LibpodInfo, Error>> + Send + 'a>>
57    {
58        Box::pin(request::execute_request_json(
59            self.get_config(),
60            move |mut req_builder: Builder| {
61                req_builder = req_builder.method("GET");
62                let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
63                let mut request_path = request_url.path().to_owned();
64                if request_path.ends_with('/') {
65                    request_path.pop();
66                }
67                request_path.push_str("/libpod/info");
68                request_url.set_path(&request_path);
69                let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
70                req_builder = req_builder.uri(hyper_uri);
71                Ok(req_builder.body(String::new())?)
72            },
73        ))
74    }
75    /// GET /libpod/system/df
76    ///
77    /// Show disk usage
78    ///
79    /// Return information about disk usage for containers, images, and volumes
80    fn system_data_usage_libpod<'a>(
81        &'a self,
82    ) -> Pin<Box<dyn Future<Output = Result<crate::v5::models::SystemDfReport, Error>> + Send + 'a>>
83    {
84        Box::pin(request::execute_request_json(
85            self.get_config(),
86            move |mut req_builder: Builder| {
87                req_builder = req_builder.method("GET");
88                let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
89                let mut request_path = request_url.path().to_owned();
90                if request_path.ends_with('/') {
91                    request_path.pop();
92                }
93                request_path.push_str("/libpod/system/df");
94                request_url.set_path(&request_path);
95                let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
96                req_builder = req_builder.uri(hyper_uri);
97                Ok(req_builder.body(String::new())?)
98            },
99        ))
100    }
101    /// POST /libpod/system/prune
102    ///
103    /// Prune unused data
104    fn system_prune_libpod<'a>(
105        &'a self,
106    ) -> Pin<
107        Box<dyn Future<Output = Result<crate::v5::models::SystemPruneReport, Error>> + Send + 'a>,
108    > {
109        Box::pin(request::execute_request_json(
110            self.get_config(),
111            move |mut req_builder: Builder| {
112                req_builder = req_builder.method("POST");
113                let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
114                let mut request_path = request_url.path().to_owned();
115                if request_path.ends_with('/') {
116                    request_path.pop();
117                }
118                request_path.push_str("/libpod/system/prune");
119                request_url.set_path(&request_path);
120                let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
121                req_builder = req_builder.uri(hyper_uri);
122                Ok(req_builder.body(String::new())?)
123            },
124        ))
125    }
126    /// GET /libpod/version
127    ///
128    /// Component Version information
129    fn system_version_libpod<'a>(
130        &'a self,
131    ) -> Pin<
132        Box<
133            dyn Future<Output = Result<crate::v5::models::SystemComponentVersion, Error>>
134                + Send
135                + 'a,
136        >,
137    > {
138        Box::pin(request::execute_request_json(
139            self.get_config(),
140            move |mut req_builder: Builder| {
141                req_builder = req_builder.method("GET");
142                let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
143                let mut request_path = request_url.path().to_owned();
144                if request_path.ends_with('/') {
145                    request_path.pop();
146                }
147                request_path.push_str("/libpod/version");
148                request_url.set_path(&request_path);
149                let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
150                req_builder = req_builder.uri(hyper_uri);
151                Ok(req_builder.body(String::new())?)
152            },
153        ))
154    }
155}