Skip to content

Commit f0dc0c7

Browse files
author
Marcus Linke
committed
Added missing exec implementations as well as appropriate tests
1 parent e837b81 commit f0dc0c7

File tree

63 files changed

+3443
-248
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+3443
-248
lines changed

src/main/java/com/github/dockerjava/api/command/ExecCreateCmd.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.github.dockerjava.api.command;
22

3+
import java.io.InputStream;
4+
35
import javax.annotation.CheckForNull;
46
import javax.annotation.Nonnull;
57

src/main/java/com/github/dockerjava/api/command/ExecStartCmd.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import javax.annotation.CheckForNull;
66
import javax.annotation.Nonnull;
77

8-
import com.github.dockerjava.api.NotFoundException;
98
import com.github.dockerjava.api.async.ResultCallback;
109
import com.github.dockerjava.api.model.Frame;
1110

@@ -20,12 +19,17 @@ public interface ExecStartCmd extends AsyncDockerCmd<ExecStartCmd, Frame> {
2019
@CheckForNull
2120
public Boolean hasTtyEnabled();
2221

22+
@CheckForNull
23+
public InputStream getStdin();
24+
2325
public ExecStartCmd withDetach(Boolean detach);
2426

2527
public ExecStartCmd withExecId(@Nonnull String execId);
2628

2729
public ExecStartCmd withTty(Boolean tty);
2830

31+
public ExecStartCmd withStdIn(InputStream stdin);
32+
2933
/**
3034
*
3135
* @throws com.github.dockerjava.api.NotFoundException

src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public void onError(Throwable throwable) {
6363

6464
@Override
6565
public void onComplete() {
66+
System.err.println("callback onComplete");
6667
try {
6768
close();
6869
} catch (IOException e) {

src/main/java/com/github/dockerjava/core/command/ExecCreateCmdImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import static com.google.common.base.Preconditions.checkNotNull;
44

5+
import java.io.InputStream;
6+
7+
import com.fasterxml.jackson.annotation.JsonIgnore;
58
import com.fasterxml.jackson.annotation.JsonInclude;
69
import com.fasterxml.jackson.annotation.JsonProperty;
710
import com.fasterxml.jackson.annotation.JsonInclude.Include;

src/main/java/com/github/dockerjava/core/command/ExecStartCmdImpl.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
import static com.google.common.base.Preconditions.checkNotNull;
44

5+
import java.io.InputStream;
6+
7+
import com.fasterxml.jackson.annotation.JsonIgnore;
58
import com.github.dockerjava.api.async.ResultCallback;
9+
import com.github.dockerjava.api.command.ExecCreateCmd;
610
import com.github.dockerjava.api.command.ExecStartCmd;
711
import com.github.dockerjava.api.model.Frame;
812

@@ -12,6 +16,8 @@ public class ExecStartCmdImpl extends AbstrAsyncDockerCmd<ExecStartCmd, Frame> i
1216

1317
private Boolean detach, tty;
1418

19+
private InputStream stdin;
20+
1521
public ExecStartCmdImpl(ExecStartCmd.Exec exec, String execId) {
1622
super(exec);
1723
withExecId(execId);
@@ -39,6 +45,13 @@ public Boolean hasTtyEnabled() {
3945
return tty;
4046
}
4147

48+
@Override
49+
@JsonIgnore
50+
public InputStream getStdin() {
51+
return stdin;
52+
}
53+
54+
4255
@Override
4356
public ExecStartCmd withDetach(Boolean detach) {
4457
this.detach = detach;
@@ -51,6 +64,12 @@ public ExecStartCmd withTty(Boolean tty) {
5164
return this;
5265
}
5366

67+
@Override
68+
public ExecStartCmd withStdIn(InputStream stdin) {
69+
this.stdin = stdin;
70+
return this;
71+
}
72+
5473
/**
5574
* @throws com.github.dockerjava.api.NotFoundException
5675
* No such exec instance

src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.apache.commons.io.filefilter.TrueFileFilter;
1818

1919
import java.io.File;
20+
import java.io.FileInputStream;
2021
import java.io.IOException;
2122
import java.io.InputStream;
2223
import java.util.ArrayList;
@@ -133,10 +134,18 @@ public InputStream buildDockerFolderTar(File directory) {
133134
dockerFolderTar = CompressArchiveUtil.archiveTARFiles(directory, filesToAdd,
134135
archiveNameWithOutExtension);
135136

136-
final InputStream tarInputStream = FileUtils.openInputStream(dockerFolderTar);
137+
long length = dockerFolderTar.length();
138+
139+
final FileInputStream tarInputStream = FileUtils.openInputStream(dockerFolderTar);
137140
final File tarFile = dockerFolderTar;
138141

139142
return new InputStream() {
143+
144+
@Override
145+
public int available() throws IOException {
146+
return tarInputStream.available();
147+
}
148+
140149
@Override
141150
public int read() throws IOException {
142151
return tarInputStream.read();

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

Lines changed: 43 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,15 @@
7474
import com.github.dockerjava.core.command.ExecStartCmdImpl;
7575
import com.github.dockerjava.core.command.ExecStartResultCallback;
7676
import com.github.dockerjava.core.command.InfoCmdImpl;
77+
import com.github.dockerjava.netty.exec.AttachContainerCmdExec;
7778
import com.github.dockerjava.netty.exec.AuthCmdExec;
79+
import com.github.dockerjava.netty.exec.BuildImageCmdExec;
80+
import com.github.dockerjava.netty.exec.CommitCmdExec;
81+
import com.github.dockerjava.netty.exec.ContainerDiffCmdExec;
7882
import com.github.dockerjava.netty.exec.CopyFileFromContainerCmdExec;
7983
import com.github.dockerjava.netty.exec.CreateContainerCmdExec;
84+
import com.github.dockerjava.netty.exec.CreateImageCmdExec;
85+
import com.github.dockerjava.netty.exec.EventsCmdExec;
8086
import com.github.dockerjava.netty.exec.ExecCreateCmdExec;
8187
import com.github.dockerjava.netty.exec.ExecStartCmdExec;
8288
import com.github.dockerjava.netty.exec.InfoCmdExec;
@@ -85,16 +91,30 @@
8591
import com.github.dockerjava.netty.exec.InspectImageCmdExec;
8692
import com.github.dockerjava.netty.exec.KillContainerCmdExec;
8793
import com.github.dockerjava.netty.exec.ListContainersCmdExec;
94+
import com.github.dockerjava.netty.exec.ListImagesCmdExec;
8895
import com.github.dockerjava.netty.exec.LogContainerCmdExec;
96+
import com.github.dockerjava.netty.exec.PauseContainerCmdExec;
97+
import com.github.dockerjava.netty.exec.PingCmdExec;
98+
import com.github.dockerjava.netty.exec.PullImageCmdExec;
99+
import com.github.dockerjava.netty.exec.PushImageCmdExec;
89100
import com.github.dockerjava.netty.exec.RemoveContainerCmdExec;
101+
import com.github.dockerjava.netty.exec.RemoveImageCmdExec;
102+
import com.github.dockerjava.netty.exec.RestartContainerCmdExec;
103+
import com.github.dockerjava.netty.exec.SaveImageCmdExec;
104+
import com.github.dockerjava.netty.exec.SearchImagesCmdExec;
90105
import com.github.dockerjava.netty.exec.StartContainerCmdExec;
106+
import com.github.dockerjava.netty.exec.StatsCmdExec;
91107
import com.github.dockerjava.netty.exec.StopContainerCmdExec;
108+
import com.github.dockerjava.netty.exec.TagImageCmdExec;
109+
import com.github.dockerjava.netty.exec.TopContainerCmdExec;
110+
import com.github.dockerjava.netty.exec.UnpauseContainerCmdExec;
111+
import com.github.dockerjava.netty.exec.VersionCmdExec;
92112
import com.github.dockerjava.netty.exec.WaitContainerCmdExec;
93113

94114
/**
95-
* http://stackoverflow.com/questions/33296749/netty-connect-to-unix-domain- socket-failed
115+
* http://stackoverflow.com/questions/33296749/netty-connect-to-unix-domain-socket-failed
96116
* http://netty.io/wiki/native-transports.html
97-
* https://github.com/netty/netty/blob/master/example/src/main/java/io/netty/ example/http/snoop/HttpSnoopClient.java
117+
* https://github.com/netty/netty/blob/master/example/src/main/java/io/netty/example/http/snoop/HttpSnoopClient.java
98118
*
99119
* @author marcus
100120
*
@@ -271,56 +291,47 @@ public InfoCmd.Exec createInfoCmdExec() {
271291

272292
@Override
273293
public PingCmd.Exec createPingCmdExec() {
274-
return null; // new PingCmdExec(getBaseResource(),
275-
// getDockerClientConfig());
294+
return new PingCmdExec(getBaseResource(), getDockerClientConfig());
276295
}
277296

278297
@Override
279298
public VersionCmd.Exec createVersionCmdExec() {
280-
return null; // new VersionCmdExec(getBaseResource(),
281-
// getDockerClientConfig());
299+
return new VersionCmdExec(getBaseResource(), getDockerClientConfig());
282300
}
283301

284302
@Override
285303
public PullImageCmd.Exec createPullImageCmdExec() {
286-
return null; // new PullImageCmdExec(getBaseResource(),
287-
// getDockerClientConfig());
304+
return new PullImageCmdExec(getBaseResource(), getDockerClientConfig());
288305
}
289306

290307
@Override
291308
public PushImageCmd.Exec createPushImageCmdExec() {
292-
return null; // new PushImageCmdExec(getBaseResource(),
293-
// getDockerClientConfig());
309+
return new PushImageCmdExec(getBaseResource(), getDockerClientConfig());
294310
}
295311

296312
@Override
297313
public SaveImageCmd.Exec createSaveImageCmdExec() {
298-
return null; // new SaveImageCmdExec(getBaseResource(),
299-
// getDockerClientConfig());
314+
return new SaveImageCmdExec(getBaseResource(), getDockerClientConfig());
300315
}
301316

302317
@Override
303318
public CreateImageCmd.Exec createCreateImageCmdExec() {
304-
return null; // new CreateImageCmdExec(getBaseResource(),
305-
// getDockerClientConfig());
319+
return new CreateImageCmdExec(getBaseResource(), getDockerClientConfig());
306320
}
307321

308322
@Override
309323
public SearchImagesCmd.Exec createSearchImagesCmdExec() {
310-
return null; // new SearchImagesCmdExec(getBaseResource(),
311-
// getDockerClientConfig());
324+
return new SearchImagesCmdExec(getBaseResource(), getDockerClientConfig());
312325
}
313326

314327
@Override
315328
public RemoveImageCmd.Exec createRemoveImageCmdExec() {
316-
return null; // new RemoveImageCmdExec(getBaseResource(),
317-
// getDockerClientConfig());
329+
return new RemoveImageCmdExec(getBaseResource(), getDockerClientConfig());
318330
}
319331

320332
@Override
321333
public ListImagesCmd.Exec createListImagesCmdExec() {
322-
return null; // new ListImagesCmdExec(getBaseResource(),
323-
// getDockerClientConfig());
334+
return new ListImagesCmdExec(getBaseResource(), getDockerClientConfig());
324335
}
325336

326337
@Override
@@ -365,8 +376,7 @@ public WaitContainerCmd.Exec createWaitContainerCmdExec() {
365376

366377
@Override
367378
public AttachContainerCmd.Exec createAttachContainerCmdExec() {
368-
return null; // new AttachContainerCmdExec(getBaseResource(),
369-
// getDockerClientConfig());
379+
return new AttachContainerCmdExec(getBaseResource(), getDockerClientConfig());
370380
}
371381

372382
@Override
@@ -396,8 +406,7 @@ public StopContainerCmd.Exec createStopContainerCmdExec() {
396406

397407
@Override
398408
public ContainerDiffCmd.Exec createContainerDiffCmdExec() {
399-
return null; // new ContainerDiffCmdExec(getBaseResource(),
400-
// getDockerClientConfig());
409+
return new ContainerDiffCmdExec(getBaseResource(), getDockerClientConfig());
401410
}
402411

403412
@Override
@@ -407,63 +416,52 @@ public KillContainerCmd.Exec createKillContainerCmdExec() {
407416

408417
@Override
409418
public RestartContainerCmd.Exec createRestartContainerCmdExec() {
410-
return null; // new RestartContainerCmdExec(getBaseResource(),
411-
// getDockerClientConfig());
419+
return new RestartContainerCmdExec(getBaseResource(), getDockerClientConfig());
412420
}
413421

414422
@Override
415423
public CommitCmd.Exec createCommitCmdExec() {
416-
return null; // new CommitCmdExec(getBaseResource(),
417-
// getDockerClientConfig());
424+
return new CommitCmdExec(getBaseResource(), getDockerClientConfig());
418425
}
419426

420427
@Override
421428
public BuildImageCmd.Exec createBuildImageCmdExec() {
422-
return null; // new BuildImageCmdExec(getBaseResource(),
423-
// getDockerClientConfig());
429+
return new BuildImageCmdExec(getBaseResource(), getDockerClientConfig());
424430
}
425431

426432
@Override
427433
public TopContainerCmd.Exec createTopContainerCmdExec() {
428-
return null; // new TopContainerCmdExec(getBaseResource(),
429-
// getDockerClientConfig());
434+
return new TopContainerCmdExec(getBaseResource(), getDockerClientConfig());
430435
}
431436

432437
@Override
433438
public TagImageCmd.Exec createTagImageCmdExec() {
434-
return null; // new TagImageCmdExec(getBaseResource(),
435-
// getDockerClientConfig());
439+
return new TagImageCmdExec(getBaseResource(), getDockerClientConfig());
436440
}
437441

438442
@Override
439443
public PauseContainerCmd.Exec createPauseContainerCmdExec() {
440-
return null; // new PauseContainerCmdExec(getBaseResource(),
441-
// getDockerClientConfig());
444+
return new PauseContainerCmdExec(getBaseResource(), getDockerClientConfig());
442445
}
443446

444447
@Override
445448
public UnpauseContainerCmd.Exec createUnpauseContainerCmdExec() {
446-
return null; // new UnpauseContainerCmdExec(getBaseResource(),
447-
// getDockerClientConfig());
449+
return new UnpauseContainerCmdExec(getBaseResource(), getDockerClientConfig());
448450
}
449451

450452
@Override
451453
public EventsCmd.Exec createEventsCmdExec() {
452-
return null; // new EventsCmdExec(getBaseResource(),
453-
// getDockerClientConfig());
454+
return new EventsCmdExec(getBaseResource(), getDockerClientConfig());
454455
}
455456

456457
@Override
457458
public StatsCmd.Exec createStatsCmdExec() {
458-
return null; // new StatsCmdExec(getBaseResource(),
459-
// getDockerClientConfig());
459+
return new StatsCmdExec(getBaseResource(), getDockerClientConfig());
460460
}
461461

462462
@Override
463463
public void close() throws IOException {
464-
// checkNotNull(client, "Factory not initialized. You probably forgot to
465-
// call init()!");
466-
// client.close();
464+
checkNotNull(eventLoopGroup, "Factory not initialized. You probably forgot to call init()!");
467465

468466
eventLoopGroup.shutdownGracefully();
469467
}

0 commit comments

Comments
 (0)