TaskPortLookup(Protos.TaskInfo currentTask) { this.lastTaskPorts = new HashMap<>(); for (Protos.Port port : currentTask.getDiscovery().getPorts().getPortsList()) { if (!StringUtils.isEmpty(port.getName())) { this.lastTaskPorts.put(port.getName(), (long) port.getNumber()); } } }
DiscoveryInfo discoveryInfo = taskInfo.getDiscovery();
@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()); }
assertEquals(9300, portsList.get(1).getRanges().getRange(0).getEnd()); assertEquals(9200, taskInfo.getDiscovery().getPorts().getPorts(0).getNumber()); assertEquals(9300, taskInfo.getDiscovery().getPorts().getPorts(1).getNumber()); assertEquals(Protos.DiscoveryInfo.Visibility.EXTERNAL, taskInfo.getDiscovery().getVisibility());
@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()); }
@Test public void testPublishDiscoveryInfo() { CassandraConfig cassandraConfig = CassandraConfig.builder().setPublishDiscoveryInfo(true).build(); CassandraDaemonTask daemonTask = testTaskFactory.create( TEST_DAEMON_NAME, TEST_CONFIG_NAME, testTaskExecutor, cassandraConfig); Protos.DiscoveryInfo discovery = daemonTask.getTaskInfo().getDiscovery(); Assert.assertEquals("Test Cluster.test-daemon-task-name", discovery.getName()); Assert.assertEquals(Protos.DiscoveryInfo.Visibility.EXTERNAL, discovery.getVisibility()); Assert.assertEquals(1, discovery.getPorts().getPortsCount()); Assert.assertEquals(9042, discovery.getPorts().getPorts(0).getNumber()); Assert.assertEquals("NativeTransport", discovery.getPorts().getPorts(0).getName()); }
@Test public void testDcosNamedVipDiscoveryInfo() { CassandraDaemonTask daemonTask = testTaskFactory.create( TEST_DAEMON_NAME, TEST_CONFIG_NAME, testTaskExecutor, CassandraConfig.DEFAULT); Protos.DiscoveryInfo discovery = daemonTask.getTaskInfo().getDiscovery(); Assert.assertEquals("test-daemon-task-name", discovery.getName()); Assert.assertEquals(Protos.DiscoveryInfo.Visibility.EXTERNAL, discovery.getVisibility()); Assert.assertEquals(1, discovery.getPorts().getPortsCount()); Assert.assertEquals(9042, discovery.getPorts().getPorts(0).getNumber()); Assert.assertEquals("tcp", discovery.getPorts().getPorts(0).getProtocol()); }