summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/networkconnect.rs16
-rw-r--r--examples/networkdelete.rs3
-rw-r--r--examples/networkdisconnect.rs16
-rw-r--r--src/builder.rs39
-rw-r--r--src/errors.rs24
-rw-r--r--src/lib.rs34
-rw-r--r--src/rep.rs13
-rw-r--r--src/transport.rs18
8 files changed, 81 insertions, 82 deletions
diff --git a/examples/networkconnect.rs b/examples/networkconnect.rs
index 165510b..e203e18 100644
--- a/examples/networkconnect.rs
+++ b/examples/networkconnect.rs
@@ -6,11 +6,13 @@ use std::env;
fn main() {
let docker = Docker::new();
let networks = docker.networks();
- let container_id = env::args().nth(1).unwrap();
- let network_id = env::args().nth(2).unwrap();
- let info = networks
- .get(&network_id)
- .connect(&ContainerConnectionOptions::new(&container_id))
- .unwrap();
- println!("{:?}", info);
+ match (env::args().nth(1), env::args().nth(2)) {
+ (Some(container_id), Some(network_id)) => println!(
+ "{:?}",
+ networks
+ .get(&network_id)
+ .connect(&ContainerConnectionOptions::new(&container_id))
+ ),
+ _ => eprintln!("please provide a container_id and network_id"),
+ }
}
diff --git a/examples/networkdelete.rs b/examples/networkdelete.rs
index b824e38..1ce4c4d 100644
--- a/examples/networkdelete.rs
+++ b/examples/networkdelete.rs
@@ -6,7 +6,6 @@ use std::env;
fn main() {
let docker = Docker::new();
if let Some(id) = env::args().nth(1) {
- let status = docker.networks().get(&id).delete().unwrap();
- println!("{:?}", status);
+ println!("{:?}", docker.networks().get(&id).delete());
}
}
diff --git a/examples/networkdisconnect.rs b/examples/networkdisconnect.rs
index b3e0721..9676dc9 100644
--- a/examples/networkdisconnect.rs
+++ b/examples/networkdisconnect.rs
@@ -6,11 +6,13 @@ use std::env;
fn main() {
let docker = Docker::new();
let networks = docker.networks();
- let container_id = env::args().nth(1).unwrap();
- let network_id = env::args().nth(2).unwrap();
- let info = networks
- .get(&network_id)
- .disconnect(&ContainerConnectionOptions::new(&container_id))
- .unwrap();
- println!("{:?}", info);
+ match (env::args().nth(1), env::args().nth(2)) {
+ (Some(container_id), Some(network_id)) => println!(
+ "{:?}",
+ networks
+ .get(&network_id)
+ .disconnect(&ContainerConnectionOptions::new(&container_id))
+ ),
+ _ => eprintln!("please provide a container_id and network_id"),
+ }
}
diff --git a/src/builder.rs b/src/builder.rs
index 031090e..0d20da1 100644
--- a/src/builder.rs
+++ b/src/builder.rs
@@ -408,7 +408,7 @@ impl ContainerOptions {
{
for (k, v) in params.iter() {
let key_string = k.to_string();
- insert(&mut key_string.split(".").peekable(), v, body)
+ insert(&mut key_string.split('.').peekable(), v, body)
}
}
}
@@ -430,9 +430,9 @@ impl ContainerOptionsBuilder {
params.insert("Image", Value::String(image.to_owned()));
ContainerOptionsBuilder {
name: None,
- params: params,
- params_list: params_list,
- params_hash: params_hash,
+ params,
+ params_list,
+ params_hash,
}
}
@@ -451,7 +451,7 @@ impl ContainerOptionsBuilder {
for v in volumes {
self.params_list
.entry("HostConfig.Binds")
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(v.to_owned());
}
self
@@ -464,7 +464,7 @@ impl ContainerOptionsBuilder {
for link in links {
self.params_list
.entry("HostConfig.Links")
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(link.to_owned());
}
self
@@ -485,9 +485,7 @@ impl ContainerOptionsBuilder {
) -> &mut ContainerOptionsBuilder {
let mut json_labels = Map::new();
for (k, v) in labels {
- let key: &str = k.as_ref();
- let value: &str = v.as_ref();
- json_labels.insert(key.to_owned(), Value::String(value.to_string()));
+ json_labels.insert(k.to_string(), Value::String(v.to_string()));
}
self.params.insert("Labels", Value::Object(json_labels));
@@ -502,7 +500,7 @@ impl ContainerOptionsBuilder {
for host in hosts {
self.params_list
.entry("HostConfig.ExtraHosts")
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(host.to_owned());
}
@@ -516,7 +514,7 @@ impl ContainerOptionsBuilder {
for volume in volumes {
self.params_list
.entry("HostConfig.VolumesFrom")
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(volume.to_owned());
}
self
@@ -540,7 +538,7 @@ impl ContainerOptionsBuilder {
for env in envs {
self.params_list
.entry("Env")
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(env.to_owned());
}
self
@@ -553,7 +551,7 @@ impl ContainerOptionsBuilder {
for cmd in cmds {
self.params_list
.entry("Cmd")
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(cmd.to_owned());
}
self
@@ -577,7 +575,7 @@ impl ContainerOptionsBuilder {
for c in capabilities {
self.params_list
.entry("HostConfig.CapAdd")
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(c.to_owned());
}
self
@@ -590,7 +588,7 @@ impl ContainerOptionsBuilder {
for d in devices {
self.params_hash
.entry("HostConfig.Devices".to_string())
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(d);
}
self
@@ -679,7 +677,7 @@ impl ExecContainerOptionsBuilder {
for cmd in cmds {
self.params
.entry("Cmd")
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(cmd.to_owned());
}
self
@@ -693,7 +691,7 @@ impl ExecContainerOptionsBuilder {
for env in envs {
self.params
.entry("Env")
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(env.to_owned());
}
self
@@ -750,6 +748,7 @@ impl EventsOptions {
}
}
+#[derive(Copy, Clone)]
pub enum EventFilterType {
Container,
Image,
@@ -1188,8 +1187,8 @@ impl NetworkCreateOptionsBuilder {
params.insert("Name", name.to_owned());
NetworkCreateOptionsBuilder {
name: None,
- params: params,
- params_hash: params_hash,
+ params,
+ params_hash,
}
}
@@ -1210,7 +1209,7 @@ impl NetworkCreateOptionsBuilder {
for l in labels {
self.params_hash
.entry("Labels".to_string())
- .or_insert(Vec::new())
+ .or_insert_with(Vec::new)
.push(l)
}
self
diff --git a/src/errors.rs b/src/errors.rs
index b351309..5af8c44 100644
--- a/src/errors.rs
+++ b/src/errors.rs
@@ -3,7 +3,7 @@
use http;
use hyper::{self, StatusCode};
use serde_json::Error as SerdeError;
-use std::error::Error as ErrorTrait;
+use std::error::Error as StdError;
use std::fmt;
use std::io::Error as IoError;
@@ -47,25 +47,25 @@ impl fmt::Display for Error {
) -> fmt::Result {
write!(f, "Docker Error: ")?;
match self {
- &Error::SerdeJsonError(ref err) => return err.fmt(f),
- &Error::Http(ref err) => return err.fmt(f),
- &Error::Hyper(ref err) => return err.fmt(f),
- &Error::IO(ref err) => return err.fmt(f),
- &Error::Fault { code, .. } => return write!(f, "{}", code),
- };
+ Error::SerdeJsonError(ref err) => err.fmt(f),
+ Error::Http(ref err) => err.fmt(f),
+ Error::Hyper(ref err) => err.fmt(f),
+ Error::IO(ref err) => err.fmt(f),
+ Error::Fault { code, .. } => write!(f, "{}", code),
+ }
}
}
-impl ErrorTrait for Error {
+impl StdError for Error {
fn description(&self) -> &str {
"Shiplift Error"
}
- fn cause(&self) -> Option<&ErrorTrait> {
+ fn cause(&self) -> Option<&StdError> {
match self {
- &Error::SerdeJsonError(ref err) => Some(err),
- &Error::Http(ref err) => Some(err),
- &Error::IO(ref err) => Some(err),
+ Error::SerdeJsonError(ref err) => Some(err),
+ Error::Http(ref err) => Some(err),
+ Error::IO(ref err) => Some(err),
_ => None,
}
}
diff --git a/src/lib.rs b/src/lib.rs
index b523c2e..4869513 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -95,7 +95,7 @@ impl<'a, 'b> Image<'a, 'b> {
S: Into<Cow<'b, str>>,
{
Image {
- docker: docker,
+ docker,
name: name.into(),
}
}
@@ -130,13 +130,15 @@ impl<'a, 'b> Image<'a, 'b> {
.to_owned(),
)
})
- .or(obj.get("Deleted").map(|sha| {
- Status::Deleted(
- sha.as_str()
- .expect("expected Deleted to be a string")
- .to_owned(),
- )
- }))
+ .or_else(|| {
+ obj.get("Deleted").map(|sha| {
+ Status::Deleted(
+ sha.as_str()
+ .expect("expected Deleted to be a string")
+ .to_owned(),
+ )
+ })
+ })
.expect("expected Untagged or Deleted")
}),
_ => unreachable!(),
@@ -159,7 +161,7 @@ pub struct Images<'a> {
impl<'a> Images<'a> {
/// Exports an interface for interacting with docker images
pub fn new(docker: &'a Docker) -> Images<'a> {
- Images { docker: docker }
+ Images { docker }
}
/// Builds a new image build by reading a Dockerfile in a target directory
@@ -263,7 +265,7 @@ impl<'a, 'b> Container<'a, 'b> {
S: Into<Cow<'b, str>>,
{
Container {
- docker: docker,
+ docker,
id: id.into(),
}
}
@@ -473,7 +475,7 @@ impl<'a, 'b> Container<'a, 'b> {
.unwrap()
)[..],
Some((bytes, mime::APPLICATION_JSON)),
- ).map(|stream| Tty::new(stream))
+ ).map(Tty::new)
} else {
// TODO
panic!()
@@ -493,7 +495,7 @@ pub struct Containers<'a> {
impl<'a> Containers<'a> {
/// Exports an interface for interacting with docker containers
pub fn new(docker: &'a Docker) -> Containers<'a> {
- Containers { docker: docker }
+ Containers { docker }
}
/// Lists the container instances on the docker host
@@ -549,7 +551,7 @@ pub struct Networks<'a> {
impl<'a> Networks<'a> {
/// Exports an interface for interacting with docker Networks
pub fn new(docker: &'a Docker) -> Networks<'a> {
- Networks { docker: docker }
+ Networks { docker }
}
/// List the docker networks on the current docker host
@@ -604,7 +606,7 @@ impl<'a, 'b> Network<'a, 'b> {
S: Into<Cow<'b, str>>,
{
Network {
- docker: docker,
+ docker,
id: id.into(),
}
}
@@ -716,7 +718,7 @@ impl Docker {
Some("unix") => panic!("Unix socket support is disabled"),
_ => {
- if let Some(ref certs) = env::var("DOCKER_CERT_PATH").ok() {
+ if let Ok(ref certs) = env::var("DOCKER_CERT_PATH") {
// fixme: don't unwrap before you know what's in the box
// https://github.com/hyperium/hyper/blob/master/src/net.rs#L427-L428
let mut connector = SslConnector::builder(SslMethod::tls()).unwrap();
@@ -729,7 +731,7 @@ impl Docker {
connector
.set_private_key_file(&Path::new(key), SslFiletype::PEM)
.unwrap();
- if let Some(_) = env::var("DOCKER_TLS_VERIFY").ok() {
+ if env::var("DOCKER_TLS_VERIFY").is_ok() {
let ca = &format!("{}/ca.pem", certs);
connector.set_ca_file(&Path::new(ca)).unwrap();
}
diff --git a/src/rep.rs b/src/rep.rs
index 40e5975..a6de7e8 100644
--- a/src/rep.rs
+++ b/src/rep.rs
@@ -188,15 +188,12 @@ pub struct Config {
impl Config {
pub fn env(&self) -> HashMap<String, String> {
let mut map = HashMap::new();
- match self.env {
- Some(ref vars) => {
- for e in vars {
- let pair: Vec<&str> = e.split("=").collect();
- map.insert(pair[0].to_owned(), pair[1].to_owned());
- }
+ if let Some(ref vars) = self.env {
+ for e in vars {
+ let pair: Vec<&str> = e.split('=').collect();
+ map.insert(pair[0].to_owned(), pair[1].to_owned());
}
- _ => (),
- };
+ }
map
}
}
diff --git a/src/transport.rs b/src/transport.rs
index d8c1ea1..9df6d4a 100644
--- a/src/transport.rs
+++ b/src/transport.rs
@@ -141,37 +141,37 @@ impl Transport {
code: res.status(),
message: self
.get_error_message(res)
- .unwrap_or("bad parameter".to_owned()),
+ .unwrap_or_else(|| "bad parameter".to_owned()),
}),
StatusCode::NOT_FOUND => Err(Error::Fault {
code: res.status(),
message: self
.get_error_message(res)
- .unwrap_or("not found".to_owned()),
+ .unwrap_or_else(|| "not found".to_owned()),
}),
StatusCode::NOT_MODIFIED => Err(Error::Fault {
code: res.status(),
message: self
.get_error_message(res)
- .unwrap_or("not modified".to_owned()),
+ .unwrap_or_else(|| "not modified".to_owned()),
}),
StatusCode::NOT_ACCEPTABLE => Err(Error::Fault {
code: res.status(),
message: self
.get_error_message(res)
- .unwrap_or("not acceptable".to_owned()),
+ .unwrap_or_else(|| "not acceptable".to_owned()),
}),
StatusCode::CONFLICT => Err(Error::Fault {
code: res.status(),
message: self
.get_error_message(res)
- .unwrap_or("conflict found".to_owned()),
+ .unwrap_or_else(|| "conflict found".to_owned()),
}),
StatusCode::INTERNAL_SERVER_ERROR => Err(Error::Fault {
code: res.status(),
message: self
.get_error_message(res)
- .unwrap_or("internal server error".to_owned()),
+ .unwrap_or_else(|| "internal server error".to_owned()),
}),
_ => unreachable!(),
}
@@ -214,14 +214,12 @@ impl Transport {
match String::from_utf8(chunk.into_iter().collect()) {
Ok(output) => {
let json_response = serde_json::from_str::<Value>(output.as_str()).ok();
- let message = json_response
+ json_response
.as_ref()
.and_then(|x| x.as_object())
.and_then(|x| x.get("message"))
.and_then(|x| x.as_str())
- .map(|x| x.to_owned());
-
- message
+ .map(|x| x.to_owned())
}
Err(..) => None,
}