private List<Integer> staticPorts(final Job job) { final List<Integer> staticPorts = Lists.newArrayList(); for (final PortMapping portMapping : job.getPorts().values()) { if (portMapping.getExternalPort() != null) { staticPorts.add(portMapping.getExternalPort()); } } return staticPorts; }
/** * Get final port mappings using allocated ports. * * @return The port mapping. */ public Map<String, PortMapping> ports() { final ImmutableMap.Builder<String, PortMapping> builder = ImmutableMap.builder(); for (final Map.Entry<String, PortMapping> e : job.getPorts().entrySet()) { final PortMapping mapping = e.getValue(); builder.put(e.getKey(), mapping.hasExternalPort() ? mapping : mapping.withExternalPort(checkNotNull(ports.get(e.getKey())))); } return builder.build(); }
/** * Create container port exposure configuration for a job. * * @return The exposed ports. */ private Set<String> containerExposedPorts() { final Set<String> ports = Sets.newHashSet(); for (final Map.Entry<String, PortMapping> entry : job.getPorts().entrySet()) { final PortMapping mapping = entry.getValue(); ports.add(containerPort(mapping.getInternalPort(), mapping.getProtocol())); } return ports; }
final Map<String, PortMapping> ports = job.getPorts(); if (isNullOrEmpty(port)) { errors.add("A port must be defined for HTTP and TCP health checks.");
/** * Create a port binding configuration for the job. * * @return The port bindings. */ private Map<String, List<PortBinding>> portBindings() { final Map<String, List<PortBinding>> bindings = Maps.newHashMap(); for (final Map.Entry<String, PortMapping> e : job.getPorts().entrySet()) { final PortMapping mapping = e.getValue(); final Integer jobDefinedExtPort = mapping.getExternalPort(); // If the job didn't specify an external port, use dynamically allocated ports final String externalPort = jobDefinedExtPort == null ? ports.get(e.getKey()).toString() : jobDefinedExtPort.toString(); final PortBinding binding = PortBinding.of(mapping.getIp(), externalPort); final String entry = containerPort(mapping.getInternalPort(), mapping.getProtocol()); bindings.put(entry, Collections.singletonList(binding)); } return bindings; }
for (final PortMapping mapping : job.getPorts().values()) { final Integer externalMappedPort = mapping.getExternalPort(); if (externalPorts.contains(externalMappedPort) && externalMappedPort != null) { for (final Map.Entry<String, PortMapping> entry : job.getPorts().entrySet()) { final String name = entry.getKey(); final PortMapping mapping = entry.getValue(); if (!job.getPorts().containsKey(portName)) { errors.add(format("Service registration refers to missing port mapping: %s=%s", registration, portName));
final String portName = portEntry.getKey(); final ServicePortParameters portParameters = portEntry.getValue(); final PortMapping mapping = job.getPorts().get(portName); if (mapping == null) { log.error("no '{}' port mapped for registration: '{}'", portName, registration);
out.printf("Time to wait before kill (seconds): %s%n", job.getSecondsToWaitBeforeKill()); printMap(out, "Metadata: ", QUOTE, job.getMetadata()); printMap(out, "Ports: ", FORMAT_PORTMAPPING, job.getPorts()); printMap(out, "Reg: ", FORMAT_SERVICE_PORTS, job.getRegistration()); out.printf("Security options: %s%n", job.getSecurityOpt());
final Execution execution = entry.getValue(); final Job job = execution.getJob(); final Map<String, Integer> ports = portAllocator.allocate(job.getPorts(), usedPorts.build()); log.debug("Allocated ports for job {}: {}", jobId, ports);
assertEquals(ports, job.getPorts()); assertEquals(env, job.getEnv()); assertEquals(registration, job.getRegistration());
/** * Get final port mappings using allocated ports. * @return The port mapping. */ public Map<String, PortMapping> ports() { final ImmutableMap.Builder<String, PortMapping> builder = ImmutableMap.builder(); for (final Map.Entry<String, PortMapping> e : job.getPorts().entrySet()) { final PortMapping mapping = e.getValue(); builder.put(e.getKey(), mapping.hasExternalPort() ? mapping : mapping.withExternalPort(checkNotNull(ports.get(e.getKey())))); } return builder.build(); }
private List<Integer> staticPorts(final Job job) { final List<Integer> staticPorts = Lists.newArrayList(); for (final PortMapping portMapping : job.getPorts().values()) { if (portMapping.getExternalPort() != null) { staticPorts.add(portMapping.getExternalPort()); } } return staticPorts; }
/** * Create container port exposure configuration for a job. * @return The exposed ports. */ private Set<String> containerExposedPorts() { final Set<String> ports = Sets.newHashSet(); for (final Map.Entry<String, PortMapping> entry : job.getPorts().entrySet()) { final PortMapping mapping = entry.getValue(); ports.add(containerPort(mapping.getInternalPort(), mapping.getProtocol())); } return ports; }
/** * Returns a {@link com.google.common.net.HostAndPort} object for a registered port, for each * host the job has been deployed to. This is useful for discovering the value of dynamically * allocated ports. * @param port the name of the registered port * @return a HostAndPort describing where the registered port can be reached. Null if * no ports have been registered. */ public List<HostAndPort> addresses(final String port) { checkArgument(job.getPorts().containsKey(port), "port %s not found", port); final List<HostAndPort> addresses = Lists.newArrayList(); for (Map.Entry<String, TaskStatus> entry : statuses.entrySet()) { final Integer externalPort = entry.getValue().getPorts().get(port).getExternalPort(); assert externalPort != null; final String host = endpointFromHost(entry.getKey()); addresses.add(HostAndPort.fromParts(host, externalPort)); } return addresses; }
/** * Returns the port that a job can be reached at given the host and name of registered port. * This is useful to discover the value of a dynamically allocated port. * @param host the host where the job is deployed * @param port the name of the registered port * @return the port where the job can be reached, or null if the host or port name is not found */ public Integer port(final String host, final String port) { checkArgument(hosts.contains(host), "host %s not found", host); checkArgument(job.getPorts().containsKey(port), "port %s not found", port); final TaskStatus status = statuses.get(host); if (status == null) { return null; } final PortMapping portMapping = status.getPorts().get(port); if (portMapping == null) { return null; } return portMapping.getExternalPort(); }
/** * Create a port binding configuration for the job. * @return The port bindings. */ private Map<String, List<PortBinding>> portBindings() { final Map<String, List<PortBinding>> bindings = Maps.newHashMap(); for (final Map.Entry<String, PortMapping> e : job.getPorts().entrySet()) { final PortMapping mapping = e.getValue(); final PortBinding binding = new PortBinding(); final Integer externalPort = mapping.getExternalPort(); if (externalPort == null) { binding.hostPort(ports.get(e.getKey()).toString()); } else { binding.hostPort(externalPort.toString()); } final String entry = containerPort(mapping.getInternalPort(), mapping.getProtocol()); bindings.put(entry, Collections.singletonList(binding)); } return bindings; }
final String portName = portEntry.getKey(); final ServicePortParameters portParameters = portEntry.getValue(); final PortMapping mapping = job.getPorts().get(portName); if (mapping == null) { log.error("no '{}' port mapped for registration: '{}'", portName, registration);
@Override protected int runWithJobId(final Namespace options, final HeliosClient client, final PrintStream out, final boolean json, final JobId jobId, final BufferedReader stdin) throws ExecutionException, InterruptedException { final Map<JobId, Job> jobs = client.jobs(jobId.toString()).get(); if (jobs.size() == 0) { out.printf("Unknown job: %s%n", jobId); return 1; } final Job job = Iterables.getOnlyElement(jobs.values()); if (json) { out.println(Json.asPrettyStringUnchecked(job)); } else { out.printf("Id: %s%n", job.getId()); out.printf("Image: %s%n", job.getImage()); out.printf("Hostname: %s%n", job.getHostname()); out.printf("Command: %s%n", quote(job.getCommand())); printMap(out, "Env: ", QUOTE, job.getEnv()); out.printf("Health check: %s%n", formatHealthCheck(job.getHealthCheck())); out.printf("Grace period (seconds): %s%n", job.getGracePeriod()); printMap(out, "Ports: ", FORMAT_PORTMAPPING, job.getPorts()); printMap(out, "Reg: ", FORMAT_SERVICE_PORTS, job.getRegistration()); out.printf("Security options: %s%n", job.getSecurityOpt()); out.printf("Network mode: %s%n", job.getNetworkMode()); out.printf("Token: %s%n", job.getToken()); printVolumes(out, job.getVolumes()); } return 0; }
final Execution execution = entry.getValue(); final Job job = execution.getJob(); final Map<String, Integer> ports = portAllocator.allocate(job.getPorts(), usedPorts.build()); log.debug("Allocated ports for job {}: {}", jobId, ports);