podman_rest_client/v4/apis/
networks_compat.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 NetworksCompat: HasConfig + Send + Sync {
8 fn network_list<'a>(
14 &'a self,
15 params: Option<crate::v4::params::NetworkList<'a>>,
16 ) -> Pin<Box<dyn Future<Output = Result<Vec<()>, Error>> + Send + 'a>> {
17 Box::pin(request::execute_request_json(
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("/networks");
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(filters) = params.filters {
31 query_pairs.append_pair("filters", filters);
32 }
33 }
34 let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
35 req_builder = req_builder.uri(hyper_uri);
36 Ok(req_builder.body(String::new())?)
37 },
38 ))
39 }
40 fn network_delete<'a>(
44 &'a self,
45 name: &'a str,
46 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
47 Box::pin(request::execute_request_unit(
48 self.get_config(),
49 move |mut req_builder: Builder| {
50 req_builder = req_builder.method("DELETE");
51 let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
52 let mut request_path = request_url.path().to_owned();
53 if request_path.ends_with('/') {
54 request_path.pop();
55 }
56 request_path.push_str("/networks/{name}");
57 request_path = request_path.replace("{name}", name);
58 request_url.set_path(&request_path);
59 let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
60 req_builder = req_builder.uri(hyper_uri);
61 Ok(req_builder.body(String::new())?)
62 },
63 ))
64 }
65 fn network_inspect<'a>(
71 &'a self,
72 name: &'a str,
73 params: Option<crate::v4::params::NetworkInspect<'a>>,
74 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
75 Box::pin(request::execute_request_unit(
76 self.get_config(),
77 move |mut req_builder: Builder| {
78 req_builder = req_builder.method("GET");
79 let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
80 let mut request_path = request_url.path().to_owned();
81 if request_path.ends_with('/') {
82 request_path.pop();
83 }
84 request_path.push_str("/networks/{name}");
85 request_path = request_path.replace("{name}", name);
86 request_url.set_path(&request_path);
87 if let Some(params) = ¶ms {
88 let mut query_pairs = request_url.query_pairs_mut();
89 if let Some(verbose) = params.verbose {
90 query_pairs.append_pair("verbose", &verbose.to_string());
91 }
92 if let Some(scope) = params.scope {
93 query_pairs.append_pair("scope", scope);
94 }
95 }
96 let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
97 req_builder = req_builder.uri(hyper_uri);
98 Ok(req_builder.body(String::new())?)
99 },
100 ))
101 }
102 fn network_connect<'a>(
108 &'a self,
109 name: &'a str,
110 create: (),
111 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
112 Box::pin(request::execute_request_unit(
113 self.get_config(),
114 move |mut req_builder: Builder| {
115 req_builder = req_builder.method("POST");
116 let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
117 let mut request_path = request_url.path().to_owned();
118 if request_path.ends_with('/') {
119 request_path.pop();
120 }
121 request_path.push_str("/networks/{name}/connect");
122 request_path = request_path.replace("{name}", name);
123 request_url.set_path(&request_path);
124 let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
125 req_builder = req_builder.uri(hyper_uri);
126 let body = serde_json::to_string(&create)?;
127 req_builder = req_builder.header(hyper::header::CONTENT_TYPE, "application/json");
128 req_builder = req_builder.header(hyper::header::CONTENT_LENGTH, body.len());
129 Ok(req_builder.body(body)?)
130 },
131 ))
132 }
133 fn network_disconnect<'a>(
139 &'a self,
140 name: &'a str,
141 create: (),
142 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>> {
143 Box::pin(request::execute_request_unit(
144 self.get_config(),
145 move |mut req_builder: Builder| {
146 req_builder = req_builder.method("POST");
147 let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
148 let mut request_path = request_url.path().to_owned();
149 if request_path.ends_with('/') {
150 request_path.pop();
151 }
152 request_path.push_str("/networks/{name}/disconnect");
153 request_path = request_path.replace("{name}", name);
154 request_url.set_path(&request_path);
155 let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
156 req_builder = req_builder.uri(hyper_uri);
157 let body = serde_json::to_string(&create)?;
158 req_builder = req_builder.header(hyper::header::CONTENT_TYPE, "application/json");
159 req_builder = req_builder.header(hyper::header::CONTENT_LENGTH, body.len());
160 Ok(req_builder.body(body)?)
161 },
162 ))
163 }
164 fn network_create<'a>(
170 &'a self,
171 create: (),
172 ) -> Pin<Box<dyn Future<Output = Result<crate::v4::models::NetworkCreate201, Error>> + Send + 'a>>
173 {
174 Box::pin(request::execute_request_json(
175 self.get_config(),
176 move |mut req_builder: Builder| {
177 req_builder = req_builder.method("POST");
178 let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
179 let mut request_path = request_url.path().to_owned();
180 if request_path.ends_with('/') {
181 request_path.pop();
182 }
183 request_path.push_str("/networks/create");
184 request_url.set_path(&request_path);
185 let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
186 req_builder = req_builder.uri(hyper_uri);
187 let body = serde_json::to_string(&create)?;
188 req_builder = req_builder.header(hyper::header::CONTENT_TYPE, "application/json");
189 req_builder = req_builder.header(hyper::header::CONTENT_LENGTH, body.len());
190 Ok(req_builder.body(body)?)
191 },
192 ))
193 }
194 fn network_prune<'a>(
200 &'a self,
201 params: Option<crate::v4::params::NetworkPrune<'a>>,
202 ) -> Pin<Box<dyn Future<Output = Result<crate::v4::models::NetworkPrune200, Error>> + Send + 'a>>
203 {
204 Box::pin(request::execute_request_json(
205 self.get_config(),
206 move |mut req_builder: Builder| {
207 req_builder = req_builder.method("POST");
208 let mut request_url = url::Url::parse(self.get_config().get_base_path())?;
209 let mut request_path = request_url.path().to_owned();
210 if request_path.ends_with('/') {
211 request_path.pop();
212 }
213 request_path.push_str("/networks/prune");
214 request_url.set_path(&request_path);
215 if let Some(params) = ¶ms {
216 let mut query_pairs = request_url.query_pairs_mut();
217 if let Some(filters) = params.filters {
218 query_pairs.append_pair("filters", filters);
219 }
220 }
221 let hyper_uri: hyper::Uri = request_url.as_str().parse()?;
222 req_builder = req_builder.uri(hyper_uri);
223 Ok(req_builder.body(String::new())?)
224 },
225 ))
226 }
227}