package org.jenkinsci.plugins.dockerbuildstep.cmd;
import hudson.Extension;
import hudson.model.AbstractBuild;
import java.util.List;
import org.jenkinsci.plugins.dockerbuildstep.log.ConsoleLogger;
import org.kohsuke.stapler.DataBoundConstructor;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.exception.DockerException;
import com.github.dockerjava.api.model.Container;
/**
* This command stop all Docker containers.
*
* @author vjuranek
*
*/
public class StopAllCommand extends DockerCommand {
@DataBoundConstructor
public StopAllCommand() {
}
@Override
public void execute(@SuppressWarnings("rawtypes") AbstractBuild build, ConsoleLogger console)
throws DockerException {
DockerClient client = getClient(build, null);
List<Container> containers = client.listContainersCmd().exec();
for (Container c : containers) {
client.stopContainerCmd(c.getId()).exec();
console.logInfo("stopped container id " + c.getId());
}
}
@Extension
public static class StopAllCommandDescriptor extends DockerCommandDescriptor {
@Override
public String getDisplayName() {
return "Stop all containers";
}
}
}