/** * Format as a docker port mapping string (reverse of fromString) */ @Override public String toString() { StringBuilder sb = new StringBuilder(); if (hostIp != null && hostIp.trim().length() > 0) { sb.append(hostIp.trim()); sb.append(":"); } if (hostPort != null && hostPort.trim().length() > 0) { sb.append(hostPort.trim()); } if (sb.length() > 0) { sb.append(":"); } sb.append(containerPort.trim()); sb.append("/"); sb.append(protocol.toString()); return sb.toString(); }
/** * Parse a port string * * format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | * containerPort * * @param portMappingStr * @return */ public static DockerPortMapping fromString(String portMappingStr) { DockerPortMapping portMapping = new DockerPortMapping(); Matcher matcher = PORT_PATTERN.matcher(portMappingStr); if (!matcher.matches()) { throw new LocalizableValidationException("Invalid format for port mapping: " + portMappingStr, "adapter.docker.port.mapping.invalid", portMappingStr); } portMapping.hostIp = matcher.group(1); portMapping.hostPort = matcher.group(2); portMapping.containerPort = matcher.group(3); String protocolStr = matcher.group(5); if (protocolStr != null) { portMapping.protocol = Protocol.fromString(protocolStr); } else { portMapping.protocol = Protocol.TCP; } if ("".equals(portMapping.hostPort)) { portMapping.hostPort = null; } return portMapping; }
@Override public String toString() { return name().toLowerCase(); }
assertEquals("Host IP", expectedPortMapping.get("HostIp"), portBinding.hostIp); assertEquals("Host port", expectedPortMapping.get("HostPort"), portBinding.hostPort); assertEquals("Protocol", Protocol.TCP.toString(), portBinding.protocol);
assertEquals("Host IP", expectedPortMapping.get("HostIp"), portBinding.hostIp); assertEquals("Host port", expectedPortMapping.get("HostPort"), portBinding.hostPort); assertEquals("Protocol", Protocol.TCP.toString(), portBinding.protocol);
/** * Convert a map generated by the toMap() method back to a DockerPortMapping * * @param entry * @return */ public static DockerPortMapping fromMap(Map.Entry<String, List<Map<String, String>>> entry) { DockerPortMapping portMapping = new DockerPortMapping(); if (entry.getValue() == null) { // no host mapping return null; } portMapping.containerPort = entry.getKey(); int protocolSeparatorIndex = portMapping.containerPort.indexOf("/"); if (protocolSeparatorIndex != -1) { portMapping.protocol = Protocol.fromString(portMapping.containerPort .substring(protocolSeparatorIndex + 1)); portMapping.containerPort = portMapping.containerPort.substring(0, protocolSeparatorIndex); } Map<String, String> hostMap = entry.getValue().get(0); portMapping.hostIp = hostMap.get(HOST_IP); portMapping.hostPort = hostMap.get(HOST_PORT); return portMapping; }
public String getContainerPortAndProtocol() { return String.format("%s/%s", containerPort, protocol.toString()); } }
public static Protocol fromString(String protocolStr) { return valueOf(protocolStr.toUpperCase()); } }
public static PortBinding fromDockerPortMapping(DockerPortMapping mapping) { PortBinding portBinding = new PortBinding(); portBinding.protocol = mapping.getProtocol().toString(); portBinding.containerPort = mapping.getContainerPort(); portBinding.hostIp = mapping.getHostIp(); portBinding.hostPort = mapping.getHostPort(); return portBinding; }