package com.github.dockerjava.core.command;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import com.github.dockerjava.api.command.StopContainerCmd;
import com.github.dockerjava.api.exception.NotFoundException;
import com.github.dockerjava.api.exception.NotModifiedException;
/**
* Stop a running container.
*
* @param containerId
* - Id of the container
* @param timeout
* - Timeout in seconds before killing the container. Defaults to 10 seconds.
*
*/
public class StopContainerCmdImpl extends AbstrDockerCmd<StopContainerCmd, Void> implements StopContainerCmd {
private String containerId;
private Integer timeout = 10;
public StopContainerCmdImpl(StopContainerCmd.Exec exec, String containerId) {
super(exec);
withContainerId(containerId);
}
@Override
public String getContainerId() {
return containerId;
}
@Override
public Integer getTimeout() {
return timeout;
}
@Override
public StopContainerCmd withContainerId(String containerId) {
checkNotNull(containerId, "containerId was not specified");
this.containerId = containerId;
return this;
}
@Override
public StopContainerCmd withTimeout(Integer timeout) {
checkNotNull(timeout, "timeout was not specified");
checkArgument(timeout >= 0, "timeout must be greater or equal 0");
this.timeout = timeout;
return this;
}
/**
* @throws NotFoundException
* No such container
* @throws NotModifiedException
* Container already stopped
*/
@Override
public Void exec() throws NotFoundException, NotModifiedException {
return super.exec();
}
}