package com.nirima.jenkins.plugins.docker.builder;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.exception.DockerException;
import hudson.Extension;
import hudson.Launcher;
import hudson.model.AbstractBuild;
import hudson.model.BuildListener;
import hudson.model.Run;
import hudson.model.TaskListener;
import org.kohsuke.stapler.DataBoundConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
/**
* Starts container in DockerCloud
*
* @author by magnayn
*/
public class DockerBuilderControlOptionStart extends DockerBuilderControlOptionStopStart {
private static final Logger LOG = LoggerFactory.getLogger(DockerBuilderControlOptionStart.class);
@DataBoundConstructor
public DockerBuilderControlOptionStart(String cloudName, String containerId) {
super(cloudName, containerId);
}
@Override
public void execute(Run<?, ?> build, Launcher launcher, TaskListener listener)
throws DockerException {
LOG.info("Starting container {}", containerId);
listener.getLogger().println("Starting container " + containerId);
DockerClient client = getCloud(build,launcher).getClient();
client.startContainerCmd(containerId).exec();
getLaunchAction(build).started(client, containerId);
}
@Extension
public static final class DescriptorImpl extends DockerBuilderControlOptionDescriptor {
@Override
public String getDisplayName() {
return "Start Container";
}
}
}