package com.nirima.jenkins.plugins.docker;
import com.github.dockerjava.api.command.InspectContainerResponse;
import com.github.dockerjava.api.model.ExposedPort;
import com.github.dockerjava.api.model.Ports;
import shaded.com.google.common.base.Strings;
import com.nirima.jenkins.plugins.docker.utils.JenkinsUtils;
import hudson.model.Descriptor;
import hudson.slaves.ComputerLauncher;
import hudson.slaves.NodeProperty;
import hudson.slaves.RetentionStrategy;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Map;
/**
* Swarm Slave.
*/
public class DockerSwarmSlave extends DockerSlave {
public DockerSwarmSlave(DockerCloud dockerCloud,
InspectContainerResponse inspect,
String slaveName,
String nodeDescription,
ComputerLauncher launcher,
String containerId,
DockerTemplate dockerTemplate,
String cloudId) throws IOException, Descriptor.FormException {
super(makeSlaveName(slaveName, JenkinsUtils.getHostnameFromBinding(inspect)),
nodeDescription,
launcher,
containerId,
dockerTemplate,
cloudId);
}
private static String makeSlaveName(String slaveName, String hostName) {
if(!Strings.isNullOrEmpty(hostName) ) {
return slaveName + "-" + hostName;
}
else {
return slaveName;
}
}
}