public void buildEnv(String labelsConfig, String nodesConfig, String queuesConfig, String appsConfig) throws IOException { buildEnv(labelsConfig, nodesConfig, queuesConfig, appsConfig, false); }
private ParentQueue getParentQueue(String[] queueExprArray, int idx, int myLevel) { idx--; while (idx >= 0) { int level = getLevel(queueExprArray[idx]); if (level < myLevel) { String parentQueuName = getQueueName(queueExprArray[idx]); return (ParentQueue) nameToCSQueues.get(parentQueuName); } idx--; } return null; }
int myLevel = getLevel(q); if (0 == myLevel) { String queueName = getQueueName(q); when(queue.getQueueName()).thenReturn(queueName); ParentQueue parentQueue = getParentQueue(queueExprArray, idx, myLevel); if (null != parentQueue) { when(queue.getParent()).thenReturn(parentQueue); Resource totResoucePerPartition = partitionToResource.get(partitionName); float absGuaranteed = Resources.divide(rc, totResoucePerPartition, parseResourceFromString(values[0].trim()), totResoucePerPartition) + epsilon; float absMax = Resources.divide(rc, totResoucePerPartition, parseResourceFromString(values[1].trim()), totResoucePerPartition) + epsilon; float absUsed = Resources.divide(rc, totResoucePerPartition, parseResourceFromString(values[2].trim()), totResoucePerPartition) + epsilon; float used = Resources.divide(rc, totResoucePerPartition, parseResourceFromString(values[2].trim()), parseResourceFromString(values[0].trim())) + epsilon; Resource pending = parseResourceFromString(values[3].trim()); qc.setAbsoluteCapacity(partitionName, absGuaranteed); qc.setAbsoluteMaximumCapacity(partitionName, absMax); qc.setAbsoluteUsedCapacity(partitionName, absUsed); qc.setUsedCapacity(partitionName, used); qr.setEffectiveMaxResource(parseResourceFromString(values[1].trim()));
public void buildEnv(String labelsConfig, String nodesConfig, String queuesConfig, String appsConfig, boolean useDominantResourceCalculator) throws IOException { if (useDominantResourceCalculator) { when(cs.getResourceCalculator()).thenReturn( new DominantResourceCalculator()); } mockNodeLabelsManager(labelsConfig); mockSchedulerNodes(nodesConfig); for (NodeId nodeId : nodeIdToSchedulerNodes.keySet()) { when(cs.getSchedulerNode(nodeId)).thenReturn( nodeIdToSchedulerNodes.get(nodeId)); } List<FiCaSchedulerNode> allNodes = new ArrayList<>( nodeIdToSchedulerNodes.values()); when(cs.getAllNodes()).thenReturn(allNodes); ParentQueue root = mockQueueHierarchy(queuesConfig); when(cs.getRootQueue()).thenReturn(root); when(cs.getClusterResource()).thenReturn(clusterResource); mockApplications(appsConfig); policy = new ProportionalCapacityPreemptionPolicy(rmContext, cs, mClock); }
if (isParent(queueExprArray, idx)) { ParentQueue parentQueue = mock(ParentQueue.class); queue = parentQueue; OrderingPolicy<FiCaSchedulerApp> so = mock(OrderingPolicy.class); String opName = conf.get(CapacitySchedulerConfiguration.PREFIX + CapacitySchedulerConfiguration.ROOT + "." + getQueueName(q) + ".ordering-policy", "fifo"); if (opName.equals("fair")) { setupQueue(queue, q, queueExprArray, idx); if (queue.getQueueName().equals(ROOT)) { rootQueue = (ParentQueue) queue;
Resource res = parseResourceFromString(values[1]); NodeId host = NodeId.newInstance(values[2], 1); String label = values[3]; boolean reserved = Boolean.valueOf(values[5]); if (values.length >= 7) { Resources.addTo(pending, parseResourceFromString(values[6])); addContainerToSchedulerNode(host, rmc, reserved);
/** * Get if a queue is ParentQueue */ private boolean isParent(String[] queues, int idx) { int myLevel = getLevel(queues[idx]); idx++; while (idx < queues.length && getLevel(queues[idx]) == myLevel) { idx++; } if (idx >= queues.length || getLevel(queues[idx]) < myLevel) { // It's a LeafQueue return false; } else { return true; } }
when(app.getAMResource(anyString())) .thenReturn(Resources.createResource(0, 0)); mockContainers(strs[1], app, appAttemptId, queueName, reservedContainers, liveContainers); LOG.debug("Application mock: queue: " + queueName + ", appId:" + appId);