Skip to content

Commit

Permalink
make connector configurable
Browse files Browse the repository at this point in the history
  • Loading branch information
ndeloof committed Mar 13, 2018
1 parent 1ffb38e commit 9283a4d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
14 changes: 13 additions & 1 deletion src/main/java/io/jenkins/docker/pipeline/DockerNodeStep.java
Expand Up @@ -9,6 +9,7 @@
import hudson.model.Node;
import hudson.model.TaskListener;
import hudson.util.ListBoxModel;
import io.jenkins.docker.connector.DockerComputerConnector;
import jenkins.model.Jenkins;
import org.jenkinsci.plugins.docker.commons.credentials.DockerServerEndpoint;
import org.jenkinsci.plugins.workflow.graph.FlowNode;
Expand Down Expand Up @@ -37,6 +38,8 @@ public class DockerNodeStep extends Step {

private String remoteFs;

private DockerComputerConnector connector;

@DataBoundConstructor
public DockerNodeStep(String dockerHost, String image) {
this.dockerHost = dockerHost;
Expand Down Expand Up @@ -69,9 +72,18 @@ public void setRemoteFs(String remoteFs) {
this.remoteFs = remoteFs;
}

public DockerComputerConnector getConnector() {
return connector;
}

@DataBoundSetter
public void setConnector(DockerComputerConnector connector) {
this.connector = connector;
}

@Override
public StepExecution start(StepContext context) throws Exception {
return new DockerNodeStepExecution(context, dockerHost, credentialsId, image, remoteFs);
return new DockerNodeStepExecution(context, connector, dockerHost, credentialsId, image, remoteFs);
}

@Extension(optional = true)
Expand Down
Expand Up @@ -12,6 +12,7 @@
import io.jenkins.docker.DockerTransientNode;
import io.jenkins.docker.client.DockerAPI;
import io.jenkins.docker.connector.DockerComputerAttachConnector;
import io.jenkins.docker.connector.DockerComputerConnector;
import jenkins.model.Jenkins;
import jenkins.model.NodeListener;
import org.jenkinsci.plugins.docker.commons.credentials.DockerServerEndpoint;
Expand All @@ -37,11 +38,13 @@ class DockerNodeStepExecution extends StepExecution {
private final String credentialsId;
private final String image;
private final String remoteFs;
private final DockerComputerConnector connector;
private transient volatile CompletableFuture<DockerTransientNode> task;
private volatile String nodeName;

public DockerNodeStepExecution(StepContext context, String dockerHost, String credentialsId, String image, String remoteFs) {
public DockerNodeStepExecution(StepContext context, DockerComputerConnector connector, String dockerHost, String credentialsId, String image, String remoteFs) {
super(context);
this.connector = connector != null ? connector : new DockerComputerAttachConnector();
this.dockerHost = dockerHost;
this.credentialsId = credentialsId;
this.image = image;
Expand Down Expand Up @@ -75,7 +78,7 @@ private DockerTransientNode createNode(TaskListener listener) {

final DockerTemplate t = new DockerTemplate(
new DockerTemplateBase(image),
new DockerComputerAttachConnector(),
connector,
uuid, remoteFs, "1");

t.setMode(Node.Mode.EXCLUSIVE);
Expand Down

0 comments on commit 9283a4d

Please sign in to comment.