diff --git a/pom.xml b/pom.xml
index 26711f680..4d1689804 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
com.github.docker-java
docker-java
jar
- 0.9.2-SNAPSHOT
+ 0.10.0-SNAPSHOT
docker-java
https://github.com/docker-java/docker-java
@@ -147,7 +147,7 @@
jul-to-slf4j
${slf4j-api.version}
-
+
com.google.guava
guava
diff --git a/src/main/java/com/github/dockerjava/client/DockerClient.java b/src/main/java/com/github/dockerjava/client/DockerClient.java
index 2aba605a5..f938edcef 100644
--- a/src/main/java/com/github/dockerjava/client/DockerClient.java
+++ b/src/main/java/com/github/dockerjava/client/DockerClient.java
@@ -1,5 +1,6 @@
package com.github.dockerjava.client;
+import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.commons.io.IOUtils.closeQuietly;
import java.io.*;
@@ -16,36 +17,6 @@
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.PoolingClientConnectionManager;
-import com.github.dockerjava.client.command.AbstrDockerCmd;
-import com.github.dockerjava.client.command.AttachContainerCmd;
-import com.github.dockerjava.client.command.AuthCmd;
-import com.github.dockerjava.client.command.BuildImgCmd;
-import com.github.dockerjava.client.command.CommitCmd;
-import com.github.dockerjava.client.command.ContainerDiffCmd;
-import com.github.dockerjava.client.command.CopyFileFromContainerCmd;
-import com.github.dockerjava.client.command.CreateContainerCmd;
-import com.github.dockerjava.client.command.ImportImageCmd;
-import com.github.dockerjava.client.command.InfoCmd;
-import com.github.dockerjava.client.command.InspectContainerCmd;
-import com.github.dockerjava.client.command.InspectImageCmd;
-import com.github.dockerjava.client.command.KillContainerCmd;
-import com.github.dockerjava.client.command.ListContainersCmd;
-import com.github.dockerjava.client.command.ListImagesCmd;
-import com.github.dockerjava.client.command.LogContainerCmd;
-import com.github.dockerjava.client.command.PingCmd;
-import com.github.dockerjava.client.command.PullImageCmd;
-import com.github.dockerjava.client.command.PushImageCmd;
-import com.github.dockerjava.client.command.RemoveContainerCmd;
-import com.github.dockerjava.client.command.RemoveImageCmd;
-import com.github.dockerjava.client.command.RestartContainerCmd;
-import com.github.dockerjava.client.command.SearchImagesCmd;
-import com.github.dockerjava.client.command.StartContainerCmd;
-import com.github.dockerjava.client.command.StopContainerCmd;
-import com.github.dockerjava.client.command.TagImageCmd;
-import com.github.dockerjava.client.command.TopContainerCmd;
-import com.github.dockerjava.client.command.VersionCmd;
-import com.github.dockerjava.client.command.WaitContainerCmd;
-
import com.github.dockerjava.client.model.AuthConfig;
import com.github.dockerjava.client.utils.JsonClientFilter;
@@ -62,63 +33,60 @@
*/
public class DockerClient implements Closeable {
- private Client client;
-
+ private final Client client;
+
private final CommandFactory cmdFactory;
private final WebResource baseResource;
- private AuthConfig authConfig;
-
+ private final DockerClientConfig dockerClientConfig;
public DockerClient() {
- this(Config.createDefaultConfigBuilder().build());
+ this(DockerClientConfig.createDefaultConfigBuilder().build());
}
public DockerClient(String serverUrl) {
this(configWithServerUrl(serverUrl));
}
-
- private static Config configWithServerUrl(String serverUrl) {
- return Config.createDefaultConfigBuilder()
+ private static DockerClientConfig configWithServerUrl(String serverUrl) {
+ return DockerClientConfig.createDefaultConfigBuilder()
.withUri(serverUrl)
.build();
}
-
- public DockerClient(Config config) {
- this(config, new DefaultCommandFactory());
+ public DockerClient(DockerClientConfig dockerClientConfig) {
+ this(dockerClientConfig, new DefaultCommandFactory());
}
- public DockerClient(Config config, CommandFactory cmdFactory) {
+ public DockerClient(DockerClientConfig dockerClientConfig, CommandFactory cmdFactory) {
this.cmdFactory = cmdFactory;
+ this.dockerClientConfig = dockerClientConfig;
- HttpClient httpClient = getPoolingHttpClient(config);
+ HttpClient httpClient = getPoolingHttpClient(dockerClientConfig);
ClientConfig clientConfig = new DefaultClientConfig();
client = new ApacheHttpClient4(new ApacheHttpClient4Handler(httpClient,
null, false), clientConfig);
-
- if(config.getReadTimeout() != null) {
- client.setReadTimeout(config.getReadTimeout());
+
+ if(dockerClientConfig.getReadTimeout() != null) {
+ client.setReadTimeout(dockerClientConfig.getReadTimeout());
}
client.addFilter(new JsonClientFilter());
- if (config.isLoggingFilterEnabled())
+ if (dockerClientConfig.isLoggingFilterEnabled())
client.addFilter(new SelectiveLoggingFilter());
-
- WebResource webResource = client.resource(config.getUri());
-
- if(config.getVersion() != null) {
- baseResource = webResource.path("v" + config.getVersion());
+
+ WebResource webResource = client.resource(dockerClientConfig.getUri());
+
+ if(dockerClientConfig.getVersion() != null) {
+ baseResource = webResource.path("v" + dockerClientConfig.getVersion());
} else {
baseResource = webResource;
}
}
-
- private HttpClient getPoolingHttpClient(Config config) {
+ private HttpClient getPoolingHttpClient(DockerClientConfig dockerClientConfig) {
SchemeRegistry schemeRegistry = new SchemeRegistry();
- schemeRegistry.register(new Scheme("http", config.getUri().getPort(),
+ schemeRegistry.register(new Scheme("http", dockerClientConfig.getUri().getPort(),
PlainSocketFactory.getSocketFactory()));
schemeRegistry.register(new Scheme("https", 443, SSLSocketFactory
.getSocketFactory()));
@@ -129,56 +97,25 @@ private HttpClient getPoolingHttpClient(Config config) {
// Increase default max connection per route
cm.setDefaultMaxPerRoute(1000);
-
return new DefaultHttpClient(cm);
}
-
- public void setCredentials(String username, String password, String email) {
- if (username == null) {
- throw new IllegalArgumentException("username is null");
- }
- if (password == null) {
- throw new IllegalArgumentException("password is null");
- }
- if (email == null) {
- throw new IllegalArgumentException("email is null");
- }
- authConfig = new AuthConfig();
- authConfig.setUsername(username);
- authConfig.setPassword(password);
- authConfig.setEmail(email);
- }
-
public RES_T execute(AbstrDockerCmd, RES_T> command)
throws DockerException {
return command.withBaseResource(baseResource).exec();
}
public AuthConfig authConfig() throws DockerException {
- return authConfig != null ? authConfig : authConfigFromProperties();
- }
-
- private static AuthConfig authConfigFromProperties() throws DockerException {
- final AuthConfig a = new AuthConfig();
-
- // TODO This should probably come from the Config used to create the DockerClient.
- Config defaultConfig = Config.createDefaultConfigBuilder().build();
- a.setUsername(defaultConfig.getUsername());
- a.setPassword(defaultConfig.getPassword());
- a.setEmail(defaultConfig.getEmail());
+ checkNotNull(dockerClientConfig.getUsername(), "Configured username is null.");
+ checkNotNull(dockerClientConfig.getPassword(), "Configured password is null.");
+ checkNotNull(dockerClientConfig.getEmail(), "Configured email is null.");
- if (a.getUsername() == null) {
- throw new IllegalStateException("username is null");
- }
- if (a.getPassword() == null) {
- throw new IllegalStateException("password is null");
- }
- if (a.getEmail() == null) {
- throw new IllegalStateException("email is null");
- }
-
- return a;
+ AuthConfig authConfig = new AuthConfig();
+ authConfig.setUsername(dockerClientConfig.getUsername());
+ authConfig.setPassword(dockerClientConfig.getPassword());
+ authConfig.setEmail(dockerClientConfig.getEmail());
+ // TODO Make the registry address configurable
+ return authConfig;
}
/**
@@ -195,7 +132,7 @@ public AuthCmd authCmd() {
public InfoCmd infoCmd() throws DockerException {
return cmdFactory.infoCmd().withBaseResource(baseResource);
}
-
+
public PingCmd pingCmd() {
return cmdFactory.pingCmd().withBaseResource(baseResource);
}
@@ -221,9 +158,8 @@ public PushImageCmd pushImageCmd(String name) {
// return execute(pushImageCmd(name));
// }
- public ImportImageCmd importImageCmd(String repository,
- InputStream imageStream) {
- return cmdFactory.importImageCmd(repository, imageStream)
+ public CreateImageCmd createImageCmd(String repository, InputStream imageStream) {
+ return cmdFactory.createImageCmd(repository, imageStream)
.withBaseResource(baseResource);
}
@@ -326,7 +262,7 @@ public TagImageCmd tagImageCmd(String imageId, String repository, String tag) {
return cmdFactory.tagImageCmd(imageId, repository, tag).withBaseResource(baseResource);
}
-
+ // TODO This is only being used by the test code for logging. Is it really necessary?
/**
* @return The output slurped into a string.
*/
diff --git a/src/main/java/com/github/dockerjava/client/Config.java b/src/main/java/com/github/dockerjava/client/DockerClientConfig.java
similarity index 95%
rename from src/main/java/com/github/dockerjava/client/Config.java
rename to src/main/java/com/github/dockerjava/client/DockerClientConfig.java
index 086559178..2c9340fa5 100644
--- a/src/main/java/com/github/dockerjava/client/Config.java
+++ b/src/main/java/com/github/dockerjava/client/DockerClientConfig.java
@@ -8,13 +8,13 @@
import com.google.common.base.Preconditions;
-public class Config {
+public class DockerClientConfig {
private final URI uri;
private final String version, username, password, email;
private final Integer readTimeout;
private final boolean loggingFilterEnabled;
- private Config(DockerClientConfigBuilder builder) {
+ private DockerClientConfig(DockerClientConfigBuilder builder) {
this.uri = builder.uri;
this.version = builder.version;
this.username = builder.username;
@@ -55,7 +55,7 @@ public boolean isLoggingFilterEnabled() {
public static Properties loadIncludedDockerProperties() {
try {
Properties p = new Properties();
- p.load(Config.class.getResourceAsStream("/docker.io.properties"));
+ p.load(DockerClientConfig.class.getResourceAsStream("/docker.io.properties"));
return p;
} catch (IOException e) {
throw new DockerException(e);
@@ -170,8 +170,8 @@ public final DockerClientConfigBuilder withLoggingFilter(boolean loggingFilterEn
this.loggingFilterEnabled = loggingFilterEnabled;
return this;
}
- public Config build() {
- return new Config(this);
+ public DockerClientConfig build() {
+ return new DockerClientConfig(this);
}
}
}
diff --git a/src/main/java/com/github/dockerjava/client/command/CommandFactory.java b/src/main/java/com/github/dockerjava/client/command/CommandFactory.java
index 06f8fe78d..ad970a4b1 100644
--- a/src/main/java/com/github/dockerjava/client/command/CommandFactory.java
+++ b/src/main/java/com/github/dockerjava/client/command/CommandFactory.java
@@ -14,7 +14,7 @@ public interface CommandFactory {
public ContainerDiffCmd containerDiffCmd(String containerId);
public CopyFileFromContainerCmd copyFileFromContainerCmd(String containerId, String resource);
public CreateContainerCmd createContainerCmd(String image);
- public ImportImageCmd importImageCmd(String repository, InputStream imageStream);
+ public CreateImageCmd createImageCmd(String repository, InputStream imageStream);
public InfoCmd infoCmd();
public InspectContainerCmd inspectContainerCmd(String containerId);
public InspectImageCmd inspectImageCmd(String imageId);
diff --git a/src/main/java/com/github/dockerjava/client/command/CommitCmd.java b/src/main/java/com/github/dockerjava/client/command/CommitCmd.java
index 67bf5b0aa..12116e7f2 100644
--- a/src/main/java/com/github/dockerjava/client/command/CommitCmd.java
+++ b/src/main/java/com/github/dockerjava/client/command/CommitCmd.java
@@ -3,19 +3,20 @@
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.dockerjava.client.model.ExposedPorts;
+import com.github.dockerjava.client.model.Volumes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.dockerjava.client.DockerException;
import com.github.dockerjava.client.NotFoundException;
-import com.github.dockerjava.client.model.CommitConfig;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.core.util.MultivaluedMapImpl;
-
/**
*
* Create a new image from a container's changes. Returns the new image ID.
@@ -60,12 +61,6 @@ public boolean hasPauseEnabled() {
return pause;
}
- public CommitCmd withCommitConfig(CommitConfig commitConfig) {
- checkCommitConfig(commitConfig);
- this.commitConfig = commitConfig;
- return this;
- }
-
public CommitCmd withAttachStderr(boolean attachStderr) {
this.commitConfig.setAttachStderr(attachStderr);
return this;
@@ -144,13 +139,7 @@ public String toString() {
.toString();
}
- private void checkCommitConfig(CommitConfig commitConfig) {
- Preconditions.checkNotNull(commitConfig, "CommitConfig was not specified");
- }
-
protected String impl() throws DockerException {
- checkCommitConfig(commitConfig);
-
MultivaluedMap params = new MultivaluedMapImpl();
params.add("container", containerId);
params.add("repo", repository);
@@ -177,4 +166,203 @@ protected String impl() throws DockerException {
throw new DockerException(e);
}
}
+
+ /**
+ *
+ * @author Konstantin Pelykh (kpelykh@gmail.com)
+ *
+ */
+ // TODO Simplify this
+ private static class CommitConfig {
+
+ @JsonProperty("AttachStdin")
+ private boolean attachStdin;
+
+ @JsonProperty("AttachStdout")
+ private boolean attachStdout;
+
+ @JsonProperty("AttachStderr")
+ private boolean attachStderr;
+
+ @JsonProperty("Cmd")
+ private String[] cmd;
+
+ @JsonProperty("DisableNetwork")
+ private boolean disableNetwork;
+
+ @JsonProperty("Env")
+ private String[] env;
+
+ @JsonProperty("ExposedPorts")
+ private ExposedPorts exposedPorts;
+
+ @JsonProperty("Hostname")
+ private String hostname;
+
+ @JsonProperty("Memory")
+ private Integer memory;
+
+ @JsonProperty("MemorySwap")
+ private Integer memorySwap;
+
+ @JsonProperty("OpenStdin")
+ private boolean openStdin;
+
+ @JsonProperty("PortSpecs")
+ private String[] portSpecs;
+
+ @JsonProperty("StdinOnce")
+ private boolean stdinOnce;
+
+ @JsonProperty("Tty")
+ private boolean tty;
+
+ @JsonProperty("User")
+ private String user;
+
+ @JsonProperty("Volumes")
+ private Volumes volumes;
+
+ @JsonProperty("WorkingDir")
+ private String workingDir;
+
+ public boolean isAttachStdin() {
+ return attachStdin;
+ }
+
+ public void setAttachStdin(boolean attachStdin) {
+ this.attachStdin = attachStdin;
+ }
+
+ public boolean isAttachStdout() {
+ return attachStdout;
+ }
+
+ public void setAttachStdout(boolean attachStdout) {
+ this.attachStdout = attachStdout;
+ }
+
+ public boolean isAttachStderr() {
+ return attachStderr;
+ }
+
+ public void setAttachStderr(boolean attachStderr) {
+ this.attachStderr = attachStderr;
+ }
+
+ public String[] getCmd() {
+ return cmd;
+ }
+
+ public void setCmd(String[] cmd) {
+ this.cmd = cmd;
+ }
+
+ public boolean isDisableNetwork() {
+ return disableNetwork;
+ }
+
+ public void setDisableNetwork(boolean disableNetwork) {
+ this.disableNetwork = disableNetwork;
+ }
+
+ public String[] getEnv() {
+ return env;
+ }
+
+ public void setEnv(String[] env) {
+ this.env = env;
+ }
+
+ public ExposedPorts getExposedPorts() {
+ return exposedPorts;
+ }
+
+ public void setExposedPorts(ExposedPorts exposedPorts) {
+ this.exposedPorts = exposedPorts;
+ }
+
+ public String getHostname() {
+ return hostname;
+ }
+
+ public void setHostname(String hostname) {
+ this.hostname = hostname;
+ }
+
+ public Integer getMemory() {
+ return memory;
+ }
+
+ public void setMemory(Integer memory) {
+ this.memory = memory;
+ }
+
+ public Integer getMemorySwap() {
+ return memorySwap;
+ }
+
+ public void setMemorySwap(Integer memorySwap) {
+ this.memorySwap = memorySwap;
+ }
+
+ public boolean isOpenStdin() {
+ return openStdin;
+ }
+
+ public void setOpenStdin(boolean openStdin) {
+ this.openStdin = openStdin;
+ }
+
+ public String[] getPortSpecs() {
+ return portSpecs;
+ }
+
+ public void setPortSpecs(String[] portSpecs) {
+ this.portSpecs = portSpecs;
+ }
+
+ public boolean isStdinOnce() {
+ return stdinOnce;
+ }
+
+ public void setStdinOnce(boolean stdinOnce) {
+ this.stdinOnce = stdinOnce;
+ }
+
+ public boolean isTty() {
+ return tty;
+ }
+
+ public void setTty(boolean tty) {
+ this.tty = tty;
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public void setUser(String user) {
+ this.user = user;
+ }
+
+ public Volumes getVolumes() {
+ return volumes;
+ }
+
+ public void setVolumes(Volumes volumes) {
+ this.volumes = volumes;
+ }
+
+ public String getWorkingDir() {
+ return workingDir;
+ }
+
+ public void setWorkingDir(String workingDir) {
+ this.workingDir = workingDir;
+ }
+
+
+
+ }
}
diff --git a/src/main/java/com/github/dockerjava/client/command/CopyFileFromContainerCmd.java b/src/main/java/com/github/dockerjava/client/command/CopyFileFromContainerCmd.java
index dd9742788..5b46fe00c 100644
--- a/src/main/java/com/github/dockerjava/client/command/CopyFileFromContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/client/command/CopyFileFromContainerCmd.java
@@ -2,11 +2,13 @@
import javax.ws.rs.core.MediaType;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.CopyConfig;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.UniformInterfaceException;
@@ -69,7 +71,7 @@ protected ClientResponse impl() throws DockerException {
WebResource.Builder builder =
webResource.accept(MediaType.APPLICATION_OCTET_STREAM_TYPE).type("application/json");
- return builder.post(ClientResponse.class, copyConfig.toString());
+ return builder.post(ClientResponse.class, copyConfig);
} catch (UniformInterfaceException exception) {
if (exception.getResponse().getStatus() == 400) {
throw new DockerException("bad parameter");
@@ -82,4 +84,63 @@ protected ClientResponse impl() throws DockerException {
}
}
}
+
+ /**
+ * Configuration object for copy command.
+ * @author Victor Lyuboslavsky
+ */
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ private static class CopyConfig {
+
+ @JsonProperty("HostPath")
+ private String hostPath;
+
+ @JsonProperty("Resource")
+ private String resource;
+
+ /**
+ * Constructor.
+ */
+ public CopyConfig() {
+ hostPath = ".";
+ }
+
+ /**
+ * Retrieves the 'resource' variable.
+ * @return the 'resource' variable value
+ */
+ public String getResource() {
+ return resource;
+ }
+
+ /**
+ * Sets the 'resource' variable.
+ * @param resource the new 'resource' variable value to set
+ */
+ public void setResource(String resource) {
+ this.resource = resource;
+ }
+
+ /**
+ * Retrieves the 'hostPath' variable.
+ * @return the 'hostPath' variable value
+ */
+ public String getHostPath() {
+ return hostPath;
+ }
+
+ /**
+ * Sets the 'hostPath' variable.
+ * @param hostPath the new 'hostPath' variable value to set
+ */
+ public void setHostPath(String hostPath) {
+ this.hostPath = hostPath;
+ }
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this);
+ }
+
+ }
}
diff --git a/src/main/java/com/github/dockerjava/client/command/CreateContainerCmd.java b/src/main/java/com/github/dockerjava/client/command/CreateContainerCmd.java
index 042082760..ecd8b041e 100644
--- a/src/main/java/com/github/dockerjava/client/command/CreateContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/client/command/CreateContainerCmd.java
@@ -1,20 +1,21 @@
package com.github.dockerjava.client.command;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.dockerjava.client.model.*;
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import com.github.dockerjava.client.DockerException;
import com.github.dockerjava.client.NotFoundException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.CreateContainerConfig;
-import com.github.dockerjava.client.model.ExposedPort;
-import com.github.dockerjava.client.model.Volume;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.core.util.MultivaluedMapImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
/**
@@ -22,7 +23,7 @@
* Creates a new container.
*
*/
-public class CreateContainerCmd extends AbstrDockerCmd {
+public class CreateContainerCmd extends AbstrDockerCmd {
private static final Logger LOGGER = LoggerFactory.getLogger(CreateContainerCmd.class);
@@ -35,7 +36,7 @@ public CreateContainerCmd(String image) {
this.containerCreateConfig.withImage(image);
}
- public CreateContainerCmd(CreateContainerConfig config) {
+ private CreateContainerCmd(CreateContainerConfig config) {
Preconditions.checkNotNull(config, "config was not specified");
this.containerCreateConfig = config;
}
@@ -106,7 +107,7 @@ public String toString() {
.toString();
}
- protected ContainerCreateResponse impl() {
+ protected CreateContainerResponse impl() {
MultivaluedMap params = new MultivaluedMapImpl();
if (name != null) {
params.add("name", name);
@@ -117,7 +118,7 @@ protected ContainerCreateResponse impl() {
LOGGER.trace("POST: {} ", webResource);
return webResource.accept(MediaType.APPLICATION_JSON)
.type(MediaType.APPLICATION_JSON)
- .post(ContainerCreateResponse.class, containerCreateConfig);
+ .post(CreateContainerResponse.class, containerCreateConfig);
} catch (UniformInterfaceException exception) {
if (exception.getResponse().getStatus() == 404) {
throw new NotFoundException(String.format("%s is an unrecognized image. Please pull the image first.", containerCreateConfig.getImage()));
@@ -130,4 +131,251 @@ protected ContainerCreateResponse impl() {
}
}
}
+
+ /**
+ *
+ * @author Konstantin Pelykh (kpelykh@gmail.com)
+ *
+ * "Hostname":"",
+ "User":"",
+ "Memory":0,
+ "MemorySwap":0,
+ "AttachStdin":false,
+ "AttachStdout":true,
+ "AttachStderr":true,
+ "PortSpecs":null,
+ "Tty":false,
+ "OpenStdin":false,
+ "StdinOnce":false,
+ "Env":null,
+ "Cmd":[
+ "date"
+ ],
+ "Dns":null,
+ "Image":"base",
+ "Volumes":{
+ "/tmp": {}
+ },
+ "VolumesFrom":"",
+ "WorkingDir":"",
+ "DisableNetwork": false,
+ "ExposedPorts":{
+ "22/tcp": {}
+ }
+ *
+ *
+ */
+ private static class CreateContainerConfig {
+
+ @JsonProperty("Hostname") private String hostName = "";
+ @JsonProperty("User") private String user = "";
+ @JsonProperty("Memory") private long memoryLimit = 0;
+ @JsonProperty("MemorySwap") private long memorySwap = 0;
+ @JsonProperty("AttachStdin") private boolean attachStdin = false;
+ @JsonProperty("AttachStdout") private boolean attachStdout = false;
+ @JsonProperty("AttachStderr") private boolean attachStderr = false;
+ @JsonProperty("PortSpecs") private String[] portSpecs;
+ @JsonProperty("Tty") private boolean tty = false;
+ @JsonProperty("OpenStdin") private boolean stdinOpen = false;
+ @JsonProperty("StdinOnce") private boolean stdInOnce = false;
+ @JsonProperty("Env") private String[] env;
+ @JsonProperty("Cmd") private String[] cmd;
+ @JsonProperty("Dns") private String[] dns;
+ @JsonProperty("Image") private String image;
+ @JsonProperty("Volumes") private Volumes volumes = new Volumes();
+ @JsonProperty("VolumesFrom") private String[] volumesFrom = new String[]{};
+ @JsonProperty("WorkingDir") private String workingDir = "";
+ @JsonProperty("DisableNetwork") private boolean disableNetwork = false;
+ @JsonProperty("ExposedPorts") private ExposedPorts exposedPorts = new ExposedPorts();
+
+ public CreateContainerConfig withExposedPorts(ExposedPort[] exposedPorts) {
+ this.exposedPorts = new ExposedPorts(exposedPorts);
+ return this;
+ }
+
+ @JsonIgnore
+ public ExposedPort[] getExposedPorts() {
+ return exposedPorts.getExposedPorts();
+ }
+
+
+ public boolean isDisableNetwork() {
+ return disableNetwork;
+ }
+
+ public String getWorkingDir() { return workingDir; }
+
+ public CreateContainerConfig withWorkingDir(String workingDir) {
+ this.workingDir = workingDir;
+ return this;
+ }
+
+
+ public String getHostName() {
+ return hostName;
+ }
+
+ public CreateContainerConfig withDisableNetwork(boolean disableNetwork) {
+ this.disableNetwork = disableNetwork;
+ return this;
+ }
+
+ public CreateContainerConfig withHostName(String hostName) {
+ this.hostName = hostName;
+ return this;
+ }
+
+ public String[] getPortSpecs() {
+ return portSpecs;
+ }
+
+ public CreateContainerConfig withPortSpecs(String[] portSpecs) {
+ this.portSpecs = portSpecs;
+ return this;
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public CreateContainerConfig withUser(String user) {
+ this.user = user;
+ return this;
+ }
+
+ public boolean isTty() {
+ return tty;
+ }
+
+ public CreateContainerConfig withTty(boolean tty) {
+ this.tty = tty;
+ return this;
+ }
+
+ public boolean isStdinOpen() {
+ return stdinOpen;
+ }
+
+ public CreateContainerConfig withStdinOpen(boolean stdinOpen) {
+ this.stdinOpen = stdinOpen;
+ return this;
+ }
+
+ public boolean isStdInOnce() {
+ return stdInOnce;
+ }
+
+ public CreateContainerConfig withStdInOnce(boolean stdInOnce) {
+ this.stdInOnce = stdInOnce;
+ return this;
+ }
+
+ public long getMemoryLimit() {
+ return memoryLimit;
+ }
+
+ public CreateContainerConfig withMemoryLimit(long memoryLimit) {
+ this.memoryLimit = memoryLimit;
+ return this;
+ }
+
+ public long getMemorySwap() {
+ return memorySwap;
+ }
+
+ public CreateContainerConfig withMemorySwap(long memorySwap) {
+ this.memorySwap = memorySwap;
+ return this;
+ }
+
+
+ public boolean isAttachStdin() {
+ return attachStdin;
+ }
+
+ public CreateContainerConfig withAttachStdin(boolean attachStdin) {
+ this.attachStdin = attachStdin;
+ return this;
+ }
+
+ public boolean isAttachStdout() {
+ return attachStdout;
+ }
+
+ public CreateContainerConfig withAttachStdout(boolean attachStdout) {
+ this.attachStdout = attachStdout;
+ return this;
+ }
+
+ public boolean isAttachStderr() {
+ return attachStderr;
+ }
+
+ public CreateContainerConfig withAttachStderr(boolean attachStderr) {
+ this.attachStderr = attachStderr;
+ return this;
+ }
+
+ public String[] getEnv() {
+ return env;
+ }
+
+ public CreateContainerConfig withEnv(String[] env) {
+ this.env = env;
+ return this;
+ }
+
+ public String[] getCmd() {
+ return cmd;
+ }
+
+ public CreateContainerConfig withCmd(String[] cmd) {
+ this.cmd = cmd;
+ return this;
+ }
+
+ public String[] getDns() {
+ return dns;
+ }
+
+ public CreateContainerConfig withDns(String[] dns) {
+ this.dns = dns;
+ return this;
+ }
+
+ public String getImage() {
+ return image;
+ }
+
+ public CreateContainerConfig withImage(String image) {
+ this.image = image;
+ return this;
+ }
+
+ @JsonIgnore
+ public Volume[] getVolumes() {
+ return volumes.getVolumes();
+ }
+
+ public CreateContainerConfig withVolumes(Volume[] volumes) {
+ this.volumes = new Volumes(volumes);
+ return this;
+ }
+
+ public String[] getVolumesFrom() {
+ return volumesFrom;
+ }
+
+ public CreateContainerConfig withVolumesFrom(String[] volumesFrom) {
+ this.volumesFrom = volumesFrom;
+ return this;
+ }
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this);
+ }
+
+
+ }
}
diff --git a/src/main/java/com/github/dockerjava/client/model/ContainerCreateResponse.java b/src/main/java/com/github/dockerjava/client/command/CreateContainerResponse.java
similarity index 73%
rename from src/main/java/com/github/dockerjava/client/model/ContainerCreateResponse.java
rename to src/main/java/com/github/dockerjava/client/command/CreateContainerResponse.java
index d912ecc19..3eb9226f8 100644
--- a/src/main/java/com/github/dockerjava/client/model/ContainerCreateResponse.java
+++ b/src/main/java/com/github/dockerjava/client/command/CreateContainerResponse.java
@@ -1,7 +1,8 @@
-package com.github.dockerjava.client.model;
+package com.github.dockerjava.client.command;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
import java.util.Arrays;
@@ -11,7 +12,7 @@
*
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-public class ContainerCreateResponse {
+public class CreateContainerResponse {
@JsonProperty("Id")
private String id;
@@ -37,9 +38,6 @@ public void setWarnings(String[] warnings) {
@Override
public String toString() {
- return "ContainerCreateResponse{" +
- "id='" + id + '\'' +
- ", warnings=" + Arrays.toString(warnings) +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/main/java/com/github/dockerjava/client/command/ImportImageCmd.java b/src/main/java/com/github/dockerjava/client/command/CreateImageCmd.java
similarity index 80%
rename from src/main/java/com/github/dockerjava/client/command/ImportImageCmd.java
rename to src/main/java/com/github/dockerjava/client/command/CreateImageCmd.java
index 9d02d5926..1254f63e8 100644
--- a/src/main/java/com/github/dockerjava/client/command/ImportImageCmd.java
+++ b/src/main/java/com/github/dockerjava/client/command/CreateImageCmd.java
@@ -9,7 +9,6 @@
import org.slf4j.LoggerFactory;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ImageCreateResponse;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
@@ -18,9 +17,9 @@
/**
* Create an image by importing the given stream of a tar file.
*/
-public class ImportImageCmd extends AbstrDockerCmd {
+public class CreateImageCmd extends AbstrDockerCmd {
- private static final Logger LOGGER = LoggerFactory.getLogger(ImportImageCmd.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(CreateImageCmd.class);
private String repository, tag;
private InputStream imageStream;
@@ -29,7 +28,7 @@ public class ImportImageCmd extends AbstrDockerCmd params = new MultivaluedMapImpl();
params.add("repo", repository);
params.add("tag", tag);
@@ -89,7 +88,7 @@ protected ImageCreateResponse impl() {
try {
LOGGER.trace("POST: {}", webResource);
return webResource.accept(MediaType.APPLICATION_OCTET_STREAM_TYPE)
- .post(ImageCreateResponse.class, imageStream);
+ .post(CreateImageResponse.class, imageStream);
} catch (UniformInterfaceException exception) {
if (exception.getResponse().getStatus() == 500) {
diff --git a/src/main/java/com/github/dockerjava/client/model/ImageCreateResponse.java b/src/main/java/com/github/dockerjava/client/command/CreateImageResponse.java
similarity index 68%
rename from src/main/java/com/github/dockerjava/client/model/ImageCreateResponse.java
rename to src/main/java/com/github/dockerjava/client/command/CreateImageResponse.java
index d23aff500..e3f404744 100644
--- a/src/main/java/com/github/dockerjava/client/model/ImageCreateResponse.java
+++ b/src/main/java/com/github/dockerjava/client/command/CreateImageResponse.java
@@ -1,7 +1,8 @@
-package com.github.dockerjava.client.model;
+package com.github.dockerjava.client.command;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
/**
* Parse reponses from /images/create
@@ -10,21 +11,17 @@
*
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-public class ImageCreateResponse {
+public class CreateImageResponse {
@JsonProperty("status")
private String id;
-
public String getId() {
return id;
}
-
@Override
public String toString() {
- return "ContainerCreateResponse{" +
- "id='" + id + '\'' +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/main/java/com/github/dockerjava/client/command/DefaultCommandFactory.java b/src/main/java/com/github/dockerjava/client/command/DefaultCommandFactory.java
index 79cb726bc..a8b6d2547 100644
--- a/src/main/java/com/github/dockerjava/client/command/DefaultCommandFactory.java
+++ b/src/main/java/com/github/dockerjava/client/command/DefaultCommandFactory.java
@@ -47,8 +47,8 @@ public CreateContainerCmd createContainerCmd(String image) {
}
@Override
- public ImportImageCmd importImageCmd(String repository, InputStream imageStream) {
- return new ImportImageCmd(repository, imageStream);
+ public CreateImageCmd createImageCmd(String repository, InputStream imageStream) {
+ return new CreateImageCmd(repository, imageStream);
}
@Override
@@ -155,7 +155,7 @@ public VersionCmd versionCmd() {
public WaitContainerCmd waitContainerCmd(String containerId) {
return new WaitContainerCmd(containerId);
}
-
+
@Override
public PingCmd pingCmd() {
return new PingCmd();
diff --git a/src/main/java/com/github/dockerjava/client/command/InspectContainerCmd.java b/src/main/java/com/github/dockerjava/client/command/InspectContainerCmd.java
index a5e40dfe9..78967e2d3 100644
--- a/src/main/java/com/github/dockerjava/client/command/InspectContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/client/command/InspectContainerCmd.java
@@ -7,7 +7,6 @@
import com.github.dockerjava.client.DockerException;
import com.github.dockerjava.client.NotFoundException;
-import com.github.dockerjava.client.model.ContainerInspectResponse;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
@@ -15,7 +14,7 @@
/**
* Inspect the details of a container.
*/
-public class InspectContainerCmd extends AbstrDockerCmd {
+public class InspectContainerCmd extends AbstrDockerCmd {
private static final Logger LOGGER = LoggerFactory.getLogger(InspectContainerCmd.class);
@@ -40,12 +39,12 @@ public String toString() {
return "inspect " + containerId;
}
- protected ContainerInspectResponse impl() throws DockerException {
+ protected InspectContainerResponse impl() throws DockerException {
WebResource webResource = baseResource.path(String.format("/containers/%s/json", containerId));
try {
LOGGER.trace("GET: {}", webResource);
- return webResource.accept(MediaType.APPLICATION_JSON).get(ContainerInspectResponse.class);
+ return webResource.accept(MediaType.APPLICATION_JSON).get(InspectContainerResponse.class);
} catch (UniformInterfaceException exception) {
if (exception.getResponse().getStatus() == 404) {
throw new NotFoundException(String.format("No such container %s", containerId));
diff --git a/src/main/java/com/github/dockerjava/client/model/ContainerInspectResponse.java b/src/main/java/com/github/dockerjava/client/command/InspectContainerResponse.java
similarity index 79%
rename from src/main/java/com/github/dockerjava/client/model/ContainerInspectResponse.java
rename to src/main/java/com/github/dockerjava/client/command/InspectContainerResponse.java
index 7072037cf..352cc7cc3 100644
--- a/src/main/java/com/github/dockerjava/client/model/ContainerInspectResponse.java
+++ b/src/main/java/com/github/dockerjava/client/command/InspectContainerResponse.java
@@ -1,4 +1,4 @@
-package com.github.dockerjava.client.model;
+package com.github.dockerjava.client.command;
import java.util.Arrays;
@@ -7,6 +7,8 @@
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.dockerjava.client.model.*;
+import org.apache.commons.lang.builder.ToStringBuilder;
/**
*
@@ -14,7 +16,7 @@
*
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-public class ContainerInspectResponse {
+public class InspectContainerResponse {
@JsonProperty("Args")
private String[] args;
@@ -30,16 +32,16 @@ public class ContainerInspectResponse {
@JsonProperty("ExecDriver")
private String execDriver;
-
+
@JsonProperty("HostConfig")
private HostConfig hostConfig;
@JsonProperty("HostnamePath")
private String hostnamePath;
-
+
@JsonProperty("HostsPath")
private String hostsPath;
-
+
@JsonProperty("Id")
private String id;
@@ -48,7 +50,7 @@ public class ContainerInspectResponse {
@JsonProperty("MountLabel")
private String mountLabel;
-
+
@JsonProperty("Name")
private String name;
@@ -60,7 +62,7 @@ public class ContainerInspectResponse {
@JsonProperty("ProcessLabel")
private String processLabel;
-
+
@JsonProperty("ResolvConfPath")
private String resolvConfPath;
@@ -84,7 +86,7 @@ public String getCreated() {
public String getPath() {
return path;
}
-
+
public String getProcessLabel() {
return processLabel;
}
@@ -142,11 +144,11 @@ public String getDriver() {
public HostConfig getHostConfig() {
return hostConfig;
}
-
+
public String getExecDriver() {
return execDriver;
}
-
+
public String getMountLabel() {
return mountLabel;
}
@@ -160,7 +162,7 @@ public class NetworkSettings {
@JsonProperty("Bridge") private String bridge;
@JsonProperty("PortMapping") private Map> portMapping;
@JsonProperty("Ports") private Ports ports;
-
+
public String getIpAddress() {
return ipAddress;
}
@@ -186,16 +188,9 @@ public Ports getPorts() {
}
- @Override
+ @Override
public String toString() {
- return "NetworkSettings{" +
- "ports=" + ports +
- ", portMapping=" + portMapping +
- ", bridge='" + bridge + '\'' +
- ", gateway='" + gateway + '\'' +
- ", ipPrefixLen=" + ipPrefixLen +
- ", ipAddress='" + ipAddress + '\'' +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
@@ -208,7 +203,7 @@ public class ContainerState {
@JsonProperty("ExitCode") private int exitCode;
@JsonProperty("StartedAt") private String startedAt;
@JsonProperty("FinishedAt") private String finishedAt;
-
+
public boolean isRunning() {
return running;
}
@@ -233,56 +228,49 @@ public String getFinishedAt() {
return finishedAt;
}
- @Override
+ @Override
public String toString() {
- return "ContainerState{" +
- "running=" + running +
- ", paused=" + paused +
- ", pid=" + pid +
- ", exitCode=" + exitCode +
- ", startedAt='" + startedAt + '\'' +
- ", finishedAt='" + finishedAt + '\'' +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
-
+
@JsonIgnoreProperties(ignoreUnknown = true)
public class HostConfig {
@JsonProperty("Binds")
private String[] binds;
-
+
@JsonProperty("LxcConf")
private LxcConf[] lxcConf;
-
+
@JsonProperty("PortBindings")
private Ports portBindings;
-
+
@JsonProperty("PublishAllPorts")
private boolean publishAllPorts;
-
+
@JsonProperty("Privileged")
private boolean privileged;
-
+
@JsonProperty("Dns")
private String dns;
-
+
@JsonProperty("VolumesFrom")
private String[] volumesFrom;
@JsonProperty("ContainerIDFile")
private String containerIDFile;
-
+
@JsonProperty("DnsSearch")
private String dnsSearch;
-
+
// TODO: use Links class here?
@JsonProperty("Links")
private String[] links;
@JsonProperty("NetworkMode")
private String networkMode;
-
+
public String[] getBinds() {
return binds;
}
@@ -327,19 +315,9 @@ public String getNetworkMode() {
return networkMode;
}
- @Override
+ @Override
public String toString() {
- return "HostConfig{" +
- "binds=" + Arrays.toString(binds) +
- ", containerIDFile='" + containerIDFile + '\'' +
- ", lxcConf=" + Arrays.toString(lxcConf) +
- ", links=" + Arrays.toString(links) +
- ", portBindings=" + portBindings +
- ", privileged=" + privileged +
- ", publishAllPorts=" + publishAllPorts +
- ", networkMode=" + networkMode +
- ", dns='" + dns + '\'' +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/main/java/com/github/dockerjava/client/command/InspectImageCmd.java b/src/main/java/com/github/dockerjava/client/command/InspectImageCmd.java
index 85df63b80..0343dc82e 100644
--- a/src/main/java/com/github/dockerjava/client/command/InspectImageCmd.java
+++ b/src/main/java/com/github/dockerjava/client/command/InspectImageCmd.java
@@ -7,7 +7,6 @@
import com.github.dockerjava.client.DockerException;
import com.github.dockerjava.client.NotFoundException;
-import com.github.dockerjava.client.model.ImageInspectResponse;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
@@ -16,7 +15,7 @@
/**
* Inspect the details of an image.
*/
-public class InspectImageCmd extends AbstrDockerCmd {
+public class InspectImageCmd extends AbstrDockerCmd {
private static final Logger LOGGER = LoggerFactory.getLogger(InspectImageCmd.class);
@@ -41,12 +40,12 @@ public String toString() {
return "inspect " + imageId;
}
- protected ImageInspectResponse impl() {
+ protected InspectImageResponse impl() {
WebResource webResource = baseResource.path(String.format("/images/%s/json", imageId));
try {
LOGGER.trace("GET: {}", webResource);
- return webResource.accept(MediaType.APPLICATION_JSON).get(ImageInspectResponse.class);
+ return webResource.accept(MediaType.APPLICATION_JSON).get(InspectImageResponse.class);
} catch (UniformInterfaceException exception) {
if (exception.getResponse().getStatus() == 404) {
throw new NotFoundException(String.format("No such image %s", imageId));
diff --git a/src/main/java/com/github/dockerjava/client/model/ImageInspectResponse.java b/src/main/java/com/github/dockerjava/client/command/InspectImageResponse.java
similarity index 69%
rename from src/main/java/com/github/dockerjava/client/model/ImageInspectResponse.java
rename to src/main/java/com/github/dockerjava/client/command/InspectImageResponse.java
index 64b872f37..9cc164fb0 100644
--- a/src/main/java/com/github/dockerjava/client/model/ImageInspectResponse.java
+++ b/src/main/java/com/github/dockerjava/client/command/InspectImageResponse.java
@@ -1,7 +1,9 @@
-package com.github.dockerjava.client.model;
+package com.github.dockerjava.client.command;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.dockerjava.client.model.ContainerConfig;
+import org.apache.commons.lang.builder.ToStringBuilder;
/**
*
@@ -9,35 +11,35 @@
*
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-public class ImageInspectResponse {
-
+public class InspectImageResponse {
+
@JsonProperty("Architecture")
private String arch;
-
+
@JsonProperty("Author")
private String author;
-
+
@JsonProperty("Comment")
private String comment;
-
+
@JsonProperty("Config")
private ContainerConfig config;
-
+
@JsonProperty("Container")
private String container;
-
+
@JsonProperty("ContainerConfig")
private ContainerConfig containerConfig;
-
+
@JsonProperty("Created")
private String created;
-
+
@JsonProperty("DockerVersion")
private String dockerVersion;
@JsonProperty("Id")
private String id;
-
+
@JsonProperty("Os")
private String os;
@@ -45,7 +47,7 @@ public class ImageInspectResponse {
private String parent;
@JsonProperty("Size")
- private long size;
+ private long size;
public String getId() {
return id;
@@ -95,21 +97,8 @@ public String getOs() {
return os;
}
- @Override
+ @Override
public String toString() {
- return "ImageInspectResponse{" +
- "id='" + id + '\'' +
- ", parent='" + parent + '\'' +
- ", created='" + created + '\'' +
- ", container='" + container + '\'' +
- ", containerConfig=" + containerConfig +
- ", size=" + size +
- ", dockerVersion='" + dockerVersion + '\'' +
- ", config=" + config +
- ", arch='" + arch + '\'' +
- ", comment='" + comment + '\'' +
- ", author='" + author + '\'' +
- ", os='" + os + '\'' +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/main/java/com/github/dockerjava/client/command/StartContainerCmd.java b/src/main/java/com/github/dockerjava/client/command/StartContainerCmd.java
index 49901e939..f657c8034 100644
--- a/src/main/java/com/github/dockerjava/client/command/StartContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/client/command/StartContainerCmd.java
@@ -3,16 +3,15 @@
import javax.ws.rs.core.MediaType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.dockerjava.client.model.*;
+import org.apache.commons.lang.builder.ToStringBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.dockerjava.client.DockerException;
import com.github.dockerjava.client.NotFoundException;
-import com.github.dockerjava.client.model.Bind;
-import com.github.dockerjava.client.model.Link;
-import com.github.dockerjava.client.model.LxcConf;
-import com.github.dockerjava.client.model.Ports;
-import com.github.dockerjava.client.model.StartContainerConfig;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
@@ -128,4 +127,109 @@ protected Void impl() throws DockerException {
return null;
}
+
+ /**
+ *
+ * @author Konstantin Pelykh (kpelykh@gmail.com)
+ *
+ */
+ private static class StartContainerConfig {
+
+ @JsonProperty("Binds")
+ private Binds binds = new Binds();
+
+ @JsonProperty("Links")
+ private Links links = new Links();
+
+ @JsonProperty("LxcConf")
+ private LxcConf[] lxcConf;
+
+ @JsonProperty("PortBindings")
+ private Ports portBindings;
+
+ @JsonProperty("PublishAllPorts")
+ private boolean publishAllPorts;
+
+ @JsonProperty("Privileged")
+ private boolean privileged;
+
+ @JsonProperty("Dns")
+ private String dns;
+
+ @JsonProperty("VolumesFrom")
+ private String volumesFrom;
+
+ @JsonIgnore
+ public Bind[] getBinds() {
+ return binds.getBinds();
+ }
+
+ @JsonIgnore
+ public void setBinds(Bind[] binds) {
+ this.binds = new Binds(binds);
+ }
+
+ @JsonIgnore
+ public Link[] getLinks() {
+ return links.getLinks();
+ }
+
+ @JsonIgnore
+ public void setLinks(Link[] links) {
+ this.links = new Links(links);
+ }
+
+ public LxcConf[] getLxcConf() {
+ return lxcConf;
+ }
+
+ public void setLxcConf(LxcConf[] lxcConf) {
+ this.lxcConf = lxcConf;
+ }
+
+ public Ports getPortBindings() {
+ return portBindings;
+ }
+
+ public void setPortBindings(Ports portBindings) {
+ this.portBindings = portBindings;
+ }
+
+ public boolean isPublishAllPorts() {
+ return publishAllPorts;
+ }
+
+ public void setPublishAllPorts(boolean publishAllPorts) {
+ this.publishAllPorts = publishAllPorts;
+ }
+
+ public boolean isPrivileged() {
+ return privileged;
+ }
+
+ public void setPrivileged(boolean privileged) {
+ this.privileged = privileged;
+ }
+
+ public String getDns() {
+ return dns;
+ }
+
+ public void setDns(String dns) {
+ this.dns = dns;
+ }
+
+ public String getVolumesFrom() {
+ return volumesFrom;
+ }
+
+ public void setVolumesFrom(String volumesFrom) {
+ this.volumesFrom = volumesFrom;
+ }
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this);
+ }
+ }
}
diff --git a/src/main/java/com/github/dockerjava/client/command/TopContainerCmd.java b/src/main/java/com/github/dockerjava/client/command/TopContainerCmd.java
index 8794a2d75..fde5f54eb 100644
--- a/src/main/java/com/github/dockerjava/client/command/TopContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/client/command/TopContainerCmd.java
@@ -8,7 +8,6 @@
import com.github.dockerjava.client.DockerException;
import com.github.dockerjava.client.NotFoundException;
-import com.github.dockerjava.client.model.ContainerTopResponse;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
@@ -18,7 +17,7 @@
* @author marcus
*
*/
-public class TopContainerCmd extends AbstrDockerCmd {
+public class TopContainerCmd extends AbstrDockerCmd {
private static final Logger LOGGER = LoggerFactory.getLogger(TopContainerCmd.class);
@@ -59,7 +58,7 @@ public String toString() {
.toString();
}
- protected ContainerTopResponse impl() throws DockerException {
+ protected TopContainerResponse impl() throws DockerException {
WebResource webResource = baseResource.path(String.format("/containers/%s/top", containerId));
if(!StringUtils.isEmpty(psArgs))
@@ -67,7 +66,7 @@ protected ContainerTopResponse impl() throws DockerException {
try {
LOGGER.trace("GET: {}", webResource);
- return webResource.accept(MediaType.APPLICATION_JSON).get(ContainerTopResponse.class);
+ return webResource.accept(MediaType.APPLICATION_JSON).get(TopContainerResponse.class);
} catch (UniformInterfaceException exception) {
if (exception.getResponse().getStatus() == 404) {
throw new NotFoundException(String.format("No such container %s", containerId));
diff --git a/src/main/java/com/github/dockerjava/client/model/ContainerTopResponse.java b/src/main/java/com/github/dockerjava/client/command/TopContainerResponse.java
similarity index 85%
rename from src/main/java/com/github/dockerjava/client/model/ContainerTopResponse.java
rename to src/main/java/com/github/dockerjava/client/command/TopContainerResponse.java
index 080bccc25..70701ff1f 100644
--- a/src/main/java/com/github/dockerjava/client/model/ContainerTopResponse.java
+++ b/src/main/java/com/github/dockerjava/client/command/TopContainerResponse.java
@@ -1,43 +1,43 @@
-package com.github.dockerjava.client.model;
+package com.github.dockerjava.client.command;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Joiner;
/**
- *
+ *
* @author marcus
- *
+ *
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-public class ContainerTopResponse {
+public class TopContainerResponse {
@JsonProperty("Titles")
private String[] titles;
@JsonProperty("Processes")
private String[][] processes;
-
+
public String[] getTitles() {
return titles;
}
-
+
public String[][] getProcesses() {
return processes;
}
-
+
@Override
public String toString() {
Joiner joiner = Joiner.on("; ").skipNulls();
-
+
StringBuffer buffer = new StringBuffer();
buffer.append("[");
for(String[] fields: processes) {
buffer.append("[" + joiner.join(fields) + "]");
}
buffer.append("]");
-
- return "ContainerTopResponse{" +
+
+ return "TopContainerResponse{" +
"titles=" + joiner.join(titles) +
", processes=" + buffer.toString() +
'}';
diff --git a/src/main/java/com/github/dockerjava/client/model/ChangeLog.java b/src/main/java/com/github/dockerjava/client/model/ChangeLog.java
index cc4c5ece8..840059691 100644
--- a/src/main/java/com/github/dockerjava/client/model/ChangeLog.java
+++ b/src/main/java/com/github/dockerjava/client/model/ChangeLog.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
/**
*
@@ -27,9 +28,6 @@ public int getKind() {
@Override
public String toString() {
- return "ChangeLog{" +
- "path='" + path + '\'' +
- ", kind=" + kind +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/main/java/com/github/dockerjava/client/model/CommitConfig.java b/src/main/java/com/github/dockerjava/client/model/CommitConfig.java
deleted file mode 100644
index 309570d92..000000000
--- a/src/main/java/com/github/dockerjava/client/model/CommitConfig.java
+++ /dev/null
@@ -1,201 +0,0 @@
-package com.github.dockerjava.client.model;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- *
- * @author Konstantin Pelykh (kpelykh@gmail.com)
- *
- */
-public class CommitConfig {
-
- @JsonProperty("AttachStdin")
- private boolean attachStdin;
-
- @JsonProperty("AttachStdout")
- private boolean attachStdout;
-
- @JsonProperty("AttachStderr")
- private boolean attachStderr;
-
- @JsonProperty("Cmd")
- private String[] cmd;
-
- @JsonProperty("DisableNetwork")
- private boolean disableNetwork;
-
- @JsonProperty("Env")
- private String[] env;
-
- @JsonProperty("ExposedPorts")
- private ExposedPorts exposedPorts;
-
- @JsonProperty("Hostname")
- private String hostname;
-
- @JsonProperty("Memory")
- private Integer memory;
-
- @JsonProperty("MemorySwap")
- private Integer memorySwap;
-
- @JsonProperty("OpenStdin")
- private boolean openStdin;
-
- @JsonProperty("PortSpecs")
- private String[] portSpecs;
-
- @JsonProperty("StdinOnce")
- private boolean stdinOnce;
-
- @JsonProperty("Tty")
- private boolean tty;
-
- @JsonProperty("User")
- private String user;
-
- @JsonProperty("Volumes")
- private Volumes volumes;
-
- @JsonProperty("WorkingDir")
- private String workingDir;
-
- public boolean isAttachStdin() {
- return attachStdin;
- }
-
- public void setAttachStdin(boolean attachStdin) {
- this.attachStdin = attachStdin;
- }
-
- public boolean isAttachStdout() {
- return attachStdout;
- }
-
- public void setAttachStdout(boolean attachStdout) {
- this.attachStdout = attachStdout;
- }
-
- public boolean isAttachStderr() {
- return attachStderr;
- }
-
- public void setAttachStderr(boolean attachStderr) {
- this.attachStderr = attachStderr;
- }
-
- public String[] getCmd() {
- return cmd;
- }
-
- public void setCmd(String[] cmd) {
- this.cmd = cmd;
- }
-
- public boolean isDisableNetwork() {
- return disableNetwork;
- }
-
- public void setDisableNetwork(boolean disableNetwork) {
- this.disableNetwork = disableNetwork;
- }
-
- public String[] getEnv() {
- return env;
- }
-
- public void setEnv(String[] env) {
- this.env = env;
- }
-
- public ExposedPorts getExposedPorts() {
- return exposedPorts;
- }
-
- public void setExposedPorts(ExposedPorts exposedPorts) {
- this.exposedPorts = exposedPorts;
- }
-
- public String getHostname() {
- return hostname;
- }
-
- public void setHostname(String hostname) {
- this.hostname = hostname;
- }
-
- public Integer getMemory() {
- return memory;
- }
-
- public void setMemory(Integer memory) {
- this.memory = memory;
- }
-
- public Integer getMemorySwap() {
- return memorySwap;
- }
-
- public void setMemorySwap(Integer memorySwap) {
- this.memorySwap = memorySwap;
- }
-
- public boolean isOpenStdin() {
- return openStdin;
- }
-
- public void setOpenStdin(boolean openStdin) {
- this.openStdin = openStdin;
- }
-
- public String[] getPortSpecs() {
- return portSpecs;
- }
-
- public void setPortSpecs(String[] portSpecs) {
- this.portSpecs = portSpecs;
- }
-
- public boolean isStdinOnce() {
- return stdinOnce;
- }
-
- public void setStdinOnce(boolean stdinOnce) {
- this.stdinOnce = stdinOnce;
- }
-
- public boolean isTty() {
- return tty;
- }
-
- public void setTty(boolean tty) {
- this.tty = tty;
- }
-
- public String getUser() {
- return user;
- }
-
- public void setUser(String user) {
- this.user = user;
- }
-
- public Volumes getVolumes() {
- return volumes;
- }
-
- public void setVolumes(Volumes volumes) {
- this.volumes = volumes;
- }
-
- public String getWorkingDir() {
- return workingDir;
- }
-
- public void setWorkingDir(String workingDir) {
- this.workingDir = workingDir;
- }
-
-
-
-}
diff --git a/src/main/java/com/github/dockerjava/client/model/Container.java b/src/main/java/com/github/dockerjava/client/model/Container.java
index 11d79e671..d323c86df 100644
--- a/src/main/java/com/github/dockerjava/client/model/Container.java
+++ b/src/main/java/com/github/dockerjava/client/model/Container.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
import java.util.Arrays;
@@ -28,7 +29,7 @@ public class Container {
@JsonProperty("Names")
private String[] names;
- @JsonProperty("Ports")
+ @JsonProperty("Ports")
public Port[] ports;
@JsonProperty("Status")
@@ -65,17 +66,9 @@ public String[] getNames() {
@Override
public String toString() {
- return "Container{" +
- "id='" + id + '\'' +
- ", command='" + command + '\'' +
- ", image='" + image + '\'' +
- ", created=" + created +
- ", status='" + status + '\'' +
- ", ports=" + Arrays.toString(ports) +
- ", names=" + Arrays.toString(names) +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
-
+
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Port {
@@ -87,34 +80,29 @@ public static class Port {
@JsonProperty("PublicPort")
private Integer publicPort;
-
+
@JsonProperty("Type")
private String type;
-
+
public String getIp() {
return ip;
}
-
+
public Integer getPrivatePort() {
return privatePort;
}
-
+
public Integer getPublicPort() {
return publicPort;
}
-
+
public String getType() {
return type;
}
-
+
@Override
public String toString() {
- return "Port{" +
- "IP='" + ip + '\'' +
- ", privatePort='" + privatePort + '\'' +
- ", publicPort='" + publicPort + '\'' +
- ", type='" + type + '\'' +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
}
diff --git a/src/main/java/com/github/dockerjava/client/model/ContainerConfig.java b/src/main/java/com/github/dockerjava/client/model/ContainerConfig.java
index 7389169bc..6bbb6eef4 100644
--- a/src/main/java/com/github/dockerjava/client/model/ContainerConfig.java
+++ b/src/main/java/com/github/dockerjava/client/model/ContainerConfig.java
@@ -6,11 +6,12 @@
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
/**
- *
+ *
* @author Konstantin Pelykh (kpelykh@gmail.com)
- *
+ *
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class ContainerConfig {
@@ -179,19 +180,6 @@ public int[] getOnBuild() {
@Override
public String toString() {
- return "ContainerConfig{" + "hostName='" + hostName + '\''
- + ", portSpecs=" + Arrays.toString(portSpecs) + ", user='"
- + user + '\'' + ", tty=" + tty + ", stdinOpen=" + stdinOpen
- + ", stdInOnce=" + stdInOnce + ", memoryLimit=" + memoryLimit
- + ", memorySwap=" + memorySwap + ", cpuShares=" + cpuShares
- + ", attachStdin=" + attachStdin + ", attachStdout="
- + attachStdout + ", attachStderr=" + attachStderr + ", env="
- + Arrays.toString(env) + ", cmd=" + Arrays.toString(cmd)
- + ", image='" + image + '\''
- + ", volumes=" + volumes
- + '\'' + ", entrypoint=" + Arrays.toString(entrypoint)
- + ", networkDisabled=" + networkDisabled + ", workingDir='" + workingDir + '\''
- + ", domainName='" + domainName + '\'' + ", onBuild='"
- + Arrays.toString(onBuild) + '\'' + '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/main/java/com/github/dockerjava/client/model/CopyConfig.java b/src/main/java/com/github/dockerjava/client/model/CopyConfig.java
deleted file mode 100755
index 423cc3363..000000000
--- a/src/main/java/com/github/dockerjava/client/model/CopyConfig.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.github.dockerjava.client.model;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- * Configuration object for copy command.
- * @author Victor Lyuboslavsky
- */
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class CopyConfig {
-
- @JsonProperty("HostPath")
- private String hostPath;
-
- @JsonProperty("Resource")
- private String resource;
-
- /**
- * Constructor.
- */
- public CopyConfig() {
- hostPath = ".";
- }
-
- /**
- * Retrieves the 'resource' variable.
- * @return the 'resource' variable value
- */
- public String getResource() {
- return resource;
- }
-
- /**
- * Sets the 'resource' variable.
- * @param resource the new 'resource' variable value to set
- */
- public void setResource(String resource) {
- this.resource = resource;
- }
-
- /**
- * Retrieves the 'hostPath' variable.
- * @return the 'hostPath' variable value
- */
- public String getHostPath() {
- return hostPath;
- }
-
- /**
- * Sets the 'hostPath' variable.
- * @param hostPath the new 'hostPath' variable value to set
- */
- public void setHostPath(String hostPath) {
- this.hostPath = hostPath;
- }
-
- @Override
- public String toString() {
- return "{\"HostPath\":\"" + hostPath + "\", \"Resource\":\"" + resource + "\"}";
- }
-
-}
diff --git a/src/main/java/com/github/dockerjava/client/model/CreateContainerConfig.java b/src/main/java/com/github/dockerjava/client/model/CreateContainerConfig.java
deleted file mode 100644
index 2ba9c9eb2..000000000
--- a/src/main/java/com/github/dockerjava/client/model/CreateContainerConfig.java
+++ /dev/null
@@ -1,275 +0,0 @@
-package com.github.dockerjava.client.model;
-
-
-import java.util.Arrays;
-import java.util.Map;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- *
- * @author Konstantin Pelykh (kpelykh@gmail.com)
- *
- * "Hostname":"",
- "User":"",
- "Memory":0,
- "MemorySwap":0,
- "AttachStdin":false,
- "AttachStdout":true,
- "AttachStderr":true,
- "PortSpecs":null,
- "Tty":false,
- "OpenStdin":false,
- "StdinOnce":false,
- "Env":null,
- "Cmd":[
- "date"
- ],
- "Dns":null,
- "Image":"base",
- "Volumes":{
- "/tmp": {}
- },
- "VolumesFrom":"",
- "WorkingDir":"",
- "DisableNetwork": false,
- "ExposedPorts":{
- "22/tcp": {}
- }
- *
- *
- */
-public class CreateContainerConfig {
-
- @JsonProperty("Hostname") private String hostName = "";
- @JsonProperty("User") private String user = "";
- @JsonProperty("Memory") private long memoryLimit = 0;
- @JsonProperty("MemorySwap") private long memorySwap = 0;
- @JsonProperty("AttachStdin") private boolean attachStdin = false;
- @JsonProperty("AttachStdout") private boolean attachStdout = false;
- @JsonProperty("AttachStderr") private boolean attachStderr = false;
- @JsonProperty("PortSpecs") private String[] portSpecs;
- @JsonProperty("Tty") private boolean tty = false;
- @JsonProperty("OpenStdin") private boolean stdinOpen = false;
- @JsonProperty("StdinOnce") private boolean stdInOnce = false;
- @JsonProperty("Env") private String[] env;
- @JsonProperty("Cmd") private String[] cmd;
- @JsonProperty("Dns") private String[] dns;
- @JsonProperty("Image") private String image;
- @JsonProperty("Volumes") private Volumes volumes = new Volumes();
- @JsonProperty("VolumesFrom") private String[] volumesFrom = new String[]{};
- @JsonProperty("WorkingDir") private String workingDir = "";
- @JsonProperty("DisableNetwork") private boolean disableNetwork = false;
- @JsonProperty("ExposedPorts") private ExposedPorts exposedPorts = new ExposedPorts();
-
- public CreateContainerConfig withExposedPorts(ExposedPort[] exposedPorts) {
- this.exposedPorts = new ExposedPorts(exposedPorts);
- return this;
- }
-
- @JsonIgnore
- public ExposedPort[] getExposedPorts() {
- return exposedPorts.getExposedPorts();
- }
-
-
- public boolean isDisableNetwork() {
- return disableNetwork;
- }
-
- public String getWorkingDir() { return workingDir; }
-
- public CreateContainerConfig withWorkingDir(String workingDir) {
- this.workingDir = workingDir;
- return this;
- }
-
-
- public String getHostName() {
- return hostName;
- }
-
- public CreateContainerConfig withDisableNetwork(boolean disableNetwork) {
- this.disableNetwork = disableNetwork;
- return this;
- }
-
- public CreateContainerConfig withHostName(String hostName) {
- this.hostName = hostName;
- return this;
- }
-
- public String[] getPortSpecs() {
- return portSpecs;
- }
-
- public CreateContainerConfig withPortSpecs(String[] portSpecs) {
- this.portSpecs = portSpecs;
- return this;
- }
-
- public String getUser() {
- return user;
- }
-
- public CreateContainerConfig withUser(String user) {
- this.user = user;
- return this;
- }
-
- public boolean isTty() {
- return tty;
- }
-
- public CreateContainerConfig withTty(boolean tty) {
- this.tty = tty;
- return this;
- }
-
- public boolean isStdinOpen() {
- return stdinOpen;
- }
-
- public CreateContainerConfig withStdinOpen(boolean stdinOpen) {
- this.stdinOpen = stdinOpen;
- return this;
- }
-
- public boolean isStdInOnce() {
- return stdInOnce;
- }
-
- public CreateContainerConfig withStdInOnce(boolean stdInOnce) {
- this.stdInOnce = stdInOnce;
- return this;
- }
-
- public long getMemoryLimit() {
- return memoryLimit;
- }
-
- public CreateContainerConfig withMemoryLimit(long memoryLimit) {
- this.memoryLimit = memoryLimit;
- return this;
- }
-
- public long getMemorySwap() {
- return memorySwap;
- }
-
- public CreateContainerConfig withMemorySwap(long memorySwap) {
- this.memorySwap = memorySwap;
- return this;
- }
-
-
- public boolean isAttachStdin() {
- return attachStdin;
- }
-
- public CreateContainerConfig withAttachStdin(boolean attachStdin) {
- this.attachStdin = attachStdin;
- return this;
- }
-
- public boolean isAttachStdout() {
- return attachStdout;
- }
-
- public CreateContainerConfig withAttachStdout(boolean attachStdout) {
- this.attachStdout = attachStdout;
- return this;
- }
-
- public boolean isAttachStderr() {
- return attachStderr;
- }
-
- public CreateContainerConfig withAttachStderr(boolean attachStderr) {
- this.attachStderr = attachStderr;
- return this;
- }
-
- public String[] getEnv() {
- return env;
- }
-
- public CreateContainerConfig withEnv(String[] env) {
- this.env = env;
- return this;
- }
-
- public String[] getCmd() {
- return cmd;
- }
-
- public CreateContainerConfig withCmd(String[] cmd) {
- this.cmd = cmd;
- return this;
- }
-
- public String[] getDns() {
- return dns;
- }
-
- public CreateContainerConfig withDns(String[] dns) {
- this.dns = dns;
- return this;
- }
-
- public String getImage() {
- return image;
- }
-
- public CreateContainerConfig withImage(String image) {
- this.image = image;
- return this;
- }
-
- @JsonIgnore
- public Volume[] getVolumes() {
- return volumes.getVolumes();
- }
-
- public CreateContainerConfig withVolumes(Volume[] volumes) {
- this.volumes = new Volumes(volumes);
- return this;
- }
-
- public String[] getVolumesFrom() {
- return volumesFrom;
- }
-
- public CreateContainerConfig withVolumesFrom(String[] volumesFrom) {
- this.volumesFrom = volumesFrom;
- return this;
- }
-
- @Override
- public String toString() {
- return "CreateContainerConfig{" +
- "hostName='" + hostName + '\'' +
- ", portSpecs=" + Arrays.toString(portSpecs) +
- ", user='" + user + '\'' +
- ", tty=" + tty +
- ", stdinOpen=" + stdinOpen +
- ", stdInOnce=" + stdInOnce +
- ", memoryLimit=" + memoryLimit +
- ", memorySwap=" + memorySwap +
- ", attachStdin=" + attachStdin +
- ", attachStdout=" + attachStdout +
- ", attachStderr=" + attachStderr +
- ", env=" + Arrays.toString(env) +
- ", cmd=" + Arrays.toString(cmd) +
- ", dns=" + Arrays.toString(dns) +
- ", image='" + image + '\'' +
- ", volumes=" + volumes +
- ", volumesFrom='" + volumesFrom + '\'' +
- ", disableNetwork=" + disableNetwork +
- ", workingDir='" + workingDir + '\'' +
- '}';
- }
-
-
-}
diff --git a/src/main/java/com/github/dockerjava/client/model/DriverStatus.java b/src/main/java/com/github/dockerjava/client/model/DriverStatus.java
index 187e35d59..4c2efe71d 100644
--- a/src/main/java/com/github/dockerjava/client/model/DriverStatus.java
+++ b/src/main/java/com/github/dockerjava/client/model/DriverStatus.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
/**
* Created by ben on 12/12/13.
@@ -25,9 +26,6 @@ public int getDirs() {
@Override
public String toString() {
- return "DriverStatus{" +
- "rootDir='" + rootDir + '\'' +
- ", dirs=" + dirs +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/main/java/com/github/dockerjava/client/model/HostConfig.java b/src/main/java/com/github/dockerjava/client/model/HostConfig.java
deleted file mode 100644
index be78c1bd8..000000000
--- a/src/main/java/com/github/dockerjava/client/model/HostConfig.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.github.dockerjava.client.model;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-
-import java.util.Arrays;
-
-/**
- *
- * @author Konstantin Pelykh (kpelykh@gmail.com)
- *
- */
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class HostConfig {
-
- @JsonProperty("Binds")
- public String[] binds;
-
- @JsonProperty("LxcConf")
- public LxcConf[] lxcConf;
-
- @JsonProperty("PortBindings")
- public Ports portBindings;
-
- @JsonProperty("PublishAllPorts")
- public boolean publishAllPorts;
-
- @JsonProperty("Privileged")
- public boolean privileged;
-
- @JsonProperty("Dns")
- public String dns;
-
- @JsonProperty("VolumesFrom")
- public String volumesFrom;
-
- @JsonProperty("ContainerIDFile")
- public String containerIDFile;
-
- @JsonProperty("DnsSearch")
- public String dnsSearch;
-
- @JsonProperty("Links")
- public String[] links;
-
- @JsonProperty("NetworkMode")
- public String networkMode;
-
-
-
- @Override
- public String toString() {
- return "HostConfig{" +
- "binds=" + Arrays.toString(binds) +
- ", containerIDFile='" + containerIDFile + '\'' +
- ", lxcConf=" + Arrays.toString(lxcConf) +
- ", links=" + Arrays.toString(links) +
- ", portBindings=" + portBindings +
- ", privileged=" + privileged +
- ", publishAllPorts=" + publishAllPorts +
- ", networkMode=" + networkMode +
- ", dns='" + dns + '\'' +
- '}';
- }
-
-}
diff --git a/src/main/java/com/github/dockerjava/client/model/Image.java b/src/main/java/com/github/dockerjava/client/model/Image.java
index 2d6471eb3..a75ebe55d 100644
--- a/src/main/java/com/github/dockerjava/client/model/Image.java
+++ b/src/main/java/com/github/dockerjava/client/model/Image.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
import java.util.Arrays;
@@ -57,13 +58,6 @@ public long getVirtualSize() {
@Override
public String toString() {
- return "Image{" +
- "virtualSize=" + virtualSize +
- ", id='" + id + '\'' +
- ", repoTags=" + Arrays.toString(repoTags) +
- ", parentId='" + parentId + '\'' +
- ", created=" + created +
- ", size=" + size +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/main/java/com/github/dockerjava/client/model/Info.java b/src/main/java/com/github/dockerjava/client/model/Info.java
index 442631d32..6e8386e66 100644
--- a/src/main/java/com/github/dockerjava/client/model/Info.java
+++ b/src/main/java/com/github/dockerjava/client/model/Info.java
@@ -5,14 +5,15 @@
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import org.apache.commons.lang.builder.ToStringBuilder;
import java.util.Arrays;
import java.util.List;
/**
- *
+ *
* @author Konstantin Pelykh (kpelykh@gmail.com)
- *
+ *
*/
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
@JsonInclude(Include.NON_NULL)
@@ -77,7 +78,7 @@ public boolean isDebug() {
public int getContainers() {
return containers;
}
-
+
public String getDriver() {
return driver;
}
@@ -138,17 +139,8 @@ public String getExecutionDriver() {
return executionDriver;
}
- @Override
- public String toString() {
- return "Info{" + "debug=" + debug + ", containers=" + containers
- + ", driver='" + driver + '\'' + ", driverStatuses="
- + driverStatuses + ", images=" + images + ", IPv4Forwarding='"
- + IPv4Forwarding + '\'' + ", IndexServerAddress='"
- + IndexServerAddress + '\'' + ", initPath='" + initPath + '\''
- + ", initSha1='" + initSha1 + '\'' + ", kernelVersion='"
- + kernelVersion + '\'' + ", sockets='" + Arrays.asList(sockets) + '\''
- + ", memoryLimit=" + memoryLimit + ", nEventListener="
- + nEventListener + ", NFd=" + NFd + ", NGoroutines="
- + NGoroutines + ", swapLimit=" + swapLimit + '}';
- }
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this);
+ }
}
diff --git a/src/main/java/com/github/dockerjava/client/model/Ports.java b/src/main/java/com/github/dockerjava/client/model/Ports.java
index f4519a8d7..735242ac2 100644
--- a/src/main/java/com/github/dockerjava/client/model/Ports.java
+++ b/src/main/java/com/github/dockerjava/client/model/Ports.java
@@ -20,6 +20,7 @@
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.node.NullNode;
+import org.apache.commons.lang.builder.ToStringBuilder;
@JsonDeserialize(using = Ports.Deserializer.class)
@JsonSerialize(using = Ports.Serializer.class)
@@ -28,8 +29,8 @@ public class Ports {
private final Map ports = new HashMap();
public Ports() { }
-
- public Ports(ExposedPort exposedPort, Binding host) {
+
+ public Ports(ExposedPort exposedPort, Binding host) {
bind(exposedPort, host);
}
@@ -45,7 +46,7 @@ public String toString(){
public Map getBindings(){
return ports;
}
-
+
public static Binding Binding(String hostIp, int hostPort) {
return new Binding(hostIp, hostPort);
}
@@ -65,11 +66,11 @@ public Binding(String hostIp, int hostPort) {
this.hostIp = hostIp;
this.hostPort = hostPort;
}
-
+
public Binding(int hostPort) {
this("", hostPort);
}
-
+
public String getHostIp() {
return hostIp;
}
@@ -78,15 +79,11 @@ public int getHostPort() {
return hostPort;
}
-
@Override
public String toString() {
- return "PortBinding{" +
- "hostIp='" + hostIp + '\'' +
- ", hostPort='" + hostPort + '\'' +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
-
+
@Override
public boolean equals(Object obj) {
if(obj instanceof Binding) {
@@ -98,7 +95,7 @@ public boolean equals(Object obj) {
return super.equals(obj);
}
}
-
+
public static class Deserializer extends JsonDeserializer {
@Override
@@ -110,7 +107,7 @@ public Ports deserialize(JsonParser jsonParser, DeserializationContext deseriali
for (Iterator> it = node.fields(); it.hasNext();) {
Map.Entry field = it.next();
- if (!field.getValue().equals(NullNode.getInstance())) {
+ if (!field.getValue().equals(NullNode.getInstance())) {
String hostIp = field.getValue().get(0).get("HostIp").textValue();
int hostPort = field.getValue().get(0).get("HostPort").asInt();
out.bind(ExposedPort.parse(field.getKey()), new Binding(hostIp, hostPort));
diff --git a/src/main/java/com/github/dockerjava/client/model/SearchItem.java b/src/main/java/com/github/dockerjava/client/model/SearchItem.java
index 76dadab32..18c680bf6 100644
--- a/src/main/java/com/github/dockerjava/client/model/SearchItem.java
+++ b/src/main/java/com/github/dockerjava/client/model/SearchItem.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
/**
*
@@ -48,7 +49,6 @@ public String getDescription() {
@Override
public String toString() {
- return "name='" + name + '\'' +
- ", description='" + description + '\'' + '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/main/java/com/github/dockerjava/client/model/StartContainerConfig.java b/src/main/java/com/github/dockerjava/client/model/StartContainerConfig.java
deleted file mode 100644
index ae8088f92..000000000
--- a/src/main/java/com/github/dockerjava/client/model/StartContainerConfig.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package com.github.dockerjava.client.model;
-
-import java.util.Arrays;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- *
- * @author Konstantin Pelykh (kpelykh@gmail.com)
- *
- */
-public class StartContainerConfig {
-
- @JsonProperty("Binds")
- private Binds binds = new Binds();
-
- @JsonProperty("Links")
- private Links links = new Links();
-
- @JsonProperty("LxcConf")
- private LxcConf[] lxcConf;
-
- @JsonProperty("PortBindings")
- private Ports portBindings;
-
- @JsonProperty("PublishAllPorts")
- private boolean publishAllPorts;
-
- @JsonProperty("Privileged")
- private boolean privileged;
-
- @JsonProperty("Dns")
- private String dns;
-
- @JsonProperty("VolumesFrom")
- private String volumesFrom;
-
- @JsonIgnore
- public Bind[] getBinds() {
- return binds.getBinds();
- }
-
- @JsonIgnore
- public void setBinds(Bind[] binds) {
- this.binds = new Binds(binds);
- }
-
- @JsonIgnore
- public Link[] getLinks() {
- return links.getLinks();
- }
-
- @JsonIgnore
- public void setLinks(Link[] links) {
- this.links = new Links(links);
- }
-
- public LxcConf[] getLxcConf() {
- return lxcConf;
- }
-
- public void setLxcConf(LxcConf[] lxcConf) {
- this.lxcConf = lxcConf;
- }
-
- public Ports getPortBindings() {
- return portBindings;
- }
-
- public void setPortBindings(Ports portBindings) {
- this.portBindings = portBindings;
- }
-
- public boolean isPublishAllPorts() {
- return publishAllPorts;
- }
-
- public void setPublishAllPorts(boolean publishAllPorts) {
- this.publishAllPorts = publishAllPorts;
- }
-
- public boolean isPrivileged() {
- return privileged;
- }
-
- public void setPrivileged(boolean privileged) {
- this.privileged = privileged;
- }
-
- public String getDns() {
- return dns;
- }
-
- public void setDns(String dns) {
- this.dns = dns;
- }
-
- public String getVolumesFrom() {
- return volumesFrom;
- }
-
- public void setVolumesFrom(String volumesFrom) {
- this.volumesFrom = volumesFrom;
- }
-
- @Override
- public String toString() {
- return "StartContainerConfig{" +
- "binds=" + binds +
- ", lxcConf=" + Arrays.toString(lxcConf) +
- ", portBindings=" + portBindings +
- ", privileged=" + privileged +
- ", publishAllPorts=" + publishAllPorts +
- ", dns='" + dns + '\'' +
- '}';
- }
-}
-
diff --git a/src/main/java/com/github/dockerjava/client/model/Version.java b/src/main/java/com/github/dockerjava/client/model/Version.java
index a01d6c61d..8163802bf 100644
--- a/src/main/java/com/github/dockerjava/client/model/Version.java
+++ b/src/main/java/com/github/dockerjava/client/model/Version.java
@@ -2,6 +2,7 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang.builder.ToStringBuilder;
/**
*
@@ -22,7 +23,7 @@ public class Version {
@JsonProperty("GoVersion")
private String goVersion;
-
+
@JsonProperty("KernelVersion")
private String kernelVersion;
@@ -62,14 +63,6 @@ public String getApiVersion() {
@Override
public String toString() {
- return "Version{" +
- "version='" + version + '\'' +
- ", gitCommit='" + gitCommit + '\'' +
- ", goVersion='" + goVersion + '\'' +
- ", kernelVersion='" + kernelVersion + '\'' +
- ", arch='" + arch + '\'' +
- ", operatingSystem='" + operatingSystem + '\'' +
- ", apiVersion='" + apiVersion + '\'' +
- '}';
+ return ToStringBuilder.reflectionToString(this);
}
}
diff --git a/src/test/java/com/github/dockerjava/client/DockerClientTest.java b/src/test/java/com/github/dockerjava/client/DockerClientTest.java
index 79f651c34..9abac0b47 100644
--- a/src/test/java/com/github/dockerjava/client/DockerClientTest.java
+++ b/src/test/java/com/github/dockerjava/client/DockerClientTest.java
@@ -5,6 +5,7 @@
import java.lang.reflect.Method;
+import com.github.dockerjava.client.command.CreateContainerResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.ITestResult;
@@ -14,12 +15,9 @@
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
-import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-
/**
* Unit test for DockerClient.
- *
+ *
* @author Konstantin Pelykh (kpelykh@gmail.com)
*/
public class DockerClientTest extends AbstractDockerClientTest {
@@ -45,7 +43,7 @@ public void afterMethod(ITestResult result) {
super.afterMethod(result);
}
-
+
@Test
public void testRunShlex() throws DockerException {
@@ -59,7 +57,7 @@ public void testRunShlex() throws DockerException {
for (String command : commands) {
LOG.info("Running command: [{}]", command);
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd(commands).exec();
dockerClient.startContainerCmd(container.getId());
tmpContainers.add(container.getId());
@@ -67,6 +65,6 @@ public void testRunShlex() throws DockerException {
assertThat(exitcode, equalTo(0));
}
}
-
-
-}
\ No newline at end of file
+
+
+}
diff --git a/src/test/java/com/github/dockerjava/client/command/AuthCmdTest.java b/src/test/java/com/github/dockerjava/client/command/AuthCmdTest.java
index 4ccac6638..608d84535 100644
--- a/src/test/java/com/github/dockerjava/client/command/AuthCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/AuthCmdTest.java
@@ -1,6 +1,7 @@
package com.github.dockerjava.client.command;
import com.github.dockerjava.client.AbstractDockerClientTest;
+import com.github.dockerjava.client.DockerClient;
import com.github.dockerjava.client.DockerException;
import com.sun.jersey.api.client.UniformInterfaceException;
@@ -42,8 +43,8 @@ public void testAuth() throws Exception {
public void testAuthInvalid() throws Exception {
System.setProperty("docker.io.password", "garbage");
try {
- dockerClient.authCmd().exec();
- fail();
+ new DockerClient().authCmd().exec();
+ fail("Expected a DockerException caused by a bad password.");
} catch (DockerException e) {
assertThat(e.getCause(), Matchers.instanceOf(UniformInterfaceException.class));
assertEquals(((UniformInterfaceException) e.getCause()).getResponse().getStatus(), 401);
diff --git a/src/test/java/com/github/dockerjava/client/command/BuildImageCmdTest.java b/src/test/java/com/github/dockerjava/client/command/BuildImageCmdTest.java
index 428604277..17934c062 100644
--- a/src/test/java/com/github/dockerjava/client/command/BuildImageCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/BuildImageCmdTest.java
@@ -12,8 +12,6 @@
import java.io.IOException;
import java.io.StringWriter;
import java.lang.reflect.Method;
-import java.net.URI;
-import java.net.URISyntaxException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.LineIterator;
@@ -27,9 +25,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.ContainerInspectResponse;
-import com.github.dockerjava.client.model.ImageInspectResponse;
import com.sun.jersey.api.client.ClientResponse;
public class BuildImageCmdTest extends AbstractDockerClientTest {
@@ -82,13 +77,13 @@ public void testNginxDockerfileBuilder() throws DockerException,
String imageId = StringUtils.substringBetween(fullLog,
"Successfully built ", "\\n\"}").trim();
- ImageInspectResponse imageInspectResponse = dockerClient
+ InspectImageResponse inspectImageResponse = dockerClient
.inspectImageCmd(imageId).exec();
- assertThat(imageInspectResponse, not(nullValue()));
- LOG.info("Image Inspect: {}", imageInspectResponse.toString());
- tmpImgs.add(imageInspectResponse.getId());
+ assertThat(inspectImageResponse, not(nullValue()));
+ LOG.info("Image Inspect: {}", inspectImageResponse.toString());
+ tmpImgs.add(inspectImageResponse.getId());
- assertThat(imageInspectResponse.getAuthor(),
+ assertThat(inspectImageResponse.getAuthor(),
equalTo("Guillaume J. Charmes \"guillaume@dotcloud.com\""));
}
@@ -115,7 +110,7 @@ public void testDockerBuilderAddFolder() throws DockerException,
dockerfileBuild(baseDir, "Successfully executed testAddFolder.sh");
}
-
+
private String dockerfileBuild(File baseDir, String expectedText)
throws DockerException, IOException {
@@ -143,7 +138,7 @@ private String dockerfileBuild(File baseDir, String expectedText)
"Successfully built ", "\\n\"}").trim();
// Create container based on image
- ContainerCreateResponse container = dockerClient.createContainerCmd(
+ CreateContainerResponse container = dockerClient.createContainerCmd(
imageId).exec();
LOG.info("Created container: {}", container.toString());
@@ -162,8 +157,8 @@ private String dockerfileBuild(File baseDir, String expectedText)
return container.getId();
}
-
-
+
+
private ClientResponse logContainer(String containerId) {
return dockerClient.logContainerCmd(containerId).withStdErr().withStdOut().exec();
}
@@ -196,28 +191,28 @@ public void testNetCatDockerfileBuilder() throws DockerException,
String imageId = StringUtils.substringBetween(fullLog,
"Successfully built ", "\\n\"}").trim();
- ImageInspectResponse imageInspectResponse = dockerClient
+ InspectImageResponse inspectImageResponse = dockerClient
.inspectImageCmd(imageId).exec();
- assertThat(imageInspectResponse, not(nullValue()));
- assertThat(imageInspectResponse.getId(), not(nullValue()));
- LOG.info("Image Inspect: {}", imageInspectResponse.toString());
- tmpImgs.add(imageInspectResponse.getId());
+ assertThat(inspectImageResponse, not(nullValue()));
+ assertThat(inspectImageResponse.getId(), not(nullValue()));
+ LOG.info("Image Inspect: {}", inspectImageResponse.toString());
+ tmpImgs.add(inspectImageResponse.getId());
- ContainerCreateResponse container = dockerClient.createContainerCmd(
- imageInspectResponse.getId()).exec();
+ CreateContainerResponse container = dockerClient.createContainerCmd(
+ inspectImageResponse.getId()).exec();
assertThat(container.getId(), not(isEmptyString()));
dockerClient.startContainerCmd(container.getId()).exec();
tmpContainers.add(container.getId());
- ContainerInspectResponse containerInspectResponse = dockerClient
+ InspectContainerResponse inspectContainerResponse = dockerClient
.inspectContainerCmd(container.getId()).exec();
- assertThat(containerInspectResponse.getId(), notNullValue());
- assertThat(containerInspectResponse.getNetworkSettings().getPorts(),
+ assertThat(inspectContainerResponse.getId(), notNullValue());
+ assertThat(inspectContainerResponse.getNetworkSettings().getPorts(),
notNullValue());
// No use as such if not running on the server
-// for (Ports.Port p : containerInspectResponse.getNetworkSettings().getPorts().getAllPorts()) {
+// for (Ports.Port p : inspectContainerResponse.getNetworkSettings().getPorts().getAllPorts()) {
// int port = Integer.valueOf(p.getHostPort());
// LOG.info("Checking port {} is open", port);
// assertThat(available(port), is(false));
@@ -225,7 +220,7 @@ public void testNetCatDockerfileBuilder() throws DockerException,
dockerClient.stopContainerCmd(container.getId()).withTimeout(0).exec();
}
-
+
@Test
public void testAddAndCopySubstitution () throws DockerException, IOException {
File baseDir = new File(Thread.currentThread().getContextClassLoader()
@@ -233,4 +228,4 @@ public void testAddAndCopySubstitution () throws DockerException, IOException {
dockerfileBuild(baseDir, "testENVSubstitution successfully completed");
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/com/github/dockerjava/client/command/CommitCmdTest.java b/src/test/java/com/github/dockerjava/client/command/CommitCmdTest.java
index 2190b3b86..85bc6227f 100644
--- a/src/test/java/com/github/dockerjava/client/command/CommitCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/CommitCmdTest.java
@@ -18,8 +18,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.ImageInspectResponse;
public class CommitCmdTest extends AbstractDockerClientTest {
@@ -27,7 +25,7 @@ public class CommitCmdTest extends AbstractDockerClientTest {
public void beforeTest() throws DockerException {
super.beforeTest();
}
-
+
@AfterTest
public void afterTest() {
super.afterTest();
@@ -42,11 +40,11 @@ public void beforeMethod(Method method) {
public void afterMethod(ITestResult result) {
super.afterMethod(result);
}
-
+
@Test
public void commit() throws DockerException {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("touch", "/test").exec();
LOG.info("Created container: {}", container.toString());
@@ -59,18 +57,18 @@ public void commit() throws DockerException {
.commitCmd(container.getId()).exec();
tmpImgs.add(imageId);
- ImageInspectResponse imageInspectResponse = dockerClient
+ InspectImageResponse inspectImageResponse = dockerClient
.inspectImageCmd(imageId).exec();
- LOG.info("Image Inspect: {}", imageInspectResponse.toString());
+ LOG.info("Image Inspect: {}", inspectImageResponse.toString());
- assertThat(imageInspectResponse,
+ assertThat(inspectImageResponse,
hasField("container", startsWith(container.getId())));
- assertThat(imageInspectResponse.getContainerConfig().getImage(),
+ assertThat(inspectImageResponse.getContainerConfig().getImage(),
equalTo("busybox"));
- ImageInspectResponse busyboxImg = dockerClient.inspectImageCmd("busybox").exec();
+ InspectImageResponse busyboxImg = dockerClient.inspectImageCmd("busybox").exec();
- assertThat(imageInspectResponse.getParent(),
+ assertThat(inspectImageResponse.getParent(),
equalTo(busyboxImg.getId()));
}
diff --git a/src/test/java/com/github/dockerjava/client/command/ContainerDiffCmdTest.java b/src/test/java/com/github/dockerjava/client/command/ContainerDiffCmdTest.java
index 697c08c09..078d63823 100644
--- a/src/test/java/com/github/dockerjava/client/command/ContainerDiffCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/ContainerDiffCmdTest.java
@@ -20,7 +20,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
import com.github.dockerjava.client.model.ChangeLog;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
public class ContainerDiffCmdTest extends AbstractDockerClientTest {
@@ -46,7 +45,7 @@ public void afterMethod(ITestResult result) {
@Test
public void testDiff() throws DockerException {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("touch", "/test" ).exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
diff --git a/src/test/java/com/github/dockerjava/client/command/CopyFileFromContainerCmdTest.java b/src/test/java/com/github/dockerjava/client/command/CopyFileFromContainerCmdTest.java
new file mode 100644
index 000000000..4ef739887
--- /dev/null
+++ b/src/test/java/com/github/dockerjava/client/command/CopyFileFromContainerCmdTest.java
@@ -0,0 +1,52 @@
+package com.github.dockerjava.client.command;
+
+import com.github.dockerjava.client.AbstractDockerClientTest;
+import com.sun.jersey.api.client.ClientResponse;
+import org.testng.ITestResult;
+import org.testng.annotations.*;
+
+import java.lang.reflect.Method;
+
+import static org.hamcrest.Matchers.*;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+public class CopyFileFromContainerCmdTest extends AbstractDockerClientTest {
+
+ @BeforeTest
+ public void beforeTest() {
+ super.beforeTest();
+ }
+
+ @AfterTest
+ public void afterTest() {
+ super.afterTest();
+ }
+
+ @BeforeMethod
+ public void beforeMethod(Method method) {
+ super.beforeMethod(method);
+ }
+
+ @AfterMethod
+ public void afterMethod(ITestResult result) {
+ super.afterMethod(result);
+ }
+
+ @Test
+ public void copyFromContainer() {
+ // TODO extract this into a shared method
+ CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
+ .withName("docker-java-itest-copyFromContainer")
+ .withCmd("touch", "/test")
+ .exec();
+
+ LOG.info("Created container: {}", container);
+ assertThat(container.getId(), not(isEmptyOrNullString()));
+
+ dockerClient.startContainerCmd(container.getId()).exec();
+ tmpContainers.add(container.getId());
+
+ ClientResponse response = dockerClient.copyFileFromContainerCmd(container.getId(), "/test").exec();
+ assertTrue(response.getStatus() == 200 && response.hasEntity(), "The file was not copied from the container.");
+ }
+}
diff --git a/src/test/java/com/github/dockerjava/client/command/CreateContainerCmdTest.java b/src/test/java/com/github/dockerjava/client/command/CreateContainerCmdTest.java
index a0eaa48e3..56fc5ca91 100644
--- a/src/test/java/com/github/dockerjava/client/command/CreateContainerCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/CreateContainerCmdTest.java
@@ -16,8 +16,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.ContainerInspectResponse;
import com.github.dockerjava.client.model.Volume;
public class CreateContainerCmdTest extends AbstractDockerClientTest {
@@ -26,7 +24,7 @@ public class CreateContainerCmdTest extends AbstractDockerClientTest {
public void beforeTest() throws DockerException {
super.beforeTest();
}
-
+
@AfterTest
public void afterTest() {
super.afterTest();
@@ -41,69 +39,69 @@ public void beforeMethod(Method method) {
public void afterMethod(ITestResult result) {
super.afterMethod(result);
}
-
+
@Test
public void createContainerWithVolume() throws DockerException {
-
- ContainerCreateResponse container = dockerClient
+
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withVolumes(new Volume("/var/log")).withCmd("true").exec();
tmpContainers.add(container.getId());
-
+
LOG.info("Created container {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
-
- ContainerInspectResponse containerInspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
-
- LOG.info("Inspect container {}", containerInspectResponse.getConfig().getVolumes());
-
- assertThat(containerInspectResponse.getConfig().getVolumes().keySet(), contains("/var/log"));
-
-
+
+ InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
+
+ LOG.info("Inspect container {}", inspectContainerResponse.getConfig().getVolumes());
+
+ assertThat(inspectContainerResponse.getConfig().getVolumes().keySet(), contains("/var/log"));
+
+
}
-
+
@Test
public void createContainerWithEnv() throws DockerException {
-
- ContainerCreateResponse container = dockerClient
+
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withEnv("VARIABLE=success").withCmd("env").exec();
tmpContainers.add(container.getId());
-
+
LOG.info("Created container {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
-
- ContainerInspectResponse containerInspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
-
- assertThat(Arrays.asList(containerInspectResponse.getConfig().getEnv()), contains("VARIABLE=success","HOME=/","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"));
+
+ InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
+
+ assertThat(Arrays.asList(inspectContainerResponse.getConfig().getEnv()), contains("VARIABLE=success","HOME=/","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"));
dockerClient.startContainerCmd(container.getId()).exec();
-
+
assertThat(logResponseStream(dockerClient.logContainerCmd(container.getId()).withStdOut().exec()), containsString("VARIABLE=success"));
}
-
+
@Test
public void createContainerWithHostname() throws DockerException {
-
- ContainerCreateResponse container = dockerClient
+
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withHostName("docker-java").withCmd("env").exec();
tmpContainers.add(container.getId());
-
+
LOG.info("Created container {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
-
- ContainerInspectResponse containerInspectResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
-
- assertThat(containerInspectResponse.getConfig().getHostName(), equalTo("docker-java"));
+
+ InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
+
+ assertThat(inspectContainerResponse.getConfig().getHostName(), equalTo("docker-java"));
dockerClient.startContainerCmd(container.getId()).exec();
-
+
assertThat(logResponseStream(dockerClient.logContainerCmd(container.getId()).withStdOut().exec()), containsString("HOSTNAME=docker-java"));
}
-
+
}
diff --git a/src/test/java/com/github/dockerjava/client/command/InfoCmdTest.java b/src/test/java/com/github/dockerjava/client/command/InfoCmdTest.java
index a44e68727..5ef90cd42 100644
--- a/src/test/java/com/github/dockerjava/client/command/InfoCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/InfoCmdTest.java
@@ -13,13 +13,17 @@
import com.github.dockerjava.client.DockerException;
import com.github.dockerjava.client.model.Info;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isEmptyOrNullString;
+import static org.hamcrest.Matchers.not;
+
public class InfoCmdTest extends AbstractDockerClientTest {
@BeforeTest
public void beforeTest() throws DockerException {
super.beforeTest();
}
-
+
@AfterTest
public void afterTest() {
super.afterTest();
@@ -34,10 +38,23 @@ public void beforeMethod(Method method) {
public void afterMethod(ITestResult result) {
super.afterMethod(result);
}
-
+
@Test
public void info() throws DockerException {
- Info dockerInfo = dockerClient.infoCmd().exec();
+ // Make sure that there is at least one container for the assertion
+ // TODO extract this into a shared method
+ CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
+ .withName("docker-java-itest-info")
+ .withCmd("touch", "/test")
+ .exec();
+
+ LOG.info("Created container: {}", container);
+ assertThat(container.getId(), not(isEmptyOrNullString()));
+
+ dockerClient.startContainerCmd(container.getId()).exec();
+ tmpContainers.add(container.getId());
+
+ Info dockerInfo = dockerClient.infoCmd().exec();
LOG.info(dockerInfo.toString());
assertTrue(dockerInfo.toString().contains("containers"));
diff --git a/src/test/java/com/github/dockerjava/client/command/KillContainerCmdTest.java b/src/test/java/com/github/dockerjava/client/command/KillContainerCmdTest.java
index 35c4ded06..b1ff30276 100644
--- a/src/test/java/com/github/dockerjava/client/command/KillContainerCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/KillContainerCmdTest.java
@@ -19,8 +19,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.ContainerInspectResponse;
public class KillContainerCmdTest extends AbstractDockerClientTest {
@@ -50,7 +48,7 @@ public void afterMethod(ITestResult result) {
@Test
public void testKillContainer() throws DockerException {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("sleep", "9999").exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
@@ -60,13 +58,13 @@ public void testKillContainer() throws DockerException {
LOG.info("Killing container: {}", container.getId());
dockerClient.killContainerCmd(container.getId()).exec();
- ContainerInspectResponse containerInspectResponse = dockerClient
+ InspectContainerResponse inspectContainerResponse = dockerClient
.inspectContainerCmd(container.getId()).exec();
- LOG.info("Container Inspect: {}", containerInspectResponse.toString());
+ LOG.info("Container Inspect: {}", inspectContainerResponse.toString());
- assertThat(containerInspectResponse.getState().isRunning(),
+ assertThat(inspectContainerResponse.getState().isRunning(),
is(equalTo(false)));
- assertThat(containerInspectResponse.getState().getExitCode(),
+ assertThat(inspectContainerResponse.getState().getExitCode(),
not(equalTo(0)));
}
diff --git a/src/test/java/com/github/dockerjava/client/command/ListContainersCmdTest.java b/src/test/java/com/github/dockerjava/client/command/ListContainersCmdTest.java
index df24a8116..7c4332fcd 100644
--- a/src/test/java/com/github/dockerjava/client/command/ListContainersCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/ListContainersCmdTest.java
@@ -25,8 +25,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
import com.github.dockerjava.client.model.Container;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.ContainerInspectResponse;
public class ListContainersCmdTest extends AbstractDockerClientTest {
@@ -34,7 +32,7 @@ public class ListContainersCmdTest extends AbstractDockerClientTest {
public void beforeTest() throws DockerException {
super.beforeTest();
}
-
+
@AfterTest
public void afterTest() {
super.afterTest();
@@ -49,42 +47,42 @@ public void beforeMethod(Method method) {
public void afterMethod(ITestResult result) {
super.afterMethod(result);
}
-
+
@Test
public void testListContainers() throws DockerException {
-
+
String testImage = "busybox";
-
+
// need to block until image is pulled completely
logResponseStream(dockerClient.pullImageCmd(testImage).exec());
-
+
List containers = dockerClient.listContainersCmd().withShowAll(true).exec();
assertThat(containers, notNullValue());
LOG.info("Container List: {}", containers);
int size = containers.size();
- ContainerCreateResponse container1 = dockerClient
+ CreateContainerResponse container1 = dockerClient
.createContainerCmd(testImage).withCmd("echo").exec();
-
+
assertThat(container1.getId(), not(isEmptyString()));
- ContainerInspectResponse containerInspectResponse = dockerClient.inspectContainerCmd(container1.getId()).exec();
-
- assertThat(containerInspectResponse.getConfig().getImage(), is(equalTo(testImage)));
-
-
+ InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container1.getId()).exec();
+
+ assertThat(inspectContainerResponse.getConfig().getImage(), is(equalTo(testImage)));
+
+
dockerClient.startContainerCmd(container1.getId()).exec();
tmpContainers.add(container1.getId());
-
+
LOG.info("container id: " + container1.getId());
List containers2 = dockerClient.listContainersCmd().withShowAll(true).exec();
-
+
for(Container container: containers2) {
LOG.info("listContainer: id=" + container.getId() +" image=" + container.getImage());
}
-
+
assertThat(size + 1, is(equalTo(containers2.size())));
Matcher matcher = hasItem(hasField("id", startsWith(container1.getId())));
assertThat(containers2, matcher);
@@ -96,7 +94,7 @@ public void testListContainers() throws DockerException {
for(Container container: filteredContainers) {
LOG.info("filteredContainer: " + container);
}
-
+
Container container2 = filteredContainers.get(0);
assertThat(container2.getCommand(), not(isEmptyString()));
assertThat(container2.getImage(), startsWith(testImage + ":"));
diff --git a/src/test/java/com/github/dockerjava/client/command/LogContainerCmdTest.java b/src/test/java/com/github/dockerjava/client/command/LogContainerCmdTest.java
index 4db44621f..43c54d22e 100644
--- a/src/test/java/com/github/dockerjava/client/command/LogContainerCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/LogContainerCmdTest.java
@@ -18,7 +18,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
import com.sun.jersey.api.client.ClientResponse;
public class LogContainerCmdTest extends AbstractDockerClientTest {
@@ -48,9 +47,9 @@ public void logContainer() throws DockerException, IOException {
String snippet = "hello world";
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("/bin/echo", snippet).exec();
-
+
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
diff --git a/src/test/java/com/github/dockerjava/client/command/PullImageCmdTest.java b/src/test/java/com/github/dockerjava/client/command/PullImageCmdTest.java
index e4c771786..0472720d9 100644
--- a/src/test/java/com/github/dockerjava/client/command/PullImageCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/PullImageCmdTest.java
@@ -17,7 +17,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ImageInspectResponse;
import com.github.dockerjava.client.model.Info;
import com.sun.jersey.api.client.ClientResponse;
@@ -47,7 +46,7 @@ public void afterMethod(ITestResult result) {
public void testPullImage() throws DockerException, IOException {
Info info = dockerClient.infoCmd().exec();
LOG.info("Client info: {}", info.toString());
-
+
int imgCount = info.getImages();
LOG.info("imgCount1: {}", imgCount);
@@ -63,10 +62,10 @@ public void testPullImage() throws DockerException, IOException {
info = dockerClient.infoCmd().exec();
LOG.info("Client info: {}", info.toString());
-
+
imgCount = info.getImages();
LOG.info("imgCount2: {}", imgCount);
-
+
LOG.info("Pulling image: {}", testImage);
@@ -81,10 +80,10 @@ public void testPullImage() throws DockerException, IOException {
assertThat(imgCount, lessThanOrEqualTo(info.getImages()));
- ImageInspectResponse imageInspectResponse = dockerClient
+ InspectImageResponse inspectImageResponse = dockerClient
.inspectImageCmd(testImage).exec();
- LOG.info("Image Inspect: {}", imageInspectResponse.toString());
- assertThat(imageInspectResponse, notNullValue());
+ LOG.info("Image Inspect: {}", inspectImageResponse.toString());
+ assertThat(inspectImageResponse, notNullValue());
}
}
diff --git a/src/test/java/com/github/dockerjava/client/command/PushImageCmdTest.java b/src/test/java/com/github/dockerjava/client/command/PushImageCmdTest.java
index f04322ec6..d5e175e16 100644
--- a/src/test/java/com/github/dockerjava/client/command/PushImageCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/PushImageCmdTest.java
@@ -20,10 +20,9 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
public class PushImageCmdTest extends AbstractDockerClientTest {
-
+
public static final Logger LOG = LoggerFactory
.getLogger(PushImageCmdTest.class);
@@ -52,7 +51,7 @@ public void afterMethod(ITestResult result) {
@Test
public void testPushLatest() throws Exception {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("true").exec();
LOG.info("Created container {}", container.toString());
@@ -60,16 +59,17 @@ public void testPushLatest() throws Exception {
assertThat(container.getId(), not(isEmptyString()));
tmpContainers.add(container.getId());
-
+
LOG.info("Commiting container: {}", container.toString());
String imageId = dockerClient.commitCmd(container.getId()).withRepository(username + "/busybox").exec();
logResponseStream(dockerClient.pushImageCmd(username + "/busybox").exec());
-
+
dockerClient.removeImageCmd(imageId).exec();
-
+
+ // TODO This can fail intermittently if run with other tests.
assertThat(asString(dockerClient.pullImageCmd(username + "/busybox").exec()), not(containsString("404")));
-
+
tmpImgs.add(username + "/busybox");
}
@@ -79,6 +79,6 @@ public void testNotExistentImage() throws Exception {
assertThat(logResponseStream(dockerClient.pushImageCmd(username + "/xxx").exec()), containsString("error"));
}
-
+
}
diff --git a/src/test/java/com/github/dockerjava/client/command/RemoveContainerCmdTest.java b/src/test/java/com/github/dockerjava/client/command/RemoveContainerCmdTest.java
index 3e2bf4039..4b614a489 100644
--- a/src/test/java/com/github/dockerjava/client/command/RemoveContainerCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/RemoveContainerCmdTest.java
@@ -21,7 +21,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
public class RemoveContainerCmdTest extends AbstractDockerClientTest {
@@ -50,7 +49,7 @@ public void afterMethod(ITestResult result) {
@Test
public void removeContainer() throws DockerException {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("true").exec();
dockerClient.startContainerCmd(container.getId()).exec();
diff --git a/src/test/java/com/github/dockerjava/client/command/RemoveImageCmdTest.java b/src/test/java/com/github/dockerjava/client/command/RemoveImageCmdTest.java
index 81c5dcf5b..5944d8f65 100644
--- a/src/test/java/com/github/dockerjava/client/command/RemoveImageCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/RemoveImageCmdTest.java
@@ -22,7 +22,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
public class RemoveImageCmdTest extends AbstractDockerClientTest {
@@ -51,7 +50,7 @@ public void afterMethod(ITestResult result) {
@Test
public void testRemoveImage() throws DockerException, InterruptedException {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("touch", "/test").exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
diff --git a/src/test/java/com/github/dockerjava/client/command/RestartContainerCmdTest.java b/src/test/java/com/github/dockerjava/client/command/RestartContainerCmdTest.java
index cc65457e5..c25784b90 100644
--- a/src/test/java/com/github/dockerjava/client/command/RestartContainerCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/RestartContainerCmdTest.java
@@ -17,8 +17,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.ContainerInspectResponse;
public class RestartContainerCmdTest extends AbstractDockerClientTest {
@@ -45,31 +43,31 @@ public void afterMethod(ITestResult result) {
@Test
public void restartContainer() throws DockerException {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("sleep", "9999").exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
dockerClient.startContainerCmd(container.getId()).exec();
tmpContainers.add(container.getId());
- ContainerInspectResponse containerInspectResponse = dockerClient
+ InspectContainerResponse inspectContainerResponse = dockerClient
.inspectContainerCmd(container.getId()).exec();
- LOG.info("Container Inspect: {}", containerInspectResponse.toString());
+ LOG.info("Container Inspect: {}", inspectContainerResponse.toString());
- String startTime = containerInspectResponse.getState().getStartedAt();
+ String startTime = inspectContainerResponse.getState().getStartedAt();
dockerClient.restartContainerCmd(container.getId()).withtTimeout(2).exec();
- ContainerInspectResponse containerInspectResponse2 = dockerClient
+ InspectContainerResponse inspectContainerResponse2 = dockerClient
.inspectContainerCmd(container.getId()).exec();
LOG.info("Container Inspect After Restart: {}",
- containerInspectResponse2.toString());
+ inspectContainerResponse2.toString());
- String startTime2 = containerInspectResponse2.getState().getStartedAt();
+ String startTime2 = inspectContainerResponse2.getState().getStartedAt();
assertThat(startTime, not(equalTo(startTime2)));
- assertThat(containerInspectResponse.getState().isRunning(),
+ assertThat(inspectContainerResponse.getState().isRunning(),
is(equalTo(true)));
dockerClient.killContainerCmd(container.getId()).exec();
diff --git a/src/test/java/com/github/dockerjava/client/command/StartContainerCmdTest.java b/src/test/java/com/github/dockerjava/client/command/StartContainerCmdTest.java
index 996d93fa2..4ea95fec5 100644
--- a/src/test/java/com/github/dockerjava/client/command/StartContainerCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/StartContainerCmdTest.java
@@ -12,6 +12,7 @@
import java.lang.reflect.Method;
import java.util.Arrays;
+import com.github.dockerjava.client.model.*;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterTest;
@@ -21,14 +22,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.Bind;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.ContainerInspectResponse;
-import com.github.dockerjava.client.model.ExposedPort;
-import com.github.dockerjava.client.model.Link;
-import com.github.dockerjava.client.model.Ports;
-import com.github.dockerjava.client.model.Volume;
-
public class StartContainerCmdTest extends AbstractDockerClientTest {
@@ -58,10 +51,10 @@ public void startContainerWithVolumes() throws DockerException {
// see http://docs.docker.io/use/working_with_volumes/
Volume volume1 = new Volume("/opt/webapp1");
-
+
Volume volume2 = new Volume("/opt/webapp2");
-
- ContainerCreateResponse container = dockerClient
+
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withVolumes(volume1, volume2)
.withCmd("true").exec();
@@ -69,37 +62,37 @@ public void startContainerWithVolumes() throws DockerException {
assertThat(container.getId(), not(isEmptyString()));
- ContainerInspectResponse containerInspectResponse = dockerClient
+ InspectContainerResponse inspectContainerResponse = dockerClient
.inspectContainerCmd(container.getId()).exec();
- assertThat(containerInspectResponse.getConfig().getVolumes().keySet(),
+ assertThat(inspectContainerResponse.getConfig().getVolumes().keySet(),
contains("/opt/webapp1", "/opt/webapp2"));
-
+
dockerClient.startContainerCmd(container.getId()).withBinds(new Bind("/src/webapp1", volume1, true), new Bind("/src/webapp2", volume2)).exec();
dockerClient.waitContainerCmd(container.getId()).exec();
- containerInspectResponse = dockerClient.inspectContainerCmd(container
+ inspectContainerResponse = dockerClient.inspectContainerCmd(container
.getId()).exec();
-
- assertThat(Arrays.asList(containerInspectResponse.getVolumes()),
+
+ assertThat(Arrays.asList(inspectContainerResponse.getVolumes()),
contains(volume1, volume2));
- assertThat(Arrays.asList(containerInspectResponse.getVolumesRW()),
+ assertThat(Arrays.asList(inspectContainerResponse.getVolumesRW()),
contains(volume1, volume2));
-
+
tmpContainers.add(container.getId());
}
-
+
@Test
public void startContainerWithPortBindings() throws DockerException {
-
+
ExposedPort tcp22 = ExposedPort.tcp(22);
ExposedPort tcp23 = ExposedPort.tcp(23);
-
- ContainerCreateResponse container = dockerClient
+
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox")
.withCmd("true").withExposedPorts(tcp22, tcp23).exec();
@@ -107,7 +100,7 @@ public void startContainerWithPortBindings() throws DockerException {
assertThat(container.getId(), not(isEmptyString()));
- ContainerInspectResponse containerInspectResponse = dockerClient
+ InspectContainerResponse inspectContainerResponse = dockerClient
.inspectContainerCmd(container.getId()).exec();
Ports portBindings = new Ports();
@@ -116,106 +109,106 @@ public void startContainerWithPortBindings() throws DockerException {
dockerClient.startContainerCmd(container.getId()).withPortBindings(portBindings).exec();
- containerInspectResponse = dockerClient.inspectContainerCmd(container
+ inspectContainerResponse = dockerClient.inspectContainerCmd(container
.getId()).exec();
- assertThat(Arrays.asList(containerInspectResponse.getConfig().getExposedPorts()),
+ assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()),
contains(tcp22, tcp23));
- assertThat(containerInspectResponse.getHostConfig().getPortBindings().getBindings().get(tcp22),
+ assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp22),
is(equalTo(Ports.Binding("0.0.0.0", 11022))));
-
- assertThat(containerInspectResponse.getHostConfig().getPortBindings().getBindings().get(tcp23),
+
+ assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23),
is(equalTo(Ports.Binding("0.0.0.0", 11023))));
-
+
tmpContainers.add(container.getId());
}
-
+
@Test
public void startContainerWithLinking() throws DockerException {
- ContainerCreateResponse container1 = dockerClient
+ CreateContainerResponse container1 = dockerClient
.createContainerCmd("busybox").withCmd("sleep", "9999").withName("container1").exec();
-
+
LOG.info("Created container1 {}", container1.toString());
assertThat(container1.getId(), not(isEmptyString()));
tmpContainers.add(container1.getId());
dockerClient.startContainerCmd(container1.getId()).exec();
- ContainerInspectResponse containerInspectResponse1 = dockerClient
+ InspectContainerResponse inspectContainerResponse1 = dockerClient
.inspectContainerCmd(container1.getId()).exec();
- LOG.info("Container1 Inspect: {}", containerInspectResponse1.toString());
-
- assertThat(containerInspectResponse1.getConfig(), is(notNullValue()));
- assertThat(containerInspectResponse1.getId(), not(isEmptyString()));
- assertThat(containerInspectResponse1.getId(), startsWith(container1.getId()));
- assertThat(containerInspectResponse1.getName(), equalTo("/container1"));
- assertThat(containerInspectResponse1.getImageId(), not(isEmptyString()));
- assertThat(containerInspectResponse1.getState(), is(notNullValue()));
- assertThat(containerInspectResponse1.getState().isRunning(), is(true));
-
- if (!containerInspectResponse1.getState().isRunning()) {
- assertThat(containerInspectResponse1.getState().getExitCode(),
+ LOG.info("Container1 Inspect: {}", inspectContainerResponse1.toString());
+
+ assertThat(inspectContainerResponse1.getConfig(), is(notNullValue()));
+ assertThat(inspectContainerResponse1.getId(), not(isEmptyString()));
+ assertThat(inspectContainerResponse1.getId(), startsWith(container1.getId()));
+ assertThat(inspectContainerResponse1.getName(), equalTo("/container1"));
+ assertThat(inspectContainerResponse1.getImageId(), not(isEmptyString()));
+ assertThat(inspectContainerResponse1.getState(), is(notNullValue()));
+ assertThat(inspectContainerResponse1.getState().isRunning(), is(true));
+
+ if (!inspectContainerResponse1.getState().isRunning()) {
+ assertThat(inspectContainerResponse1.getState().getExitCode(),
is(equalTo(0)));
}
-
- ContainerCreateResponse container2 = dockerClient
+
+ CreateContainerResponse container2 = dockerClient
.createContainerCmd("busybox").withCmd("true").withName("container2").exec();
-
+
LOG.info("Created container2 {}", container2.toString());
assertThat(container2.getId(), not(isEmptyString()));
tmpContainers.add(container2.getId());
dockerClient.startContainerCmd(container2.getId()).withLinks(new Link("container1", "container1Link")).exec();
- ContainerInspectResponse containerInspectResponse2 = dockerClient
+ InspectContainerResponse inspectContainerResponse2 = dockerClient
.inspectContainerCmd(container2.getId()).exec();
- LOG.info("Container2 Inspect: {}", containerInspectResponse2.toString());
-
- assertThat(containerInspectResponse2.getConfig(), is(notNullValue()));
- assertThat(containerInspectResponse2.getId(), not(isEmptyString()));
- assertThat(containerInspectResponse2.getHostConfig(), is(notNullValue()));
- assertThat(containerInspectResponse2.getHostConfig().getLinks(), is(notNullValue()));
- assertThat(containerInspectResponse2.getHostConfig().getLinks(), equalTo(new String[] {"/container1:/container2/container1Link"}));
- assertThat(containerInspectResponse2.getId(), startsWith(container2.getId()));
- assertThat(containerInspectResponse2.getName(), equalTo("/container2"));
- assertThat(containerInspectResponse2.getImageId(), not(isEmptyString()));
- assertThat(containerInspectResponse2.getState(), is(notNullValue()));
- assertThat(containerInspectResponse2.getState().isRunning(), is(true));
+ LOG.info("Container2 Inspect: {}", inspectContainerResponse2.toString());
+
+ assertThat(inspectContainerResponse2.getConfig(), is(notNullValue()));
+ assertThat(inspectContainerResponse2.getId(), not(isEmptyString()));
+ assertThat(inspectContainerResponse2.getHostConfig(), is(notNullValue()));
+ assertThat(inspectContainerResponse2.getHostConfig().getLinks(), is(notNullValue()));
+ assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new String[] {"/container1:/container2/container1Link"}));
+ assertThat(inspectContainerResponse2.getId(), startsWith(container2.getId()));
+ assertThat(inspectContainerResponse2.getName(), equalTo("/container2"));
+ assertThat(inspectContainerResponse2.getImageId(), not(isEmptyString()));
+ assertThat(inspectContainerResponse2.getState(), is(notNullValue()));
+ assertThat(inspectContainerResponse2.getState().isRunning(), is(true));
}
-
+
@Test
public void startContainer() throws DockerException {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd(new String[] { "top" }).exec();
-
+
LOG.info("Created container {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
tmpContainers.add(container.getId());
dockerClient.startContainerCmd(container.getId()).exec();
- ContainerInspectResponse containerInspectResponse = dockerClient
+ InspectContainerResponse inspectContainerResponse = dockerClient
.inspectContainerCmd(container.getId()).exec();
- LOG.info("Container Inspect: {}", containerInspectResponse.toString());
+ LOG.info("Container Inspect: {}", inspectContainerResponse.toString());
- assertThat(containerInspectResponse.getConfig(), is(notNullValue()));
- assertThat(containerInspectResponse.getId(), not(isEmptyString()));
+ assertThat(inspectContainerResponse.getConfig(), is(notNullValue()));
+ assertThat(inspectContainerResponse.getId(), not(isEmptyString()));
- assertThat(containerInspectResponse.getId(),
+ assertThat(inspectContainerResponse.getId(),
startsWith(container.getId()));
- assertThat(containerInspectResponse.getImageId(), not(isEmptyString()));
- assertThat(containerInspectResponse.getState(), is(notNullValue()));
+ assertThat(inspectContainerResponse.getImageId(), not(isEmptyString()));
+ assertThat(inspectContainerResponse.getState(), is(notNullValue()));
- assertThat(containerInspectResponse.getState().isRunning(), is(true));
+ assertThat(inspectContainerResponse.getState().isRunning(), is(true));
- if (!containerInspectResponse.getState().isRunning()) {
- assertThat(containerInspectResponse.getState().getExitCode(),
+ if (!inspectContainerResponse.getState().isRunning()) {
+ assertThat(inspectContainerResponse.getState().getExitCode(),
is(equalTo(0)));
}
diff --git a/src/test/java/com/github/dockerjava/client/command/StopContainerCmdTest.java b/src/test/java/com/github/dockerjava/client/command/StopContainerCmdTest.java
index d9151088d..aeb8ed0d0 100644
--- a/src/test/java/com/github/dockerjava/client/command/StopContainerCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/StopContainerCmdTest.java
@@ -19,8 +19,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.ContainerInspectResponse;
public class StopContainerCmdTest extends AbstractDockerClientTest {
@@ -50,7 +48,7 @@ public void afterMethod(ITestResult result) {
@Test
public void testStopContainer() throws DockerException {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("sleep", "9999").exec();
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
@@ -60,12 +58,12 @@ public void testStopContainer() throws DockerException {
LOG.info("Stopping container: {}", container.getId());
dockerClient.stopContainerCmd(container.getId()).withTimeout(2).exec();
- ContainerInspectResponse containerInspectResponse = dockerClient
+ InspectContainerResponse inspectContainerResponse = dockerClient
.inspectContainerCmd(container.getId()).exec();
- LOG.info("Container Inspect: {}", containerInspectResponse.toString());
+ LOG.info("Container Inspect: {}", inspectContainerResponse.toString());
- assertThat(containerInspectResponse.getState().isRunning(), is(equalTo(false)));
- assertThat(containerInspectResponse.getState().getExitCode(), not(equalTo(0)));
+ assertThat(inspectContainerResponse.getState().isRunning(), is(equalTo(false)));
+ assertThat(inspectContainerResponse.getState().getExitCode(), not(equalTo(0)));
}
}
diff --git a/src/test/java/com/github/dockerjava/client/command/WaitContainerCmdTest.java b/src/test/java/com/github/dockerjava/client/command/WaitContainerCmdTest.java
index 0fd5a3287..fff083213 100644
--- a/src/test/java/com/github/dockerjava/client/command/WaitContainerCmdTest.java
+++ b/src/test/java/com/github/dockerjava/client/command/WaitContainerCmdTest.java
@@ -17,8 +17,6 @@
import com.github.dockerjava.client.AbstractDockerClientTest;
import com.github.dockerjava.client.DockerException;
-import com.github.dockerjava.client.model.ContainerCreateResponse;
-import com.github.dockerjava.client.model.ContainerInspectResponse;
public class WaitContainerCmdTest extends AbstractDockerClientTest {
@@ -45,9 +43,9 @@ public void afterMethod(ITestResult result) {
@Test
public void testWaitContainer() throws DockerException {
- ContainerCreateResponse container = dockerClient
+ CreateContainerResponse container = dockerClient
.createContainerCmd("busybox").withCmd("true").exec();
-
+
LOG.info("Created container: {}", container.toString());
assertThat(container.getId(), not(isEmptyString()));
tmpContainers.add(container.getId());
@@ -59,12 +57,12 @@ public void testWaitContainer() throws DockerException {
assertThat(exitCode, equalTo(0));
- ContainerInspectResponse containerInspectResponse = dockerClient
+ InspectContainerResponse inspectContainerResponse = dockerClient
.inspectContainerCmd(container.getId()).exec();
- LOG.info("Container Inspect: {}", containerInspectResponse.toString());
+ LOG.info("Container Inspect: {}", inspectContainerResponse.toString());
- assertThat(containerInspectResponse.getState().isRunning(), is(equalTo(false)));
- assertThat(containerInspectResponse.getState().getExitCode(), is(equalTo(exitCode)));
+ assertThat(inspectContainerResponse.getState().isRunning(), is(equalTo(false)));
+ assertThat(inspectContainerResponse.getState().getExitCode(), is(equalTo(exitCode)));
}