/** * Format is: * <pre> * partition0=total_resource,exclusivity; * partition1=total_resource,exclusivity; * ... * </pre> */ private void mockNodeLabelsManager(String nodeLabelsConfigStr) throws IOException { String[] partitionConfigArr = nodeLabelsConfigStr.split(";"); clusterResource = Resources.createResource(0); for (String p : partitionConfigArr) { String partitionName = p.substring(0, p.indexOf("=")); Resource res = parseResourceFromString(p.substring(p.indexOf("=") + 1, p.indexOf(","))); boolean exclusivity = Boolean.valueOf(p.substring(p.indexOf(",") + 1, p.length())); when(nlm.getResourceByLabel(eq(partitionName), any(Resource.class))) .thenReturn(res); when(nlm.isExclusiveNodeLabel(eq(partitionName))).thenReturn(exclusivity); // add to partition to resource partitionToResource.put(partitionName, res); LOG.debug("add partition=" + partitionName + " totalRes=" + res + " exclusivity=" + exclusivity); Resources.addTo(clusterResource, res); } when(nlm.getClusterNodeLabelNames()).thenReturn( partitionToResource.keySet()); }
String resSring = res.substring( res.indexOf("res=") + "res=".length()); totalRes = parseResourceFromString(resSring);
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())); qr.setEffectiveMinResource(parseResourceFromString(values[0].trim())); qr.setEffectiveMaxResource(partitionName, parseResourceFromString(values[1].trim())); qr.setEffectiveMinResource(partitionName, parseResourceFromString(values[0].trim())); when(queue.getUsedCapacity()).thenReturn(used); when(queue.getEffectiveCapacity(partitionName)) .thenReturn(parseResourceFromString(values[0].trim())); when(queue.getEffectiveMaxCapacity(partitionName)) .thenReturn(parseResourceFromString(values[1].trim()));
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]));