File tree Expand file tree Collapse file tree 12 files changed +330
-0
lines changed
main/java/com/github/dockerjava
test/java/com/github/dockerjava Expand file tree Collapse file tree 12 files changed +330
-0
lines changed Original file line number Diff line number Diff line change 5656import com .github .dockerjava .api .command .UpdateContainerCmd ;
5757import com .github .dockerjava .api .command .VersionCmd ;
5858import com .github .dockerjava .api .command .WaitContainerCmd ;
59+ import com .github .dockerjava .api .command .RenameContainerCmd ;
5960import com .github .dockerjava .api .exception .DockerException ;
6061import com .github .dockerjava .api .model .AuthConfig ;
6162import com .github .dockerjava .api .model .Identifier ;
@@ -185,6 +186,15 @@ public interface DockerClient extends Closeable {
185186 */
186187 UpdateContainerCmd updateContainerCmd (@ Nonnull String containerId );
187188
189+ /**
190+ * Rename container.
191+ *
192+ * @param containerId id of the container
193+ * @return command
194+ * @since {@link RemoteApiVersion#VERSION_1_17}
195+ */
196+ RenameContainerCmd renameContainerCmd (@ Nonnull String containerId );
197+
188198 RestartContainerCmd restartContainerCmd (@ Nonnull String containerId );
189199
190200 CommitCmd commitCmd (@ Nonnull String containerId );
Original file line number Diff line number Diff line change 66import javax .net .ssl .SSLContext ;
77
88import com .github .dockerjava .core .DockerClientConfig ;
9+ import com .github .dockerjava .core .RemoteApiVersion ;
910
1011public interface DockerCmdExecFactory extends Closeable {
1112
@@ -71,6 +72,13 @@ public interface DockerCmdExecFactory extends Closeable {
7172
7273 UpdateContainerCmd .Exec createUpdateContainerCmdExec ();
7374
75+ /**
76+ * Rename container.
77+ *
78+ * @since {@link RemoteApiVersion#VERSION_1_17}
79+ */
80+ RenameContainerCmd .Exec createRenameContainerCmdExec ();
81+
7482 RestartContainerCmd .Exec createRestartContainerCmdExec ();
7583
7684 CommitCmd .Exec createCommitCmdExec ();
Original file line number Diff line number Diff line change 1+ package com .github .dockerjava .api .command ;
2+
3+ import com .github .dockerjava .api .exception .NotFoundException ;
4+ import com .github .dockerjava .core .RemoteApiVersion ;
5+
6+ import javax .annotation .CheckForNull ;
7+ import javax .annotation .Nonnull ;
8+
9+ /**
10+ * Rename a container.
11+ *
12+ * @since {@link RemoteApiVersion#VERSION_1_17}
13+ */
14+ public interface RenameContainerCmd extends SyncDockerCmd <Void > {
15+
16+ @ CheckForNull
17+ String getContainerId ();
18+
19+ RenameContainerCmd withContainerId (@ Nonnull String containerId );
20+
21+ @ CheckForNull
22+ String getName ();
23+
24+ RenameContainerCmd withName (@ Nonnull String name );
25+
26+ /**
27+ * @throws NotFoundException No such container
28+ */
29+ @ Override
30+ Void exec () throws NotFoundException ;
31+
32+ interface Exec extends DockerCmdSyncExec <RenameContainerCmd , Void > {
33+ }
34+ }
Original file line number Diff line number Diff line change 5858import com .github .dockerjava .api .command .UpdateContainerCmd ;
5959import com .github .dockerjava .api .command .VersionCmd ;
6060import com .github .dockerjava .api .command .WaitContainerCmd ;
61+ import com .github .dockerjava .api .command .RenameContainerCmd ;
6162import com .github .dockerjava .api .model .AuthConfig ;
6263import com .github .dockerjava .api .model .Identifier ;
6364import com .github .dockerjava .core .command .AttachContainerCmdImpl ;
109110import com .github .dockerjava .core .command .UpdateContainerCmdImpl ;
110111import com .github .dockerjava .core .command .VersionCmdImpl ;
111112import com .github .dockerjava .core .command .WaitContainerCmdImpl ;
113+ import com .github .dockerjava .core .command .RenameContainerCmdImpl ;
112114
113115import javax .annotation .Nonnull ;
114116
@@ -364,6 +366,11 @@ public UpdateContainerCmd updateContainerCmd(@Nonnull String containerId) {
364366 return new UpdateContainerCmdImpl (getDockerCmdExecFactory ().createUpdateContainerCmdExec (), containerId );
365367 }
366368
369+ @ Override
370+ public RenameContainerCmd renameContainerCmd (@ Nonnull String containerId ) {
371+ return new RenameContainerCmdImpl (getDockerCmdExecFactory ().createRenameContainerCmdExec (), containerId );
372+ }
373+
367374 @ Override
368375 public RestartContainerCmd restartContainerCmd (String containerId ) {
369376 return new RestartContainerCmdImpl (getDockerCmdExecFactory ().createRestartContainerCmdExec (), containerId );
Original file line number Diff line number Diff line change 1+ package com .github .dockerjava .core .command ;
2+
3+ import com .github .dockerjava .api .command .RenameContainerCmd ;
4+ import com .github .dockerjava .api .exception .NotFoundException ;
5+
6+ import javax .annotation .Nonnull ;
7+
8+ import static com .google .common .base .Preconditions .checkNotNull ;
9+
10+ public class RenameContainerCmdImpl extends AbstrDockerCmd <RenameContainerCmd , Void > implements RenameContainerCmd {
11+
12+ private String containerId ;
13+
14+ private String name ;
15+
16+ public RenameContainerCmdImpl (RenameContainerCmd .Exec exec , String containerId ) {
17+ super (exec );
18+ withContainerId (containerId );
19+ }
20+
21+ @ Override
22+ public String getContainerId () {
23+ return containerId ;
24+ }
25+
26+ @ Override
27+ public String getName () {
28+ return name ;
29+ }
30+
31+ @ Override
32+ public RenameContainerCmd withContainerId (@ Nonnull String containerId ) {
33+ checkNotNull (containerId , "containerId was not specified" );
34+ this .containerId = containerId ;
35+ return this ;
36+ }
37+
38+ @ Override
39+ public RenameContainerCmd withName (@ Nonnull String name ) {
40+ checkNotNull (name , "name was not specified" );
41+ this .name = name ;
42+ return this ;
43+ }
44+
45+ /**
46+ * @throws NotFoundException No such container
47+ */
48+ @ Override
49+ public Void exec () throws NotFoundException {
50+ return super .exec ();
51+ }
52+ }
Original file line number Diff line number Diff line change 8080import com .github .dockerjava .api .command .UnpauseContainerCmd ;
8181import com .github .dockerjava .api .command .VersionCmd ;
8282import com .github .dockerjava .api .command .WaitContainerCmd ;
83+ import com .github .dockerjava .api .command .RenameContainerCmd ;
8384import com .github .dockerjava .api .exception .DockerClientException ;
8485import com .github .dockerjava .core .DockerClientConfig ;
8586import com .github .dockerjava .core .LocalDirectorySSLConfig ;
@@ -417,6 +418,11 @@ public UpdateContainerCmd.Exec createUpdateContainerCmdExec() {
417418 return new UpdateContainerCmdExec (getBaseResource (), getDockerClientConfig ());
418419 }
419420
421+ @ Override
422+ public RenameContainerCmd .Exec createRenameContainerCmdExec () {
423+ return new RenameContainerCmdExec (getBaseResource (), getDockerClientConfig ());
424+ }
425+
420426 @ Override
421427 public RestartContainerCmd .Exec createRestartContainerCmdExec () {
422428 return new RestartContainerCmdExec (getBaseResource (), getDockerClientConfig ());
Original file line number Diff line number Diff line change 1+ package com .github .dockerjava .jaxrs ;
2+
3+ import javax .ws .rs .client .WebTarget ;
4+ import javax .ws .rs .core .MediaType ;
5+
6+ import com .github .dockerjava .api .command .RenameContainerCmd ;
7+ import com .github .dockerjava .core .DockerClientConfig ;
8+ import org .slf4j .Logger ;
9+ import org .slf4j .LoggerFactory ;
10+
11+ public class RenameContainerCmdExec extends AbstrSyncDockerCmdExec <RenameContainerCmd , Void >
12+ implements RenameContainerCmd .Exec {
13+ private static final Logger LOG = LoggerFactory .getLogger (RenameContainerCmdExec .class );
14+
15+ public RenameContainerCmdExec (WebTarget baseResource , DockerClientConfig dockerClientConfig ) {
16+ super (baseResource , dockerClientConfig );
17+ }
18+
19+ @ Override
20+ protected Void execute (RenameContainerCmd command ) {
21+ WebTarget webResource = getBaseResource ().path ("/containers/{id}/rename" )
22+ .resolveTemplate ("id" , command .getContainerId ())
23+ .queryParam ("name" , command .getName ());
24+
25+ LOG .trace ("POST: {}" , webResource );
26+ webResource .request ().accept (MediaType .APPLICATION_JSON ).post (null );
27+
28+ return null ;
29+ }
30+ }
Original file line number Diff line number Diff line change 5050import com .github .dockerjava .api .command .UpdateContainerCmd ;
5151import com .github .dockerjava .api .command .VersionCmd ;
5252import com .github .dockerjava .api .command .WaitContainerCmd ;
53+ import com .github .dockerjava .api .command .RenameContainerCmd ;
5354import com .github .dockerjava .core .DockerClientConfig ;
5455import com .github .dockerjava .core .DockerClientImpl ;
5556import com .github .dockerjava .core .LocalDirectorySSLConfig ;
102103import com .github .dockerjava .netty .exec .UpdateContainerCmdExec ;
103104import com .github .dockerjava .netty .exec .VersionCmdExec ;
104105import com .github .dockerjava .netty .exec .WaitContainerCmdExec ;
106+ import com .github .dockerjava .netty .exec .RenameContainerCmdExec ;
105107
106108import io .netty .bootstrap .Bootstrap ;
107109import io .netty .channel .ChannelInitializer ;
@@ -465,6 +467,11 @@ public UpdateContainerCmd.Exec createUpdateContainerCmdExec() {
465467 return new UpdateContainerCmdExec (getBaseResource (), getDockerClientConfig ());
466468 }
467469
470+ @ Override
471+ public RenameContainerCmd .Exec createRenameContainerCmdExec () {
472+ return new RenameContainerCmdExec (getBaseResource (), getDockerClientConfig ());
473+ }
474+
468475 @ Override
469476 public RestartContainerCmd .Exec createRestartContainerCmdExec () {
470477 return new RestartContainerCmdExec (getBaseResource (), getDockerClientConfig ());
Original file line number Diff line number Diff line change 1+ package com .github .dockerjava .netty .exec ;
2+
3+ import com .github .dockerjava .api .command .RenameContainerCmd ;
4+ import com .github .dockerjava .core .DockerClientConfig ;
5+ import com .github .dockerjava .netty .MediaType ;
6+ import com .github .dockerjava .netty .WebTarget ;
7+ import org .slf4j .Logger ;
8+ import org .slf4j .LoggerFactory ;
9+
10+ public class RenameContainerCmdExec extends AbstrSyncDockerCmdExec <RenameContainerCmd , Void >
11+ implements RenameContainerCmd .Exec {
12+ private static final Logger LOG = LoggerFactory .getLogger (RenameContainerCmdExec .class );
13+
14+ public RenameContainerCmdExec (WebTarget baseResource , DockerClientConfig dockerClientConfig ) {
15+ super (baseResource , dockerClientConfig );
16+ }
17+
18+ @ Override
19+ protected Void execute (RenameContainerCmd command ) {
20+ WebTarget webResource = getBaseResource ().path ("/containers/{id}/rename" )
21+ .resolveTemplate ("id" , command .getContainerId ())
22+ .queryParam ("name" , command .getName ());
23+
24+ LOG .trace ("POST: {}" , webResource );
25+ webResource .request ().accept (MediaType .APPLICATION_JSON ).post (null );
26+
27+ return null ;
28+ }
29+ }
Original file line number Diff line number Diff line change @@ -240,6 +240,11 @@ public UpdateContainerCmd.Exec createUpdateContainerCmdExec() {
240240 return delegate .createUpdateContainerCmdExec ();
241241 }
242242
243+ @ Override
244+ public RenameContainerCmd .Exec createRenameContainerCmdExec (){
245+ return delegate .createRenameContainerCmdExec ();
246+ }
247+
243248 @ Override
244249 public RestartContainerCmd .Exec createRestartContainerCmdExec () {
245250 return delegate .createRestartContainerCmdExec ();
You can’t perform that action at this time.
0 commit comments