rs_docker_api_rs/api/
swarm.rsuse crate::{
conn::{Headers, Payload},
models,
opts::{SwarmInitOpts, SwarmJoinOpts},
Docker, Result,
};
api_doc! { Swarm
|
pub struct Swarm {
docker: Docker,
}
}
impl Swarm {
pub fn new(docker: Docker) -> Self {
Self { docker }
}
impl_api_ep! {_swarm: Swarm, resp
Inspect -> "/swarm", rs_docker_api_stubs::models::Swarm
}
api_doc! { Swarm => Unlockkey
|
pub async fn get_unlock_key(&self) -> Result<models::SwarmUnlockkey200Response> {
self.docker.get_json("/swarm/unlockkey").await
}}
api_doc! { Swarm => Unlock
|
pub async fn unlock_manager(&self, key: &models::SwarmUnlockBodyParam) -> Result<()> {
self.docker
.post("/swarm/unlock", Payload::Json(serde_json::to_string(key)?), Headers::none())
.await
.map(|_| ())
}}
api_doc! { Swarm => Init
|
pub async fn initialize(&self, opts: &SwarmInitOpts) -> Result<()> {
self.docker
.post("/swarm/init", Payload::Json(opts.serialize_vec()?), Headers::none())
.await
.map(|_| ())
}}
api_doc! { Swarm => Join
|
pub async fn join(&self, opts: &SwarmJoinOpts) -> Result<()> {
self.docker
.post("/swarm/join", Payload::Json(opts.serialize_vec()?), Headers::none())
.await
.map(|_| ())
}}
api_doc! { Swarm => Leave
|
pub async fn leave(&self) -> Result<()> {
self.docker
.post("/swarm/leave?force=false", Payload::empty(), Headers::none())
.await
.map(|_| ())
}}
api_doc! { Swarm => Leave
|
pub async fn force_leave(&self) -> Result<()> {
self.docker
.post("/swarm/leave?force=true", Payload::empty(), Headers::none())
.await
.map(|_| ())
}}
}