@JsonIgnore public long getPort() { return getValue().getRanges().getRange(0).getBegin(); }
PodInfoBuilder podInfoBuilder) long requestedPort = portSpec.getValue().getRanges().getRange(0).getBegin(); long assignedPort = requestedPort; if (requestedPort == 0) {
long port = resource.getRanges().getRange(0).getBegin();
Protos.Resource resource = recommendation.getOperation().get().getReserve().getResources(0); Assert.assertEquals( 10000, resource.getRanges().getRange(0).getBegin(), resource.getRanges().getRange(0).getEnd()); Protos.TaskInfo.Builder taskBuilder = podInfoBuilder.getTaskBuilders().stream().findFirst().get(); boolean portInTaskEnv = false;
Protos.Resource resource = recommendation.getOperation().get().getReserve().getResources(0); Assert.assertEquals( 10000, resource.getRanges().getRange(0).getBegin(), resource.getRanges().getRange(0).getEnd()); Protos.TaskInfo.Builder taskBuilder = podInfoBuilder.getTaskBuilders().stream().findFirst().get(); boolean portInTaskEnv = false;
Long.toString(r.getRanges().getRange(0).getBegin()) : dynamicPortAssignment;
Assert.assertEquals(10000, fulfilledPortResource1.getRanges().getRange(0).getBegin()); Assert.assertEquals(10000, fulfilledPortResource1.getRanges().getRange(0).getEnd()); Assert.assertEquals(10001, fulfilledPortResource2.getRanges().getRange(0).getBegin()); Assert.assertEquals(10001, fulfilledPortResource2.getRanges().getRange(0).getEnd()); Assert.assertEquals(String.valueOf(10001), envvars.get(portenv1).getValue()); Assert.assertEquals(10000, taskInfo.getResources(0).getRanges().getRange(0).getBegin()); Assert.assertEquals(10000, taskInfo.getResources(0).getRanges().getRange(0).getEnd()); Assert.assertEquals(10001, taskInfo.getResources(1).getRanges().getRange(0).getBegin()); Assert.assertEquals(10001, taskInfo.getResources(1).getRanges().getRange(0).getEnd());
@SuppressWarnings("PMD.AvoidUsingHardCodedIP") @Test public void testReserveTaskNamedVIPPort() throws Exception { List<OfferRecommendation> recommendations = evaluator.evaluate( PodInstanceRequirementTestUtils.getVIPRequirement(80, 10000), OfferTestUtils.getCompleteOffers(ResourceTestUtils.getUnreservedPorts(10000, 10000))); Assert.assertEquals(6, recommendations.size()); Operation launchOperation = recommendations.get(4).getOperation().get(); Assert.assertFalse(recommendations.get(5).getOperation().isPresent()); TaskInfo taskInfo = launchOperation.getLaunchGroup().getTaskGroup().getTasks(0); Resource fulfilledPortResource = taskInfo.getResources(0); Assert.assertEquals(10000, fulfilledPortResource.getRanges().getRange(0).getBegin()); Assert.assertFalse(getResourceId(fulfilledPortResource).isEmpty()); DiscoveryInfo discoveryInfo = taskInfo.getDiscovery(); Assert.assertEquals(discoveryInfo.getName(), taskInfo.getName()); Assert.assertEquals(discoveryInfo.getVisibility(), DiscoveryInfo.Visibility.CLUSTER); Port discoveryPort = discoveryInfo.getPorts().getPorts(0); Assert.assertEquals(discoveryPort.getProtocol(), "tcp"); Assert.assertEquals(discoveryPort.getVisibility(), DiscoveryInfo.Visibility.EXTERNAL); Assert.assertEquals(discoveryPort.getNumber(), 10000); Label vipLabel = discoveryPort.getLabels().getLabels(0); Assert.assertTrue(vipLabel.getKey().startsWith("VIP_")); Assert.assertEquals(vipLabel.getValue(), TestConstants.VIP_NAME + "-10000:80"); Map<String, Protos.Environment.Variable> envvars = EnvUtils.toMap(taskInfo.getCommand().getEnvironment()); Assert.assertEquals(String.valueOf(10000), envvars.get(TestConstants.PORT_ENV_NAME + "_VIP_10000").getValue()); }
@SuppressWarnings("PMD.AvoidUsingHardCodedIP") @Test public void testReserveTaskDynamicVIPPort() throws Exception { List<OfferRecommendation> recommendations = evaluator.evaluate( PodInstanceRequirementTestUtils.getVIPRequirement(80, 0), OfferTestUtils.getCompleteOffers(ResourceTestUtils.getUnreservedPorts(10000, 10000))); Assert.assertEquals(6, recommendations.size()); Operation launchOperation = recommendations.get(4).getOperation().get(); Assert.assertFalse(recommendations.get(5).getOperation().isPresent()); TaskInfo taskInfo = launchOperation.getLaunchGroup().getTaskGroup().getTasks(0); Resource fulfilledPortResource = taskInfo.getResources(0); Assert.assertEquals(10000, fulfilledPortResource.getRanges().getRange(0).getBegin()); Assert.assertFalse(getResourceId(fulfilledPortResource).isEmpty()); DiscoveryInfo discoveryInfo = taskInfo.getDiscovery(); Assert.assertEquals(discoveryInfo.getName(), taskInfo.getName()); Assert.assertEquals(discoveryInfo.getVisibility(), DiscoveryInfo.Visibility.CLUSTER); Port discoveryPort = discoveryInfo.getPorts().getPorts(0); Assert.assertEquals(discoveryPort.getProtocol(), "tcp"); Assert.assertEquals(discoveryPort.getVisibility(), DiscoveryInfo.Visibility.EXTERNAL); Assert.assertEquals(discoveryPort.getNumber(), 10000); Label vipLabel = discoveryPort.getLabels().getLabels(0); Assert.assertTrue(vipLabel.getKey().startsWith("VIP_")); Assert.assertEquals(vipLabel.getValue(), TestConstants.VIP_NAME + "-0:80"); Map<String, Protos.Environment.Variable> envvars = EnvUtils.toMap(taskInfo.getCommand().getEnvironment()); Assert.assertEquals(String.valueOf(10000), envvars.get(TestConstants.PORT_ENV_NAME + "_VIP_0").getValue()); }
@Test public void validPortResource() throws Exception { ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("valid-multiple-ports.yml").getFile()); DefaultServiceSpec serviceSpec = DefaultServiceSpec.newGenerator(file, SCHEDULER_CONFIG).build(); List<ResourceSpec> portsResources = serviceSpec.getPods().get(0).getTasks().get(0).getResourceSet() .getResources() .stream() .filter(r -> r.getName().equals("ports")) .collect(Collectors.toList()); Assert.assertEquals(2, portsResources.size()); Protos.Value.Ranges http = portsResources.get(0).getValue().getRanges(); Protos.Value.Ranges another = portsResources.get(1).getValue().getRanges(); Assert.assertEquals(1, http.getRangeCount()); Assert.assertEquals(1, another.getRangeCount()); Assert.assertEquals(8080, http.getRange(0).getBegin(), http.getRange(0).getEnd()); Assert.assertEquals(8088, another.getRange(0).getBegin(), another.getRange(0).getEnd()); }