package it.dockins.dockerslaves.spi;
import hudson.ExtensionPoint;
import hudson.model.AbstractDescribableImpl;
import hudson.model.Job;
import java.io.IOException;
/**
* A DockerHostSource is responsible to determine (or provision) the dockerhost to host a build for the specified job.
* <p>
* Implementation can use this extension to execute some decision and/or provisioning logic, depending on infrastructure
* details and constraints.
*
* @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
*/
public abstract class DockerHostSource extends AbstractDescribableImpl<DockerHostSource> implements ExtensionPoint{
/**
* Allocate / Determine best Docker host to use to build this Job.
* @param job
* @return
*/
public abstract DockerHostConfig getDockerHost(Job job) throws IOException, InterruptedException;
}