private void addContainerToSchedulerNode(NodeId nodeId, RMContainer container, boolean isReserved) { SchedulerNode node = nodeIdToSchedulerNodes.get(nodeId); assert node != null; if (isReserved) { when(node.getReservedContainer()).thenReturn(container); } else { node.getCopiedListOfRunningContainers().add(container); Resources.subtractFrom(node.getUnallocatedResource(), container.getAllocatedResource()); } }
private void completeOustandingUpdatesWhichAreReserved( RMContainer rmContainer, ContainerStatus containerStatus, RMContainerEventType event) { N schedulerNode = getSchedulerNode(rmContainer.getNodeId()); if (schedulerNode != null && schedulerNode.getReservedContainer() != null) { RMContainer resContainer = schedulerNode.getReservedContainer(); if (resContainer.getReservedSchedulerKey() != null) { ContainerId containerToUpdate = resContainer .getReservedSchedulerKey().getContainerToUpdate(); if (containerToUpdate != null && containerToUpdate.equals(containerStatus.getContainerId())) { completedContainerInternal(resContainer, ContainerStatus.newInstance(resContainer.getContainerId(), containerStatus.getState(), containerStatus .getDiagnostics(), containerStatus.getExitStatus()), event); } } } }
Assert.assertNull(sn1.getReservedContainer()); cs.handle(new NodeUpdateSchedulerEvent(sn1.getRMNode())); waitTime = 1000; while (waitTime > 0 && sn1.getReservedContainer() == null) { waitTime -= 10; Thread.sleep(10); Assert.assertNotNull(sn1.getReservedContainer());
Assert.assertEquals(100, node1.getTotalResource().getMemorySize()); Assert.assertEquals(100, node1.getCopiedListOfRunningContainers().size()); Assert.assertNull(node1.getReservedContainer()); Assert.assertNotNull(node2.getReservedContainer()); Assert.assertNull(node3.getReservedContainer());
while (waitTime > 0 && sn1.getReservedContainer() == null) { waitTime -= 10; Thread.sleep(10); Assert.assertNotNull(sn1.getReservedContainer());
scheduler.tryCommit(scheduler.getClusterResource(), request, true); Assert.assertNull("Outdated proposal should not be accepted!", sn2.getReservedContainer());