package it.dockins.dockerslaves; import hudson.Extension; import hudson.model.Job; import it.dockins.dockerslaves.spi.DockerHostConfig; import jenkins.model.Jenkins; import org.jenkinsci.plugins.docker.commons.credentials.DockerServerEndpoint; import org.kohsuke.stapler.DataBoundConstructor; import it.dockins.dockerslaves.spi.DockerHostSource; import it.dockins.dockerslaves.spi.DockerHostSourceDescriptor; import javax.annotation.Nonnull; import java.io.IOException; /** * @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a> */ public class DefaultDockerHostSource extends DockerHostSource { private final DockerServerEndpoint dockerServerEndpoint; public static final DockerServerEndpoint DEFAULT = new DockerServerEndpoint(null, null); public DefaultDockerHostSource() { this(new DockerServerEndpoint(null, null)); } @DataBoundConstructor public DefaultDockerHostSource(DockerServerEndpoint dockerServerEndpoint) { this.dockerServerEndpoint = dockerServerEndpoint; } public DockerServerEndpoint getDockerServerEndpoint() { return dockerServerEndpoint != null ? dockerServerEndpoint : DEFAULT; } @Override public DockerHostConfig getDockerHost(Job job) throws IOException, InterruptedException { return new DockerHostConfig(getDockerServerEndpoint(), job); } @Extension public static class DescriptorImpl extends DockerHostSourceDescriptor { @Nonnull @Override public String getDisplayName() { return "Standalone Docker daemon / Docker Swarm cluster"; } } }