Skip to content

Commit

Permalink
changed based on reviews
Browse files Browse the repository at this point in the history
  • Loading branch information
pasberth authored and eldesh committed Jan 30, 2019
1 parent bf5cc74 commit 3bf9efb
Show file tree
Hide file tree
Showing 11 changed files with 120 additions and 105 deletions.
7 changes: 2 additions & 5 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
build:
working_directory: /tmp/dockworker
docker:
- image: eldesh/rust:1.25.0
- image: eldesh/rust:1.26.0
environment:
DOCKER_VERSION: 18.03.1-ce
steps:
Expand All @@ -49,12 +49,9 @@ jobs:
apt list --installed >> /tmp/build-dep
- restore_cache:
key: cache-cargo-target-{{ .Environment.CIRCLE_JOB }}-{{ .Environment.CIRCLECI_CACHE_VERSION }}-{{ checksum "/tmp/build-dep" }}
- run:
name: Install rustfmt
command: rustup component add rustfmt-preview
- run:
name: Checking source code style
command: cargo fmt -- --check
command: cargo fmt -- --write-mode "diff"
- run:
name: Build project
command: |
Expand Down
2 changes: 1 addition & 1 deletion examples/attach-container.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extern crate dockworker;
extern crate hyper;

use dockworker::{container::AttachContainer, ContainerCreateOptions, ContainerHostConfig, Docker};
use dockworker::{ContainerCreateOptions, ContainerHostConfig, Docker, container::AttachContainer};
use std::io::{BufRead, BufReader};

