@Override protected void setProtos(PodInfoBuilder podInfoBuilder, Protos.Resource resource) { super.setProtos(podInfoBuilder, resource); // Find the matching port entry which was created above. Optional<Protos.Port.Builder> portBuilder = getTaskNames().stream() .map(taskName -> podInfoBuilder.getTaskBuilder(taskName) .getDiscoveryBuilder().getPortsBuilder().getPortsBuilderList().stream() .filter(port -> port.getName().equals(namedVIPSpec.getPortName())) .collect(Collectors.toList())) .filter(portBuilders -> portBuilders.size() == 1) .map(portBuilders -> portBuilders.get(0)) .findAny(); if (!portBuilder.isPresent()) { throw new IllegalStateException(String.format( "Unable to find port entry with name %s in tasks: %s", namedVIPSpec.getPortName(), getTaskNames())); } // Update port entry with VIP metadata. portBuilder.get().setProtocol(namedVIPSpec.getProtocol()); AuxLabelAccess.setVIPLabels(portBuilder.get(), namedVIPSpec); } }
@Test public void testTaskPort() throws Exception { Protos.TaskInfo.Builder testTaskBuilder = emptyTask.toBuilder(); testTaskBuilder.getDiscoveryBuilder() .setVisibility(Protos.DiscoveryInfo.Visibility.CLUSTER) // required by proto .getPortsBuilder().addPortsBuilder() .setName("new-test-port") .setNumber(12345); TaskPortLookup taskPortLookup = new TaskPortLookup(testTaskBuilder.build()); when(mockPortSpec.getPortName()).thenReturn("new-test-port"); assertEquals(Long.valueOf(12345), taskPortLookup.getPriorPort(mockPortSpec).get()); } }
Protos.DiscoveryInfo.Builder discoveryBuilder = builder.getDiscoveryBuilder(); discoveryBuilder.setVisibility(Protos.DiscoveryInfo.Visibility.CLUSTER); discoveryBuilder.setName(builder.getName());
taskBuilder.getDiscoveryBuilder() .setVisibility(Constants.DEFAULT_TASK_DISCOVERY_VISIBILITY) .setName(taskBuilder.getName()); taskBuilder.getDiscoveryBuilder().getPortsBuilder().addPortsBuilder() .setNumber((int) port) .setVisibility(portSpec.getVisibility())