@Override public boolean equals(Object obj) { if (obj instanceof Binding) { Binding other = (Binding) obj; return new EqualsBuilder().append(hostIp, other.getHostIp()).append(hostPortSpec, other.getHostPortSpec()) .isEquals(); } else { return super.equals(obj); } } }
@Override public void serialize(Ports portBindings, JsonGenerator jsonGen, SerializerProvider serProvider) throws IOException, JsonProcessingException { jsonGen.writeStartObject(); for (Entry<ExposedPort, Binding[]> entry : portBindings.getBindings().entrySet()) { jsonGen.writeFieldName(entry.getKey().toString()); if (entry.getValue() != null) { jsonGen.writeStartArray(); for (Binding binding : entry.getValue()) { jsonGen.writeStartObject(); jsonGen.writeStringField("HostIp", binding.getHostIp() == null ? "" : binding.getHostIp()); jsonGen.writeStringField("HostPort", binding.getHostPortSpec() == null ? "" : binding.getHostPortSpec()); jsonGen.writeEndObject(); } jsonGen.writeEndArray(); } else { jsonGen.writeNull(); } } jsonGen.writeEndObject(); }
@Override public boolean equals(Object obj) { if (obj instanceof Binding) { Binding other = (Binding) obj; return new EqualsBuilder().append(hostIp, other.getHostIp()).append(hostPortSpec, other.getHostPortSpec()) .isEquals(); } else { return super.equals(obj); } } }
URI publicUri = UriUtils.buildUri(UriUtils.HTTP_SCHEME, binding.getHostIp(), Integer.valueOf(binding.getHostPortSpec()), null, null, null);
String ipAddress = b.getHostIp(); if (ipAddress != null && !"0.0.0.0".equals(ipAddress)) { return ipAddress;
ExposedPort exposedPort = new ExposedPort(this.containerExposedPort, this.containerProtocol); Ports.Binding binding = icr.getNetworkSettings().getPorts().getBindings().get(exposedPort)[0]; URI publicUri = UriUtils.buildUri(UriUtils.HTTP_SCHEME, binding.getHostIp(), Integer.valueOf(binding.getHostPortSpec()), null, null, null);
private void exportPortBindings(EnvVars envs, Map<ExposedPort, Binding[]> bindings) { StringBuilder ports = new StringBuilder(); for (ExposedPort exposedPort : bindings.keySet()) { ports.append(exposedPort.toString()).append(ID_SEPARATOR); Binding[] exposedPortBinding = bindings.get(exposedPort); if (exposedPortBinding == null) { continue; } envs.put(PORT_BINDING_PREFIX + exposedPort.getProtocol().name() + "_" + exposedPort.getPort(), exposedPortBinding[0].getHostPortSpec()); StringBuilder portBinding = new StringBuilder(); String hostIp = exposedPortBinding[0].getHostIp(); if (hostIp != null && hostIp.length() > 0) { portBinding.append(hostIp).append(":"); portBinding.append(exposedPortBinding[0].getHostPortSpec()); envs.put(HOST_SOCKET_PREFIX + exposedPort.getProtocol().name() + "_" + exposedPort.getPort(), portBinding.toString()); } } String bindPorts = ports.substring(0, ports.length() - 1).toString(); envs.put(PORT_BINDINGS_ENV_VAR, bindPorts); }
/** * Queries Docker to find the port bindings for the specified port and then performs the provided * {@code waitFunction}. * * @param containerPort the container port to decode and test against. * @param dockerClient the docker client to use. * @param container the container to test against. * @param waitFunction the wait function to use. * @return a {@link WaitResult}. */ public WaitResult wait(int containerPort, DockerFacade dockerClient, Container container, BiFunction<String, Integer, WaitResult> waitFunction) { for (Binding portBinding : getPortBindings(containerPort, container, dockerClient)) { String ipAddress = portBinding.getHostIp(); if (ipAddress.equals(DEFAULT_BINDING)) { ipAddress = dockerClient.hostInfo().getIpAddress(); } int externalPort = Integer.valueOf(portBinding.getHostPortSpec()); LOG.info("Running wait against: [{}:{}]: [{}]: [{}]", ipAddress, externalPort, container.getName(), waitFunction.getClass().getName()); return waitFunction.apply(ipAddress, externalPort); } return WaitResult.success(); }
@Override public void serialize(Ports portBindings, JsonGenerator jsonGen, SerializerProvider serProvider) throws IOException, JsonProcessingException { jsonGen.writeStartObject(); for (Entry<ExposedPort, Binding[]> entry : portBindings.getBindings().entrySet()) { jsonGen.writeFieldName(entry.getKey().toString()); if (entry.getValue() != null) { jsonGen.writeStartArray(); for (Binding binding : entry.getValue()) { jsonGen.writeStartObject(); jsonGen.writeStringField("HostIp", binding.getHostIp() == null ? "" : binding.getHostIp()); jsonGen.writeStringField("HostPort", binding.getHostPortSpec() == null ? "" : binding.getHostPortSpec()); jsonGen.writeEndObject(); } jsonGen.writeEndArray(); } else { jsonGen.writeNull(); } } jsonGen.writeEndObject(); }