package org.jenkinsci.plugins.dockerbuildstep.action; import hudson.model.InvisibleAction; import java.util.Map; import org.jenkinsci.plugins.dockerbuildstep.DockerEnvContributor; import org.jenkinsci.plugins.dockerbuildstep.cmd.DockerCommand; import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.api.model.ExposedPort; import com.github.dockerjava.api.model.Ports; import com.github.dockerjava.api.model.Ports.Binding; /** * Helper invisible action which is used for exchanging information between {@link DockerCommand}s and other object like * {@link DockerEnvContributor}. * * @author vjuranek * */ public class EnvInvisibleAction extends InvisibleAction { private InspectContainerResponse containerInfo; public EnvInvisibleAction() { } public EnvInvisibleAction(InspectContainerResponse containerInfo) { this.containerInfo = containerInfo; } public InspectContainerResponse getContainerInfo() { return containerInfo; } public void setContainerInfo(InspectContainerResponse containerInfo) { this.containerInfo = containerInfo; } // convenient shortcut methods public String getId() { return containerInfo.getId(); } public String getHostName() { return containerInfo.getConfig().getHostName(); } public String getIpAddress() { return containerInfo.getNetworkSettings().getIpAddress(); } public boolean hasPortBindings() { Ports ports = containerInfo.getNetworkSettings().getPorts(); return ((ports != null) && (ports.getBindings() != null) && (!ports.getBindings().isEmpty())); } public Map<ExposedPort, Binding[]> getPortBindings() { return containerInfo.getNetworkSettings().getPorts().getBindings(); } }