parseResourceFromString(values[0].trim())); when(queue.getUsedCapacity()).thenReturn(used); when(queue.getEffectiveCapacity(partitionName)) .thenReturn(parseResourceFromString(values[0].trim())); when(queue.getEffectiveMaxCapacity(partitionName))
private static Resource getMaxAvailableResourceToQueue( final ResourceCalculator rc, RMNodeLabelsManager nlm, CSQueue queue, Resource cluster) { Set<String> nodeLabels = queue.getNodeLabelsForQueue(); Resource totalAvailableResource = Resources.createResource(0, 0); for (String partition : nodeLabels) { // Calculate guaranteed resource for a label in a queue by below logic. // (total label resource) * (absolute capacity of label in that queue) Resource queueGuaranteedResource = queue.getEffectiveCapacity(partition); // Available resource in queue for a specific label will be calculated as // {(guaranteed resource for a label in a queue) - // (resource usage of that label in the queue)} // Finally accumulate this available resource to get total. Resource available = (Resources.greaterThan(rc, cluster, queueGuaranteedResource, queue.getQueueResourceUsage().getUsed(partition))) ? Resources .componentwiseMax(Resources.subtractFrom(queueGuaranteedResource, queue.getQueueResourceUsage().getUsed(partition)), Resources .none()) : Resources.none(); Resources.addTo(totalAvailableResource, available); } return totalAvailableResource; }
qr.setEffectiveMinResource(RMNodeLabelsManager.NO_LABEL, abs[i]); when(q.getQueueResourceQuotas()).thenReturn(qr); when(q.getEffectiveCapacity(RMNodeLabelsManager.NO_LABEL)) .thenReturn(abs[i]); when(q.getEffectiveMaxCapacity(RMNodeLabelsManager.NO_LABEL))
protected void validateEffectiveMinResource(CSQueue leafQueue, String label, Map<String, QueueEntitlement> expectedQueueEntitlements) { ManagedParentQueue parentQueue = (ManagedParentQueue) leafQueue.getParent(); Resource resourceByLabel = mockRM.getRMContext().getNodeLabelManager(). getResourceByLabel(label, cs.getClusterResource()); Resource effMinCapacity = Resources.multiply(resourceByLabel, expectedQueueEntitlements.get(label).getCapacity() * parentQueue .getQueueCapacities().getAbsoluteCapacity(label)); assertEquals(effMinCapacity, Resources.multiply(resourceByLabel, leafQueue.getQueueCapacities().getAbsoluteCapacity(label))); assertEquals(effMinCapacity, leafQueue.getEffectiveCapacity(label)); if (leafQueue.getQueueCapacities().getAbsoluteCapacity(label) > 0) { assertTrue(Resources .greaterThan(cs.getResourceCalculator(), cs.getClusterResource(), effMinCapacity, Resources.none())); } else{ assertTrue(Resources.equals(effMinCapacity, Resources.none())); } }