diff --git a/docker-java-api/src/main/java/com/github/dockerjava/api/command/UpdateServiceCmd.java b/docker-java-api/src/main/java/com/github/dockerjava/api/command/UpdateServiceCmd.java index da4b78387..4eec153fd 100644 --- a/docker-java-api/src/main/java/com/github/dockerjava/api/command/UpdateServiceCmd.java +++ b/docker-java-api/src/main/java/com/github/dockerjava/api/command/UpdateServiceCmd.java @@ -1,5 +1,6 @@ package com.github.dockerjava.api.command; +import com.github.dockerjava.api.model.AuthConfig; import com.github.dockerjava.api.model.ServiceSpec; import javax.annotation.CheckForNull; @@ -24,6 +25,11 @@ public interface UpdateServiceCmd extends SyncDockerCmd { UpdateServiceCmd withVersion(Long version); + @CheckForNull + AuthConfig getAuthConfig(); + + UpdateServiceCmd withAuthConfig(AuthConfig authConfig); + interface Exec extends DockerCmdSyncExec { } } diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/command/UpdateServiceCmdImpl.java b/docker-java-core/src/main/java/com/github/dockerjava/core/command/UpdateServiceCmdImpl.java index 7ff9412a9..e303706f9 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/command/UpdateServiceCmdImpl.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/command/UpdateServiceCmdImpl.java @@ -2,6 +2,7 @@ import com.github.dockerjava.api.command.UpdateServiceCmd; import com.github.dockerjava.api.exception.NotFoundException; +import com.github.dockerjava.api.model.AuthConfig; import com.github.dockerjava.api.model.ServiceSpec; import com.github.dockerjava.core.RemoteApiVersion; import org.apache.commons.lang3.builder.EqualsBuilder; @@ -11,6 +12,7 @@ import javax.annotation.CheckForNull; import javax.annotation.Nonnull; +import java.util.Objects; /** * @since {@link RemoteApiVersion#VERSION_1_24} @@ -33,6 +35,8 @@ public class UpdateServiceCmdImpl extends AbstrDockerCmd */ private Long version; + private AuthConfig authConfig; + public UpdateServiceCmdImpl(Exec exec, String serviceId, ServiceSpec serviceSpec) { super(exec); withServiceId(serviceId); @@ -87,6 +91,19 @@ public UpdateServiceCmdImpl withVersion(Long version) { return this; } + @CheckForNull + public AuthConfig getAuthConfig() { + return authConfig; + } + + @CheckForNull + @Override + public UpdateServiceCmd withAuthConfig(AuthConfig authConfig) { + Objects.requireNonNull(authConfig, "authConfig was not specified"); + this.authConfig = authConfig; + return this; + } + /** * @throws NotFoundException No such service */ diff --git a/docker-java-core/src/main/java/com/github/dockerjava/core/exec/UpdateServiceCmdExec.java b/docker-java-core/src/main/java/com/github/dockerjava/core/exec/UpdateServiceCmdExec.java index 61eb8b271..187fdeb3b 100644 --- a/docker-java-core/src/main/java/com/github/dockerjava/core/exec/UpdateServiceCmdExec.java +++ b/docker-java-core/src/main/java/com/github/dockerjava/core/exec/UpdateServiceCmdExec.java @@ -1,14 +1,15 @@ package com.github.dockerjava.core.exec; +import com.fasterxml.jackson.core.type.TypeReference; +import com.github.dockerjava.api.command.CreateServiceResponse; import com.github.dockerjava.api.command.UpdateServiceCmd; import com.github.dockerjava.core.DockerClientConfig; +import com.github.dockerjava.core.InvocationBuilder; import com.github.dockerjava.core.MediaType; import com.github.dockerjava.core.WebTarget; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; - /** * Update service settings. */ @@ -27,11 +28,11 @@ protected Void execute(UpdateServiceCmd command) { .queryParam("version", command.getVersion()); LOGGER.trace("POST: {}", webResource); - try { - webResource.request().accept(MediaType.APPLICATION_JSON).post(command.getServiceSpec()).close(); - } catch (IOException e) { - throw new RuntimeException(e); - } + InvocationBuilder builder = resourceWithOptionalAuthConfig(command.getAuthConfig(), webResource.request()) + .accept(MediaType.APPLICATION_JSON); + + builder.post(command.getServiceSpec(), new TypeReference() { + }); return null; } }