From a74883bbcd37bff0ea7759245e5e449778802b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A8=BE=E6=98=8E=E5=8D=8E?= Date: Wed, 10 Nov 2021 21:27:41 +0800 Subject: [PATCH 1/4] add missing cmd `RemoveSwarmNodeCmd` in client --- .../github/dockerjava/api/DockerClient.java | 10 ++++ .../dockerjava/api/DockerClientDelegate.java | 6 +++ .../api/command/RemoveSwarmNodeCmd.java | 2 +- .../dockerjava/core/DockerClientImpl.java | 7 +++ .../core/command/RemoveSwarmNodeCmdImpl.java | 6 +-- .../cmd/swarm/RemoveSwarmNodeCmdExecIT.java | 48 +++++++++++++++++++ 6 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/DockerClient.java b/docker-java-api/src/main/java/com/github/dockerjava/api/DockerClient.java index 7805300f5..9df5c5f11 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/DockerClient.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/DockerClient.java @@ -56,6 +56,7 @@ import com.github.dockerjava.api.command.RemoveNetworkCmd; import com.github.dockerjava.api.command.RemoveSecretCmd; import com.github.dockerjava.api.command.RemoveServiceCmd; +import com.github.dockerjava.api.command.RemoveSwarmNodeCmd; import com.github.dockerjava.api.command.RemoveVolumeCmd; import com.github.dockerjava.api.command.RenameContainerCmd; import com.github.dockerjava.api.command.ResizeContainerCmd; @@ -342,6 +343,15 @@ public interface DockerClient extends Closeable { */ UpdateSwarmNodeCmd updateSwarmNodeCmd(); + /** + * Remove the swarm node + * + * @param swarmNodeId swarmNodeId + * @return the command + * @since 1.24 + */ + RemoveSwarmNodeCmd removeSwarmNodeCmd(String swarmNodeId); + /** * List nodes in swarm * diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/DockerClientDelegate.java b/docker-java-api/src/main/java/com/github/dockerjava/api/DockerClientDelegate.java index bb5db859e..15f96df45 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/DockerClientDelegate.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/DockerClientDelegate.java @@ -56,6 +56,7 @@ import com.github.dockerjava.api.command.RemoveNetworkCmd; import com.github.dockerjava.api.command.RemoveSecretCmd; import com.github.dockerjava.api.command.RemoveServiceCmd; +import com.github.dockerjava.api.command.RemoveSwarmNodeCmd; import com.github.dockerjava.api.command.RemoveVolumeCmd; import com.github.dockerjava.api.command.RenameContainerCmd; import com.github.dockerjava.api.command.ResizeContainerCmd; @@ -423,6 +424,11 @@ public UpdateSwarmNodeCmd updateSwarmNodeCmd() { return getDockerClient().updateSwarmNodeCmd(); } + @Override + public RemoveSwarmNodeCmd removeSwarmNodeCmd(String swarmNodeId) { + return getDockerClient().removeSwarmNodeCmd(swarmNodeId); + } + @Override public ListSwarmNodesCmd listSwarmNodesCmd() { return getDockerClient().listSwarmNodesCmd(); diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/command/RemoveSwarmNodeCmd.java b/docker-java-api/src/main/java/com/github/dockerjava/api/command/RemoveSwarmNodeCmd.java index 198e7b8df..603c610b3 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/command/RemoveSwarmNodeCmd.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/command/RemoveSwarmNodeCmd.java @@ -18,7 +18,7 @@ public interface RemoveSwarmNodeCmd extends SyncDockerCmd { @CheckForNull Boolean hasForceEnabled(); - RemoveSwarmNodeCmd withContainerId(@Nonnull String containerId); + RemoveSwarmNodeCmd withSwarmNodeId(@Nonnull String swarmNodeId); RemoveSwarmNodeCmd withForce(Boolean force); diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/DockerClientImpl.java b/docker-java-core/src/main/java/com/github/dockerjava/core/DockerClientImpl.java index 277dada80..c27a33260 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/DockerClientImpl.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/DockerClientImpl.java @@ -58,6 +58,7 @@ import com.github.dockerjava.api.command.RemoveNetworkCmd; import com.github.dockerjava.api.command.RemoveSecretCmd; import com.github.dockerjava.api.command.RemoveServiceCmd; +import com.github.dockerjava.api.command.RemoveSwarmNodeCmd; import com.github.dockerjava.api.command.RemoveVolumeCmd; import com.github.dockerjava.api.command.RenameContainerCmd; import com.github.dockerjava.api.command.ResizeContainerCmd; @@ -140,6 +141,7 @@ import com.github.dockerjava.core.command.RemoveNetworkCmdImpl; import com.github.dockerjava.core.command.RemoveSecretCmdImpl; import com.github.dockerjava.core.command.RemoveServiceCmdImpl; +import com.github.dockerjava.core.command.RemoveSwarmNodeCmdImpl; import com.github.dockerjava.core.command.RemoveVolumeCmdImpl; import com.github.dockerjava.core.command.RenameContainerCmdImpl; import com.github.dockerjava.core.command.ResizeContainerCmdImpl; @@ -616,6 +618,11 @@ public UpdateSwarmNodeCmd updateSwarmNodeCmd() { return new UpdateSwarmNodeCmdImpl(getDockerCmdExecFactory().updateSwarmNodeCmdExec()); } + @Override + public RemoveSwarmNodeCmd removeSwarmNodeCmd(String swarmNodeId) { + return new RemoveSwarmNodeCmdImpl(getDockerCmdExecFactory().removeSwarmNodeCmdExec(), swarmNodeId); + } + @Override public ListSwarmNodesCmd listSwarmNodesCmd() { return new ListSwarmNodesCmdImpl(getDockerCmdExecFactory().listSwarmNodeCmdExec()); diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/command/RemoveSwarmNodeCmdImpl.java b/docker-java-core/src/main/java/com/github/dockerjava/core/command/RemoveSwarmNodeCmdImpl.java index bf9029e72..e3efea938 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/command/RemoveSwarmNodeCmdImpl.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/command/RemoveSwarmNodeCmdImpl.java @@ -17,9 +17,9 @@ public class RemoveSwarmNodeCmdImpl extends AbstrDockerCmd nodes = dockerClient.listSwarmNodesCmd().exec(); + assertThat(2, is(nodes.size())); + Optional firstWorkNode = nodes.stream().filter(node -> node.getSpec().getRole() == SwarmNodeRole.WORKER) + .findFirst(); + dockerClient.removeSwarmNodeCmd(firstWorkNode.get().getId()).exec(); + nodes = dockerClient.listSwarmNodesCmd().exec(); + assertThat(nodes.size(), is(1)); + } +} From 95eee7b19141af3d060fd5caa98d5e3cc1931415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A8=BE=E6=98=8E=E5=8D=8E?= <565209960@qq.com> Date: Wed, 10 Nov 2021 21:50:07 +0800 Subject: [PATCH 2/4] Update docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java Co-authored-by: Sergei Egorov --- .../dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java b/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java index b78bef547..905e9a119 100644 --- a/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java +++ b/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java @@ -15,12 +15,6 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; -/** - * Remove swarm node cmd test - * - * @author 訾明华 - * @since 2021-11-10 - */ public class RemoveSwarmNodeCmdExecIT extends SwarmCmdIT { private static final Logger LOGGER = LoggerFactory.getLogger(RemoveSwarmNodeCmdExecIT.class); From 8d6771b16bdf02a37d18772aab1e3e87d8064911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A8=BE=E6=98=8E=E5=8D=8E?= <565209960@qq.com> Date: Wed, 10 Nov 2021 21:50:53 +0800 Subject: [PATCH 3/4] Update docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java Co-authored-by: Sergei Egorov --- .../github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java b/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java index 905e9a119..f6385ad10 100644 --- a/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java +++ b/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java @@ -20,7 +20,7 @@ public class RemoveSwarmNodeCmdExecIT extends SwarmCmdIT { private static final Logger LOGGER = LoggerFactory.getLogger(RemoveSwarmNodeCmdExecIT.class); @Test - public void testUpdateSwarmNode() throws Exception { + public void testRemoveSwarmNode() throws Exception { DockerClient dockerClient = startSwarm(); Swarm swarm = dockerClient.inspectSwarmCmd().exec(); From 6c77b3531d55c0cfe6e72c343bbf9dc283fe0750 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A8=BE=E6=98=8E=E5=8D=8E?= Date: Wed, 10 Nov 2021 22:29:39 +0800 Subject: [PATCH 4/4] force remove node --- .../github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java b/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java index b78bef547..dd529ee44 100644 --- a/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java +++ b/docker-java/src/test/java/com/github/dockerjava/cmd/swarm/RemoveSwarmNodeCmdExecIT.java @@ -41,7 +41,9 @@ public void testUpdateSwarmNode() throws Exception { assertThat(2, is(nodes.size())); Optional firstWorkNode = nodes.stream().filter(node -> node.getSpec().getRole() == SwarmNodeRole.WORKER) .findFirst(); - dockerClient.removeSwarmNodeCmd(firstWorkNode.get().getId()).exec(); + dockerClient.removeSwarmNodeCmd(firstWorkNode.get().getId()) + .withForce(true) + .exec(); nodes = dockerClient.listSwarmNodesCmd().exec(); assertThat(nodes.size(), is(1)); }