From e27b98daccf405027a0e1d5f72fe1ec6fd8ec8c7 Mon Sep 17 00:00:00 2001 From: Marc Schreiber Date: Sat, 22 Dec 2018 11:30:16 +0100 Subject: feat: create, list, and delete volumes (#138) --- examples/volumecreate.rs | 32 ++++++++++++++++++++++++++++++++ examples/volumedelete.rs | 23 +++++++++++++++++++++++ examples/volumes.rs | 21 +++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 examples/volumecreate.rs create mode 100644 examples/volumedelete.rs create mode 100644 examples/volumes.rs (limited to 'examples') diff --git a/examples/volumecreate.rs b/examples/volumecreate.rs new file mode 100644 index 0000000..d955abe --- /dev/null +++ b/examples/volumecreate.rs @@ -0,0 +1,32 @@ +extern crate shiplift; +extern crate tokio; + +use shiplift::builder::VolumeCreateOptions; +use shiplift::Docker; +use std::collections::HashMap; +use std::env; +use tokio::prelude::Future; + +fn main() { + let docker = Docker::new(); + let volumes = docker.volumes(); + + let volume_name = env::args() + .nth(1) + .expect("You need to specify an volume name"); + + let mut labels = HashMap::new(); + labels.insert("com.github.softprops", "shiplift"); + + let fut = volumes + .create( + &VolumeCreateOptions::builder() + .name(volume_name.as_ref()) + .labels(&labels) + .build(), + ) + .map(|info| println!("{:?}", info)) + .map_err(|e| eprintln!("Error: {}", e)); + + tokio::run(fut); +} diff --git a/examples/volumedelete.rs b/examples/volumedelete.rs new file mode 100644 index 0000000..8689589 --- /dev/null +++ b/examples/volumedelete.rs @@ -0,0 +1,23 @@ +extern crate shiplift; +extern crate tokio; + +use shiplift::Docker; +use std::env; +use tokio::prelude::Future; + +fn main() { + let docker = Docker::new(); + let volumes = docker.volumes(); + + let volume_name = env::args() + .nth(1) + .expect("You need to specify an volume name"); + + let fut = volumes + .get(&volume_name) + .delete() + .map(|info| println!("{:?}", info)) + .map_err(|e| eprintln!("Error: {}", e)); + + tokio::run(fut); +} diff --git a/examples/volumes.rs b/examples/volumes.rs new file mode 100644 index 0000000..59c7b65 --- /dev/null +++ b/examples/volumes.rs @@ -0,0 +1,21 @@ +extern crate shiplift; +extern crate tokio; + +use shiplift::Docker; +use tokio::prelude::Future; + +fn main() { + let docker = Docker::new(); + let volumes = docker.volumes(); + + let fut = volumes + .list() + .map(|volumes| { + for v in volumes { + println!("volume -> {:#?}", v) + } + }) + .map_err(|e| eprintln!("Error: {}", e));; + + tokio::run(fut); +} -- cgit v1.2.3