fn main() {
Expand Down
3 changes: 1 addition & 2 deletions examples/build-image.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ fn main() {
.write_all(
r#"FROM alpine:edge
RUN echo Hi mum
"#
.as_bytes(),
"#.as_bytes(),
)
.unwrap();
}
Expand Down
2 changes: 1 addition & 1 deletion examples/containers.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
extern crate dockworker;

use dockworker::{container::ContainerFilters, Docker};
use dockworker::{Docker, container::ContainerFilters};

fn main() {
let docker = Docker::connect_with_defaults().unwrap();
Expand Down
8 changes: 3 additions & 5 deletions examples/history.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,9 @@ fn main() {

println!("History:");
match history {
Ok(changes) => {
for change in changes {
println!("{:#?}", change);
}
}
Ok(changes) => for change in changes {
println!("{:#?}", change);
},
Err(e) => {
println!("Error {}", e);
}
Expand Down
2 changes: 1 addition & 1 deletion examples/prune-image.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
extern crate dockworker;

use dockworker::{container::ContainerFilters, Docker};
use dockworker::{Docker, container::ContainerFilters};

fn main() {
let docker = Docker::connect_with_defaults().unwrap();
Expand Down
5 changes: 1 addition & 4 deletions examples/push.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
extern crate dockworker;
extern crate hyper;

use dockworker::{
credentials::{Credential, UserPassword},
Docker,
};
use dockworker::{Docker, credentials::{Credential, UserPassword}};

fn main() {
let mut docker = Docker::connect_with_defaults().unwrap();
Expand Down
2 changes: 1 addition & 1 deletion rust-toolchain
Original file line number Diff line number Diff line change
@@ -1 +1 @@
stable
1.26.0
157 changes: 90 additions & 67 deletions src/docker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@ use std::result;
use std::time::Duration;
use url;

use container::{
AttachResponse, Container, ContainerFilters, ContainerInfo, ExecInfo, ExitStatus, LogResponse,
};
use container::{AttachResponse, Container, ContainerFilters, ContainerInfo, ExecInfo, ExitStatus,
LogResponse};
pub use credentials::{Credential, UserPassword};
use errors::*;
use filesystem::FilesystemChange;
Expand Down Expand Up @@ -170,8 +169,7 @@ impl Docker {
&cert_path.join("key.pem"),
&cert_path.join("cert.pem"),
&cert_path.join("ca.pem"),
)
.chain_err(&mkerr)
).chain_err(&mkerr)
} else {
Docker::connect_with_http(&host).chain_err(&mkerr)
}
Expand Down Expand Up @@ -458,8 +456,7 @@ impl Docker {

pub fn processes(&self, container: &Container) -> Result<Vec<Process>> {
let top = self.container_top(container)?;
Ok(top
.Processes
Ok(top.Processes
.iter()
.map(|process| {
let mut p = Process::default();
Expand Down Expand Up @@ -776,11 +773,9 @@ impl Docker {
let mut headers = self.headers().clone();
let application_tar: mime::Mime = "application/x-tar".parse()?;
headers.set::<ContentType>(ContentType(application_tar));
let res = self.http_client().post_file(
&headers,
&format!("/images/load?quiet={}", quiet),
path,
)?;
let res =
self.http_client()
.post_file(&headers, &format!("/images/load?quiet={}", quiet), path)?;
if !res.status.is_success() {
return Err(serde_json::from_reader::<_, DockerError>(res)?.into());
}
Expand All @@ -796,8 +791,7 @@ impl Docker {
// looking for file name like XXXXXXXXXXXXXX.json
if path.extension() == Some(OsStr::new("json")) && path != Path::new("manifest.json") {
let stem = path.file_stem().unwrap(); // contains .json
let id = stem
.to_str()
let id = stem.to_str()
.ok_or(ErrorKind::Unknown(format!("convert to String: {:?}", stem)))?;
return Ok(ImageId::new(id.to_string()));
}
Expand Down Expand Up @@ -1013,41 +1007,53 @@ mod tests {
.create_image(name, tag)
.map(|sts| sts.for_each(|st| assert!(st.is_ok())));
assert!(sts.is_ok());
assert!(docker
.remove_image(&format!("{}:{}", name, tag), None, None)
.is_ok());
assert!(
docker
.remove_image(&format!("{}:{}", name, tag), None, None)
.is_ok()
);
}

#[test]
fn create_remove_container() {
let docker = Docker::connect_with_defaults().unwrap();
let (name, tag) = ("hello-world", "linux");
assert!(docker
.create_image(name, tag)
.map(|sts| sts.for_each(|st| println!("{:?}", st)))
.is_ok());
assert!(
docker
.create_image(name, tag)
.map(|sts| sts.for_each(|st| println!("{:?}", st)))
.is_ok()
);
let mut create = ContainerCreateOptions::new(&format!("{}:{}", name, tag));
create.host_config(ContainerHostConfig::new());

assert!(docker
.create_container(Some("dockworker_test"), &create)
.is_ok());
assert!(docker
.remove_container("dockworker_test", None, None, None)
.is_ok());
assert!(docker
.remove_image(&format!("{}:{}", name, tag), None, None)
.is_ok());
assert!(
docker
.create_container(Some("dockworker_test"), &create)
.is_ok()
);
assert!(
docker
.remove_container("dockworker_test", None, None, None)
.is_ok()
);
assert!(
docker
.remove_image(&format!("{}:{}", name, tag), None, None)
.is_ok()
);
}

#[test]
fn auto_remove_container() {
let docker = Docker::connect_with_defaults().unwrap();
let (name, tag) = ("alpine", "3.7");
assert!(docker
.create_image(name, tag)
.map(|sts| sts.for_each(|st| println!("{:?}", st)))
.is_ok());
assert!(
docker
.create_image(name, tag)
.map(|sts| sts.for_each(|st| println!("{:?}", st)))
.is_ok()
);
let mut host_config = ContainerHostConfig::new();
host_config.auto_remove(true);
let mut create = ContainerCreateOptions::new(&format!("{}:{}", name, tag));
Expand All @@ -1063,16 +1069,20 @@ mod tests {
.remove_container("dockworker_auto_remove_container", None, None, None)
.is_err() // 'no such container' or 'removel container in progress'
);
assert!(docker
.remove_image(&format!("{}:{}", name, tag), Some(true), None)
.is_ok());
assert!(
docker
.remove_image(&format!("{}:{}", name, tag), Some(true), None)
.is_ok()
);
}

fn pull_image(docker: &Docker, name: &str, tag: &str) {
assert!(docker
.create_image(name, tag)
.map(|sts| sts.for_each(|st| println!("{:?}", st)))
.is_ok());
assert!(
docker
.create_image(name, tag)
.map(|sts| sts.for_each(|st| println!("{:?}", st)))
.is_ok()
);
}

#[test]
Expand All @@ -1087,9 +1097,11 @@ mod tests {
}

assert!(docker.remove_image("alpine:latest", None, None).is_ok());
assert!(docker
.load_image(false, Path::new("dockworker_test_alpine.tar"))
.is_ok());
assert!(
docker
.load_image(false, Path::new("dockworker_test_alpine.tar"))
.is_ok()
);
assert!(remove_file("dockworker_test_alpine.tar").is_ok());
}

Expand All @@ -1099,9 +1111,11 @@ mod tests {
{
pull_image(&docker, name, tag);
f(name, tag);
assert!(docker
.remove_image(&format!("{}:{}", name, tag), None, None)
.is_ok());
assert!(
docker
.remove_image(&format!("{}:{}", name, tag), None, None)
.is_ok()
);
}

#[test]
Expand All @@ -1112,16 +1126,20 @@ mod tests {
with_image(&docker, name, tag, |name, tag| {
let mut create = ContainerCreateOptions::new(&format!("{}:{}", name, tag));
create.cmd("ls".to_string());
assert!(docker
.create_container(Some(container_name), &create)
.is_ok());
assert!(
docker
.create_container(Some(container_name), &create)
.is_ok()
);
assert_eq!(
docker.wait_container(container_name).unwrap(),
ExitStatus::new(0)
);
assert!(docker
.remove_container(container_name, None, None, None)
.is_ok());
assert!(
docker
.remove_container(container_name, None, None, None)
.is_ok()
);
})
}

Expand Down Expand Up @@ -1241,8 +1259,7 @@ mod tests {
let container = docker.create_container(None, &create_options).unwrap();
docker.start_container(&container.id).unwrap();
let mut log = docker.log_container(&container.id, &log_options).unwrap();
let once = log
.output()
let once = log.output()
.unwrap()
.replace(|c| c == '\r' || c == '\n', "")
.to_owned();
Expand Down Expand Up @@ -1289,14 +1306,18 @@ mod tests {
let exp_stdout = File::open(root.join(exps[0])).unwrap();
let exp_stderr = File::open(root.join(exps[1])).unwrap();

assert!(exp_stdout
.bytes()
.map(|e| e.ok())
.eq(cont.stdout.bytes().map(|e| e.ok())));
assert!(exp_stderr
.bytes()
.map(|e| e.ok())
.eq(cont.stderr.bytes().map(|e| e.ok())));
assert!(
exp_stdout
.bytes()
.map(|e| e.ok())
.eq(cont.stdout.bytes().map(|e| e.ok()))
);
assert!(
exp_stderr
.bytes()
.map(|e| e.ok())
.eq(cont.stderr.bytes().map(|e| e.ok()))
);

docker.wait_container(&container.id).unwrap();
docker
Expand Down Expand Up @@ -1401,10 +1422,12 @@ mod tests {
});

let stdout_buffer = BufReader::new(cont.stdout);
assert!(stdout_buffer
.lines()
.map(|line| line.unwrap())
.eq(signalstrs));
assert!(
stdout_buffer
.lines()
.map(|line| line.unwrap())
.eq(signalstrs)
);

trace!("wait");
assert_eq!(
Expand Down
4 changes: 2 additions & 2 deletions src/header.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
///! HTTP header used in docker api
///!
use base64::{self, STANDARD};
use hyperx::header::Header;
use hyperx::Error;
use hyperx::Result;
///! HTTP header used in docker api
///!
use std::fmt;

/// The http header represent `X-Registry-Auth`
Expand Down
Loading

0 comments on commit 3bf9efb

Please sign in to comment.