podman_rest_client/v4/apis/
system.rs1use 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 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) = ¶ms {
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 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 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 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 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}