Skip to content

Commit bcf2dbf

Browse files
committed
Be less api version specific
1 parent f2a3cea commit bcf2dbf

File tree

12 files changed

+153
-192
lines changed

12 files changed

+153
-192
lines changed

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/BuildInfoExtensions.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import de.gesellix.docker.remote.api.ImageID
66
fun List<BuildInfo>.getImageId(): ImageID? {
77
val reversedInfos = this.reversed()
88
val firstAux = reversedInfos.stream()
9-
.filter { (_, _, _, _, _, _, _, aux): BuildInfo -> aux != null }
9+
.filter { info -> info.aux != null }
1010
.findFirst()
1111
if (firstAux.isPresent) {
1212
return firstAux.get().aux
@@ -43,5 +43,5 @@ fun List<BuildInfo>.getError(): BuildInfo? {
4343

4444
fun List<BuildInfo>.hasError(): Boolean {
4545
return this.stream()
46-
.anyMatch { (_, _, error): BuildInfo -> error != null }
46+
.anyMatch { info -> info.errorDetail != null && info.errorDetail?.message != null }
4747
}

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/CreateImageInfoExtensions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import de.gesellix.docker.remote.api.CreateImageInfo
55
fun List<CreateImageInfo>.getImageId(): String? {
66
val reversedInfos = this.reversed()
77
val firstStatus = reversedInfos.stream()
8-
.filter { (_, _, _, status, _, _): CreateImageInfo -> status != null }
8+
.filter { info -> info.status != null }
99
.findFirst()
1010
if (firstStatus.isPresent) {
1111
return firstStatus.get().status

api-client/src/test/java/de/gesellix/docker/remote/api/client/BuildInfoExtensionsTest.java

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,26 @@ class BuildInfoExtensionsTest {
1717

1818
@Test
1919
public void getErrorFromFailedBuild() {
20+
ErrorDetail errorDetail = new ErrorDetail(null, "invalid reference format");
21+
BuildInfo buildInfo = new BuildInfo();
22+
buildInfo.setError(errorDetail.getMessage());
23+
buildInfo.setErrorDetail(errorDetail);
2024
List<BuildInfo> infos = new ArrayList<>();
21-
infos.add(new BuildInfo(null, null, "invalid reference format", new ErrorDetail(null, "invalid reference format"), null, null, null, null));
25+
infos.add(buildInfo);
2226

2327
BuildInfo errorInfo = BuildInfoExtensionsKt.getError(infos);
2428

25-
assertEquals("invalid reference format", errorInfo.getError());
29+
assertEquals("invalid reference format", errorInfo.getErrorDetail().getMessage());
2630
}
2731

2832
@Test
2933
public void getHasErrorInFailedBuild() {
34+
ErrorDetail errorDetail = new ErrorDetail(null, "invalid reference format");
35+
BuildInfo buildInfo = new BuildInfo();
36+
buildInfo.setError(errorDetail.getMessage());
37+
buildInfo.setErrorDetail(errorDetail);
3038
List<BuildInfo> infos = new ArrayList<>();
31-
infos.add(new BuildInfo(null, null, "invalid reference format", new ErrorDetail(null, "invalid reference format"), null, null, null, null));
39+
infos.add(buildInfo);
3240

3341
boolean hasError = BuildInfoExtensionsKt.hasError(infos);
3442

@@ -37,8 +45,10 @@ public void getHasErrorInFailedBuild() {
3745

3846
@Test
3947
public void getHasNoErrorInSuccessfulBuild() {
48+
BuildInfo buildInfo = new BuildInfo();
49+
buildInfo.setStream("Successfully built the wind\ncaught it");
4050
List<BuildInfo> infos = new ArrayList<>();
41-
infos.add(new BuildInfo(null, "Successfully built the wind\ncaught it", null, null, null, null, null, null));
51+
infos.add(buildInfo);
4252

4353
boolean hasError = BuildInfoExtensionsKt.hasError(infos);
4454

@@ -47,8 +57,12 @@ public void getHasNoErrorInSuccessfulBuild() {
4757

4858
@Test
4959
public void getImageIdFromFailedBuild() {
60+
ErrorDetail errorDetail = new ErrorDetail(null, "invalid reference format");
61+
BuildInfo buildInfo = new BuildInfo();
62+
buildInfo.setError(errorDetail.getMessage());
63+
buildInfo.setErrorDetail(errorDetail);
5064
List<BuildInfo> infos = new ArrayList<>();
51-
infos.add(new BuildInfo(null, null, "invalid reference format", new ErrorDetail(null, "invalid reference format"), null, null, null, null));
65+
infos.add(buildInfo);
5266

5367
ImageID imageId = BuildInfoExtensionsKt.getImageId(infos);
5468

@@ -57,11 +71,19 @@ public void getImageIdFromFailedBuild() {
5771

5872
@Test
5973
public void getImageIdFromAux() {
74+
BuildInfo buildInfo1 = new BuildInfo();
75+
buildInfo1.setAux(new ImageID("sha256:expected-id"));
76+
BuildInfo buildInfo2 = new BuildInfo();
77+
buildInfo2.setStream("Successfully built the wind\ncaught it");;
78+
BuildInfo buildInfo3 = new BuildInfo();
79+
buildInfo3.setStream("Successfully built f9d5f290d048\nfoo bar");
80+
BuildInfo buildInfo4 = new BuildInfo();
81+
buildInfo4.setStream("Successfully tagged image:tag\nbar baz");
6082
List<BuildInfo> infos = new ArrayList<>();
61-
infos.add(new BuildInfo(null, null, null, null, null, null, null, new ImageID("sha256:expected-id")));
62-
infos.add(new BuildInfo(null, "Successfully built the wind\ncaught it", null, null, null, null, null, null));
63-
infos.add(new BuildInfo(null, "Successfully built f9d5f290d048\nfoo bar", null, null, null, null, null, null));
64-
infos.add(new BuildInfo(null, "Successfully tagged image:tag\nbar baz", null, null, null, null, null, null));
83+
infos.add(buildInfo1);
84+
infos.add(buildInfo2);
85+
infos.add(buildInfo3);
86+
infos.add(buildInfo4);
6587

6688
ImageID imageId = BuildInfoExtensionsKt.getImageId(infos);
6789

@@ -70,10 +92,16 @@ public void getImageIdFromAux() {
7092

7193
@Test
7294
public void getImageIdFromStreamWithBuildMessage() {
95+
BuildInfo buildInfo1 = new BuildInfo();
96+
buildInfo1.setStream("Successfully built the wind\ncaught it");
97+
BuildInfo buildInfo2 = new BuildInfo();
98+
buildInfo2.setStream("Successfully built f9d5f290d048\nfoo bar");
99+
BuildInfo buildInfo3 = new BuildInfo();
100+
buildInfo3.setStream("Successfully tagged image:tag\nbar baz");
73101
List<BuildInfo> infos = new ArrayList<>();
74-
infos.add(new BuildInfo(null, "Successfully built the wind\ncaught it", null, null, null, null, null, null));
75-
infos.add(new BuildInfo(null, "Successfully built f9d5f290d048\nfoo bar", null, null, null, null, null, null));
76-
infos.add(new BuildInfo(null, "Successfully tagged image:tag\nbar baz", null, null, null, null, null, null));
102+
infos.add(buildInfo1);
103+
infos.add(buildInfo2);
104+
infos.add(buildInfo3);
77105

78106
ImageID imageId = BuildInfoExtensionsKt.getImageId(infos);
79107

@@ -82,8 +110,10 @@ public void getImageIdFromStreamWithBuildMessage() {
82110

83111
@Test
84112
public void getImageIdFromStreamWithTagMessage() {
113+
BuildInfo buildInfo = new BuildInfo();
114+
buildInfo.setStream("Successfully tagged image:tag\nbar baz");
85115
List<BuildInfo> infos = new ArrayList<>();
86-
infos.add(new BuildInfo(null, "Successfully tagged image:tag\nbar baz", null, null, null, null, null, null));
116+
infos.add(buildInfo);
87117

88118
ImageID imageId = BuildInfoExtensionsKt.getImageId(infos);
89119

api-client/src/test/java/de/gesellix/docker/remote/api/client/ContainerApiIntegrationTest.java

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -107,25 +107,14 @@ public void containerList() {
107107
public void containerCreate() {
108108
imageApi.imageCreate(testImage.getImageName(), null, null, testImage.getImageTag(), null, null, null, null, null);
109109

110-
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest(
111-
null, null, null,
112-
false, false, false,
113-
null,
114-
false, null, null,
115-
null,
116-
singletonList("-"),
117-
null,
118-
null,
119-
testImage.getImageWithTag(),
120-
null, null, null,
121-
null, null,
122-
null,
123-
singletonMap(LABEL_KEY, LABEL_VALUE),
124-
null, null,
125-
null,
126-
null,
127-
null
128-
);
110+
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest();
111+
containerCreateRequest.setAttachStdin(false);
112+
containerCreateRequest.setAttachStdout(false);
113+
containerCreateRequest.setAttachStderr(false);
114+
containerCreateRequest.setTty(false);
115+
containerCreateRequest.setCmd(singletonList("-"));
116+
containerCreateRequest.setImage(testImage.getImageWithTag());
117+
containerCreateRequest.setLabels(singletonMap(LABEL_KEY, LABEL_VALUE));
129118
ContainerCreateResponse container = containerApi.containerCreate(containerCreateRequest, "container-create-test");
130119
assertTrue(container.getId().matches("\\w+"));
131120

@@ -136,25 +125,14 @@ public void containerCreate() {
136125
public void containerDelete() {
137126
imageApi.imageCreate(testImage.getImageName(), null, null, testImage.getImageTag(), null, null, null, null, null);
138127

139-
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest(
140-
null, null, null,
141-
false, false, false,
142-
null,
143-
false, null, null,
144-
null,
145-
singletonList("-"),
146-
null,
147-
null,
148-
testImage.getImageWithTag(),
149-
null, null, null,
150-
null, null,
151-
null,
152-
singletonMap(LABEL_KEY, LABEL_VALUE),
153-
null, null,
154-
null,
155-
null,
156-
null
157-
);
128+
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest();
129+
containerCreateRequest.setAttachStdin(false);
130+
containerCreateRequest.setAttachStdout(false);
131+
containerCreateRequest.setAttachStderr(false);
132+
containerCreateRequest.setTty(false);
133+
containerCreateRequest.setCmd(singletonList("-"));
134+
containerCreateRequest.setImage(testImage.getImageWithTag());
135+
containerCreateRequest.setLabels(singletonMap(LABEL_KEY, LABEL_VALUE));
158136
containerApi.containerCreate(containerCreateRequest, "container-delete-test");
159137
assertDoesNotThrow(() -> containerApi.containerDelete("container-delete-test", null, null, null));
160138
assertDoesNotThrow(() -> containerApi.containerDelete("container-delete-missing", null, null, null));

api-client/src/test/java/de/gesellix/docker/remote/api/client/CreateImageInfoExtensionsTest.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,20 @@ class CreateImageInfoExtensionsTest {
1212

1313
@Test
1414
public void getImageIdFromStatus() {
15+
CreateImageInfo imageInfo1 = new CreateImageInfo();
16+
imageInfo1.setId("example");
17+
imageInfo1.setStatus("Pulling from gesellix/echo-server");
18+
CreateImageInfo imageInfo2 = new CreateImageInfo();
19+
imageInfo2.setStatus("Digest: sha256:04c0275878dc243b2f92193467cb33cdb9ee2262be64b627ed476de73e399244");
20+
CreateImageInfo imageInfo3 = new CreateImageInfo();
21+
imageInfo3.setStatus("Status: Image is up to date for gesellix/echo-server:example");
22+
CreateImageInfo imageInfo4 = new CreateImageInfo();
23+
imageInfo4.setStatus("sha256:87f5e747ad067f91a7c4adf154deea20cebc3a749be5c2864a0c65cf70ddd8c4");
1524
List<CreateImageInfo> infos = new ArrayList<>();
16-
infos.add(new CreateImageInfo("example", null, null, "Pulling from gesellix/echo-server", null, null));
17-
infos.add(new CreateImageInfo(null, null, null, "Digest: sha256:04c0275878dc243b2f92193467cb33cdb9ee2262be64b627ed476de73e399244", null, null));
18-
infos.add(new CreateImageInfo(null, null, null, "Status: Image is up to date for gesellix/echo-server:example", null, null));
19-
infos.add(new CreateImageInfo(null, null, null, "sha256:87f5e747ad067f91a7c4adf154deea20cebc3a749be5c2864a0c65cf70ddd8c4", null, null));
25+
infos.add(imageInfo1);
26+
infos.add(imageInfo2);
27+
infos.add(imageInfo3);
28+
infos.add(imageInfo4);
2029

2130
String imageId = CreateImageInfoExtensionsKt.getImageId(infos);
2231

api-client/src/test/java/de/gesellix/docker/remote/api/client/ExecApiIntegrationTest.java

Lines changed: 15 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -65,25 +65,13 @@ public void containerExecNonInteractive() {
6565

6666
imageApi.imageCreate(testImage.getImageName(), null, null, testImage.getImageTag(), null, null, null, null, null);
6767

68-
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest(
69-
null, null, null,
70-
false, false, false,
71-
null,
72-
false, null, null,
73-
null,
74-
null,
75-
null,
76-
null,
77-
testImage.getImageWithTag(),
78-
null, null, null,
79-
null, null,
80-
null,
81-
singletonMap(LABEL_KEY, LABEL_VALUE),
82-
null, null,
83-
null,
84-
null,
85-
null
86-
);
68+
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest();
69+
containerCreateRequest.setAttachStdin(false);
70+
containerCreateRequest.setAttachStdout(false);
71+
containerCreateRequest.setAttachStderr(false);
72+
containerCreateRequest.setTty(false);
73+
containerCreateRequest.setImage(testImage.getImageWithTag());
74+
containerCreateRequest.setLabels(singletonMap(LABEL_KEY, LABEL_VALUE));
8775
containerApi.containerCreate(containerCreateRequest, "container-exec-test");
8876
containerApi.containerStart("container-exec-test", null);
8977

@@ -109,25 +97,14 @@ public void containerExecInteractive() {
10997

11098
imageApi.imageCreate(testImage.getImageName(), null, null, testImage.getImageTag(), null, null, null, null, null);
11199

112-
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest(
113-
null, null, null,
114-
true, true, true,
115-
null,
116-
true, true, null,
117-
null,
118-
null,
119-
null,
120-
null,
121-
testImage.getImageWithTag(),
122-
null, null, null,
123-
null, null,
124-
null,
125-
singletonMap(LABEL_KEY, LABEL_VALUE),
126-
null, null,
127-
null,
128-
null,
129-
null
130-
);
100+
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest();
101+
containerCreateRequest.setAttachStdin(true);
102+
containerCreateRequest.setAttachStdout(true);
103+
containerCreateRequest.setAttachStderr(true);
104+
containerCreateRequest.setTty(true);
105+
containerCreateRequest.setOpenStdin(true);
106+
containerCreateRequest.setImage(testImage.getImageWithTag());
107+
containerCreateRequest.setLabels(singletonMap(LABEL_KEY, LABEL_VALUE));
131108
containerApi.containerCreate(containerCreateRequest, "container-exec-interactive-test");
132109
containerApi.containerStart("container-exec-interactive-test", null);
133110

api-client/src/test/java/de/gesellix/docker/remote/api/client/ImageApiIntegrationTest.java

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -184,25 +184,14 @@ public void imageCreateImportFromInputStream() throws IOException {
184184
@Test
185185
public void imageCommit() {
186186
imageApi.imageTag(testImage.getImageWithTag(), "test", "commit");
187-
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest(
188-
null, null, null,
189-
false, false, false,
190-
null,
191-
false, null, null,
192-
null,
193-
singletonList("-"),
194-
null,
195-
null,
196-
"test:commit",
197-
null, null, null,
198-
null, null,
199-
null,
200-
singletonMap(LABEL_KEY, LABEL_VALUE),
201-
null, null,
202-
null,
203-
null,
204-
null
205-
);
187+
ContainerCreateRequest containerCreateRequest = new ContainerCreateRequest();
188+
containerCreateRequest.setAttachStdin(false);
189+
containerCreateRequest.setAttachStdout(false);
190+
containerCreateRequest.setAttachStderr(false);
191+
containerCreateRequest.setTty(false);
192+
containerCreateRequest.setCmd(singletonList("-"));
193+
containerCreateRequest.setImage("test:commit");
194+
containerCreateRequest.setLabels(singletonMap(LABEL_KEY, LABEL_VALUE));
206195
ContainerCreateResponse container = containerApi.containerCreate(containerCreateRequest, "container-commit-test");
207196
IdResponse image = imageApi.imageCommit(container.getId(), "test", "committed", null, null, null, null, null);
208197
assertTrue(image.getId().matches("sha256:\\w+"));

0 commit comments

Comments
 (0)