private int compareQueueAccessToPartition(CSQueue q1, CSQueue q2, String partition) { // Everybody has access to default partition if (StringUtils.equals(partition, RMNodeLabelsManager.NO_LABEL)) { return 0; } /* * Check accessible to given partition, if one queue accessible and * the other not, accessible queue goes first. */ boolean q1Accessible = q1.getAccessibleNodeLabels() != null && q1.getAccessibleNodeLabels() .contains(partition) || q1.getAccessibleNodeLabels().contains( RMNodeLabelsManager.ANY); boolean q2Accessible = q2.getAccessibleNodeLabels() != null && q2.getAccessibleNodeLabels() .contains(partition) || q2.getAccessibleNodeLabels().contains( RMNodeLabelsManager.ANY); if (q1Accessible && !q2Accessible) { return -1; } else if (!q1Accessible && q2Accessible) { return 1; } return 0; } }
private Map<String, Set<String>> getQueueToLabels() { Map<String, Set<String>> queueToLabels = new HashMap<String, Set<String>>(); for (CSQueue queue : queues.values()) { queueToLabels.put(queue.getQueueName(), queue.getAccessibleNodeLabels()); } return queueToLabels; }
private Map<String, Set<String>> getQueueToLabels() { Map<String, Set<String>> queueToLabels = new HashMap<String, Set<String>>(); for (CSQueue queue : queues.values()) { queueToLabels.put(queue.getQueueName(), queue.getAccessibleNodeLabels()); } return queueToLabels; }
String getChildQueuesToPrint() { StringBuilder sb = new StringBuilder(); for (CSQueue q : childQueues) { sb.append(q.getQueuePath() + "usedCapacity=(" + q.getUsedCapacity() + "), " + " label=(" + StringUtils.join(q.getAccessibleNodeLabels().iterator(), ",") + ")"); } return sb.toString(); }
String getChildQueuesToPrint() { StringBuilder sb = new StringBuilder(); for (CSQueue q : childQueues) { sb.append(q.getQueuePath() + "usedCapacity=(" + q.getUsedCapacity() + "), " + " label=(" + StringUtils.join(q.getAccessibleNodeLabels().iterator(), ",") + ")"); } return sb.toString(); }
String getChildQueuesToPrint() { StringBuilder sb = new StringBuilder(); for (CSQueue q : childQueues) { sb.append(q.getQueuePath() + "usedCapacity=(" + q.getUsedCapacity() + "), " + " label=(" + StringUtils.join(q.getAccessibleNodeLabels().iterator(), ",") + ")"); } return sb.toString(); }
/** * Get a map of queueToLabels. * @return the map of queueToLabels */ private Map<String, Set<String>> getQueueToLabels() { Map<String, Set<String>> queueToLabels = new HashMap<>(); for (CSQueue queue : getQueues().values()) { queueToLabels.put(queue.getQueueName(), queue.getAccessibleNodeLabels()); } return queueToLabels; }
private void checkQueueLabelsInheritConfig(CapacityScheduler capacityScheduler) { // queue-A is red, blue Assert.assertTrue(capacityScheduler.getQueue("a").getAccessibleNodeLabels() .containsAll(ImmutableSet.of("red", "blue"))); // queue-A1 inherits A's configuration Assert.assertTrue(capacityScheduler.getQueue("a1") .getAccessibleNodeLabels().containsAll(ImmutableSet.of("red", "blue"))); // queue-A2 is "red" Assert.assertEquals(1, capacityScheduler.getQueue("a2") .getAccessibleNodeLabels().size()); Assert.assertTrue(capacityScheduler.getQueue("a2") .getAccessibleNodeLabels().contains("red")); // queue-B is "red"/"blue" Assert.assertTrue(capacityScheduler.getQueue("b").getAccessibleNodeLabels() .isEmpty()); }
private void checkQueueLabelsInheritConfig(CapacityScheduler capacityScheduler) { // queue-A is red, blue Assert.assertTrue(capacityScheduler.getQueue("a").getAccessibleNodeLabels() .containsAll(ImmutableSet.of("red", "blue"))); // queue-A1 inherits A's configuration Assert.assertTrue(capacityScheduler.getQueue("a1") .getAccessibleNodeLabels().containsAll(ImmutableSet.of("red", "blue"))); // queue-A2 is "red" Assert.assertEquals(1, capacityScheduler.getQueue("a2") .getAccessibleNodeLabels().size()); Assert.assertTrue(capacityScheduler.getQueue("a2") .getAccessibleNodeLabels().contains("red")); // queue-B is "red"/"blue" Assert.assertTrue(capacityScheduler.getQueue("b").getAccessibleNodeLabels() .isEmpty()); }
this.accessibleLabels = parent.getAccessibleNodeLabels(); && this.accessibleLabels.containsAll(parent.getAccessibleNodeLabels())) { this.defaultLabelExpression = parent.getDefaultNodeLabelExpression(); if (parent.getAccessibleNodeLabels() != null && !parent.getAccessibleNodeLabels().contains(RMNodeLabelsManager.ANY)) { Set<String> diff = Sets.difference(this.getAccessibleNodeLabels(), parent.getAccessibleNodeLabels()); if (!diff.isEmpty()) { throw new IOException("Some labels of child queue is not a subset "
this.accessibleLabels = parent.getAccessibleNodeLabels(); && this.accessibleLabels.containsAll(parent.getAccessibleNodeLabels())) { this.defaultLabelExpression = parent.getDefaultNodeLabelExpression(); if (parent.getAccessibleNodeLabels() != null && !parent.getAccessibleNodeLabels().contains(RMNodeLabelsManager.ANY)) { Set<String> diff = Sets.difference(this.getAccessibleNodeLabels(), parent.getAccessibleNodeLabels()); if (!diff.isEmpty()) { throw new IOException("Some labels of child queue is not a subset "
this.accessibleLabels = parent.getAccessibleNodeLabels(); parent.getAccessibleNodeLabels())) { this.defaultLabelExpression = parent.getDefaultNodeLabelExpression(); if (parent.getAccessibleNodeLabels() != null && !parent .getAccessibleNodeLabels().contains(RMNodeLabelsManager.ANY)) { } else{ Set<String> diff = Sets.difference(this.getAccessibleNodeLabels(), parent.getAccessibleNodeLabels()); if (!diff.isEmpty()) { throw new IOException(
CapacitySchedulerQueueInfo(final CSQueue q, final String nodeLabel) { QueueCapacities qCapacities = q.getQueueCapacities(); ResourceUsage queueResourceUsage = q.getQueueResourceUsage(); queuePath = q.getQueuePath(); capacity = qCapacities.getCapacity(nodeLabel) * 100; usedCapacity = q.getUsedCapacity(nodeLabel) * 100; maxCapacity = qCapacities.getMaximumCapacity(nodeLabel); if (maxCapacity < EPSILON || maxCapacity > 1f) maxCapacity = 1f; maxCapacity *= 100; absoluteCapacity = cap(qCapacities.getAbsoluteCapacity(nodeLabel), 0f, 1f) * 100; absoluteMaxCapacity = cap(qCapacities.getAbsoluteMaximumCapacity(nodeLabel), 0f, 1f) * 100; absoluteUsedCapacity = q.getAbsoluteUsedCapacity(nodeLabel) * 100; numApplications = q.getNumApplications(); queueName = q.getQueueName(); state = q.getState(); resourcesUsed = new ResourceInfo(queueResourceUsage.getUsed(nodeLabel)); if (q instanceof PlanQueue && !((PlanQueue) q).showReservationsAsQueues()) { hideReservationQueues = true; } // add labels Set<String> labelSet = q.getAccessibleNodeLabels(); if (labelSet != null) { nodeLabels.addAll(labelSet); Collections.sort(nodeLabels); } }
CapacitySchedulerQueueInfo(final CSQueue q, final String nodeLabel) { QueueCapacities qCapacities = q.getQueueCapacities(); ResourceUsage queueResourceUsage = q.getQueueResourceUsage(); queuePath = q.getQueuePath(); capacity = qCapacities.getCapacity(nodeLabel) * 100; usedCapacity = q.getUsedCapacity(nodeLabel) * 100; maxCapacity = qCapacities.getMaximumCapacity(nodeLabel); if (maxCapacity < EPSILON || maxCapacity > 1f) maxCapacity = 1f; maxCapacity *= 100; absoluteCapacity = cap(qCapacities.getAbsoluteCapacity(nodeLabel), 0f, 1f) * 100; absoluteMaxCapacity = cap(qCapacities.getAbsoluteMaximumCapacity(nodeLabel), 0f, 1f) * 100; absoluteUsedCapacity = q.getAbsoluteUsedCapacity(nodeLabel) * 100; numApplications = q.getNumApplications(); queueName = q.getQueueName(); state = q.getState(); resourcesUsed = new ResourceInfo(queueResourceUsage.getUsed(nodeLabel)); if (q instanceof PlanQueue && !((PlanQueue) q).showReservationsAsQueues()) { hideReservationQueues = true; } // add labels Set<String> labelSet = q.getAccessibleNodeLabels(); if (labelSet != null) { nodeLabels.addAll(labelSet); Collections.sort(nodeLabels); } }
private void checkQueueLabels(CapacityScheduler capacityScheduler) { Assert.assertTrue(capacityScheduler.getQueue("a").getAccessibleNodeLabels() .containsAll(ImmutableSet.of("red", "blue"))); .getAccessibleNodeLabels().containsAll(ImmutableSet.of("red", "blue"))); .getAccessibleNodeLabels().size()); Assert.assertTrue(capacityScheduler.getQueue("a2") .getAccessibleNodeLabels().contains("red")); Assert.assertTrue(capacityScheduler.getQueue("b").getAccessibleNodeLabels() .containsAll(ImmutableSet.of("red", "blue"))); .getAccessibleNodeLabels().containsAll(ImmutableSet.of("red", "blue")));
private void checkQueueLabels(CapacityScheduler capacityScheduler) { Assert.assertTrue(capacityScheduler.getQueue("a").getAccessibleNodeLabels() .containsAll(ImmutableSet.of("red", "blue"))); .getAccessibleNodeLabels().containsAll(ImmutableSet.of("red", "blue"))); .getAccessibleNodeLabels().size()); Assert.assertTrue(capacityScheduler.getQueue("a2") .getAccessibleNodeLabels().contains("red")); Assert.assertTrue(capacityScheduler.getQueue("b").getAccessibleNodeLabels() .containsAll(ImmutableSet.of("red", "blue"))); .getAccessibleNodeLabels().containsAll(ImmutableSet.of("red", "blue")));
new float[] { 0.1f, 0.0f, 0.2f }, new float[] {0.2f, 0.3f, 0.4f}, "x"); when(queues.get(0).getAccessibleNodeLabels()).thenReturn(ImmutableSet.of("x", "y")); when(queues.get(2).getAccessibleNodeLabels()).thenReturn(ImmutableSet.of("x", "y")); policy.setQueues(queues); verifyOrder(policy, "x", new String[] { "a", "c", "b" });
private void checkQueueLabelsWithLeafQueueDisableElasticity (CapacityScheduler capacityScheduler) { Assert.assertTrue(capacityScheduler.getQueue("a").getAccessibleNodeLabels() .containsAll(ImmutableSet.of("red", "blue"))); .getAccessibleNodeLabels().containsAll(ImmutableSet.of("red", "blue"))); .getAccessibleNodeLabels().size()); Assert.assertTrue(capacityScheduler.getQueue("a2") .getAccessibleNodeLabels().contains("red")); Assert.assertTrue(capacityScheduler.getQueue("b").getAccessibleNodeLabels() .containsAll(ImmutableSet.of("red", "blue"))); .getAccessibleNodeLabels().containsAll(ImmutableSet.of("red", "blue")));
Set<String> labelSet = q.getAccessibleNodeLabels(); if (labelSet != null) { nodeLabels.addAll(labelSet);
new float[] { 0.2f, 0.1f, 0.1f, 0.3f, 0.3f }, "x"); when(queues.get(0).getAccessibleNodeLabels()).thenReturn( ImmutableSet.of("x")); when(queues.get(3).getAccessibleNodeLabels()).thenReturn( ImmutableSet.of("x")); policy.setQueues(queues);