Skip to content

Commit 0815e2f

Browse files
author
Marcus Linke
committed
Use special DockerCmdExecFactory in tests to realize automatic
image/container cleanup.
1 parent 3472f06 commit 0815e2f

20 files changed

+110
-67
lines changed

src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public void init(DockerClientConfig dockerClientConfig) {
8787

8888
}
8989

90-
private WebTarget getBaseResource() {
90+
protected WebTarget getBaseResource() {
9191
Preconditions.checkNotNull(baseResource, "Factory not initialized. You probably forgot to call init()!");
9292
return baseResource;
9393
}

src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.github.dockerjava.api.DockerException;
55
import com.github.dockerjava.core.DockerClientImpl;
66
import com.github.dockerjava.jaxrs.DockerClientBuilder;
7+
import com.github.dockerjava.jaxrs.TestDockerCmdExecFactory;
78

89
import org.apache.commons.io.IOUtils;
910
import org.apache.commons.io.LineIterator;
@@ -28,14 +29,17 @@ public abstract class AbstractDockerClientTest extends Assert {
2829

2930
protected DockerClient dockerClient;
3031

31-
protected List<String> tmpImgs;
32-
protected List<String> tmpContainers;
32+
// protected List<String> tmpImgs;
33+
// protected List<String> tmpContainers;
3334

35+
private TestDockerCmdExecFactory dockerCmdExecFactory = new TestDockerCmdExecFactory();
3436

3537
public void beforeTest() {
3638
LOG.info("======================= BEFORETEST =======================");
3739
LOG.info("Connecting to Docker server");
38-
dockerClient = DockerClientBuilder.getInstance().build();
40+
dockerClient = DockerClientBuilder.getInstance()
41+
.withDockerCmdExecFactory(dockerCmdExecFactory)
42+
.build();
3943

4044
LOG.info("Pulling image 'busybox'");
4145
// need to block until image is pulled completely
@@ -53,16 +57,16 @@ public void afterTest() {
5357

5458

5559
public void beforeMethod(Method method) {
56-
tmpContainers = new ArrayList<String>();
57-
tmpImgs = new ArrayList<String>();
60+
// tmpContainers = new ArrayList<String>();
61+
// tmpImgs = new ArrayList<String>();
5862
LOG.info(String
5963
.format("################################## STARTING %s ##################################",
6064
method.getName()));
6165
}
6266

6367
public void afterMethod(ITestResult result) {
6468

65-
for (String container : tmpContainers) {
69+
for (String container : dockerCmdExecFactory.getContainerIds()) {
6670
LOG.info("Cleaning up temporary container {}", container);
6771
try {
6872
dockerClient.stopContainerCmd(container).exec();
@@ -78,7 +82,7 @@ public void afterMethod(ITestResult result) {
7882
}
7983
}
8084

81-
for (String image : tmpImgs) {
85+
for (String image : dockerCmdExecFactory.getImagesIds()) {
8286
LOG.info("Cleaning up temporary image {}", image);
8387
try {
8488
dockerClient.removeImageCmd(image).exec();

src/test/java/com/github/dockerjava/client/DockerClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public void testRunShlex() throws DockerException {
6262
CreateContainerResponse container = dockerClient
6363
.createContainerCmd("busybox").withCmd(commands).exec();
6464
dockerClient.startContainerCmd(container.getId());
65-
tmpContainers.add(container.getId());
65+
6666
int exitcode = dockerClient.waitContainerCmd(container.getId()).exec();
6767
assertThat(exitcode, equalTo(0));
6868
}

src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public void testNginxDockerfileBuilder() {
6969
.inspectImageCmd(imageId).exec();
7070
assertThat(inspectImageResponse, not(nullValue()));
7171
LOG.info("Image Inspect: {}", inspectImageResponse.toString());
72-
tmpImgs.add(inspectImageResponse.getId());
72+
//tmpImgs.add(inspectImageResponse.getId());
7373

7474
assertThat(inspectImageResponse.getAuthor(),
7575
equalTo("Guillaume J. Charmes \"guillaume@dotcloud.com\""));
@@ -120,7 +120,7 @@ private String dockerfileBuild(File baseDir, String expectedText) {
120120
dockerClient.startContainerCmd(container.getId()).exec();
121121
dockerClient.waitContainerCmd(container.getId()).exec();
122122

123-
tmpContainers.add(container.getId());
123+
//tmpContainers.add(container.getId());
124124

125125
// Log container
126126
InputStream logResponse = logContainer(container
@@ -155,13 +155,13 @@ public void testNetCatDockerfileBuilder() throws InterruptedException {
155155
assertThat(inspectImageResponse, not(nullValue()));
156156
assertThat(inspectImageResponse.getId(), not(nullValue()));
157157
LOG.info("Image Inspect: {}", inspectImageResponse.toString());
158-
tmpImgs.add(inspectImageResponse.getId());
158+
//tmpImgs.add(inspectImageResponse.getId());
159159

160160
CreateContainerResponse container = dockerClient.createContainerCmd(
161161
inspectImageResponse.getId()).exec();
162162
assertThat(container.getId(), not(isEmptyString()));
163163
dockerClient.startContainerCmd(container.getId()).exec();
164-
tmpContainers.add(container.getId());
164+
//tmpContainers.add(container.getId());
165165

166166
InspectContainerResponse inspectContainerResponse = dockerClient
167167
.inspectContainerCmd(container.getId()).exec();

src/test/java/com/github/dockerjava/core/command/CommitCmdImplTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,10 @@ public void commit() throws DockerException {
5252
LOG.info("Created container: {}", container.toString());
5353
assertThat(container.getId(), not(isEmptyString()));
5454
dockerClient.startContainerCmd(container.getId()).exec();
55-
tmpContainers.add(container.getId());
5655

5756
LOG.info("Commiting container: {}", container.toString());
5857
String imageId = dockerClient
5958
.commitCmd(container.getId()).exec();
60-
tmpImgs.add(imageId);
6159

6260
InspectImageResponse inspectImageResponse = dockerClient
6361
.inspectImageCmd(imageId).exec();

src/test/java/com/github/dockerjava/core/command/ContainerDiffCmdImplTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void testDiff() throws DockerException {
5151
LOG.info("Created container: {}", container.toString());
5252
assertThat(container.getId(), not(isEmptyString()));
5353
dockerClient.startContainerCmd(container.getId()).exec();
54-
tmpContainers.add(container.getId());
54+
5555
int exitCode = dockerClient.waitContainerCmd(container.getId()).exec();
5656
assertThat(exitCode, equalTo(0));
5757

src/test/java/com/github/dockerjava/core/command/CopyFileFromContainerCmdImplTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ public void copyFromContainer() throws Exception {
4646
assertThat(container.getId(), not(isEmptyOrNullString()));
4747

4848
dockerClient.startContainerCmd(container.getId()).exec();
49-
tmpContainers.add(container.getId());
5049

5150
InputStream response = dockerClient.copyFileFromContainerCmd(container.getId(), "/test").exec();
5251
assertTrue(response.available() > 0, "The file was not copied from the container.");

src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ public void createContainerWithVolume() throws DockerException {
4848
CreateContainerResponse container = dockerClient
4949
.createContainerCmd("busybox").withVolumes(new Volume("/var/log")).withCmd("true").exec();
5050

51-
tmpContainers.add(container.getId());
52-
5351
LOG.info("Created container {}", container.toString());
5452

5553
assertThat(container.getId(), not(isEmptyString()));
@@ -59,8 +57,6 @@ public void createContainerWithVolume() throws DockerException {
5957
LOG.info("Inspect container {}", inspectContainerResponse.getConfig().getVolumes());
6058

6159
assertThat(inspectContainerResponse.getConfig().getVolumes().keySet(), contains("/var/log"));
62-
63-
6460
}
6561

6662
@Test
@@ -69,8 +65,6 @@ public void createContainerWithEnv() throws DockerException {
6965
CreateContainerResponse container = dockerClient
7066
.createContainerCmd("busybox").withEnv("VARIABLE=success").withCmd("env").exec();
7167

72-
tmpContainers.add(container.getId());
73-
7468
LOG.info("Created container {}", container.toString());
7569

7670
assertThat(container.getId(), not(isEmptyString()));
@@ -90,8 +84,6 @@ public void createContainerWithHostname() throws DockerException {
9084
CreateContainerResponse container = dockerClient
9185
.createContainerCmd("busybox").withHostName("docker-java").withCmd("env").exec();
9286

93-
tmpContainers.add(container.getId());
94-
9587
LOG.info("Created container {}", container.toString());
9688

9789
assertThat(container.getId(), not(isEmptyString()));
@@ -111,8 +103,6 @@ public void createContainerWithName() throws DockerException {
111103
CreateContainerResponse container = dockerClient
112104
.createContainerCmd("busybox").withName("container").withCmd("env").exec();
113105

114-
tmpContainers.add(container.getId());
115-
116106
LOG.info("Created container {}", container.toString());
117107

118108
assertThat(container.getId(), not(isEmptyString()));

src/test/java/com/github/dockerjava/core/command/InfoCmdImplTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ public void info() throws DockerException {
5353
assertThat(container.getId(), not(isEmptyOrNullString()));
5454

5555
dockerClient.startContainerCmd(container.getId()).exec();
56-
tmpContainers.add(container.getId());
5756

5857
Info dockerInfo = dockerClient.infoCmd().exec();
5958
LOG.info(dockerInfo.toString());

src/test/java/com/github/dockerjava/core/command/KillContainerCmdImplTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ public void testKillContainer() throws DockerException {
5555
LOG.info("Created container: {}", container.toString());
5656
assertThat(container.getId(), not(isEmptyString()));
5757
dockerClient.startContainerCmd(container.getId()).exec();
58-
tmpContainers.add(container.getId());
5958

6059
LOG.info("Killing container: {}", container.getId());
6160
dockerClient.killContainerCmd(container.getId()).exec();

0 commit comments

Comments
 (0)