public RMContainer reserve(SchedulerNode node,
SchedulerRequestKey schedulerKey, RMContainer rmContainer,
Container container) {
try {
writeLock.lock();
if (rmContainer == null) {
rmContainer = new RMContainerImpl(container, schedulerKey,
getApplicationAttemptId(), node.getNodeID(),
appSchedulingInfo.getUser(), rmContext);
}
if (rmContainer.getState() == RMContainerState.NEW) {
attemptResourceUsage.incReserved(node.getPartition(),
container.getResource());
((RMContainerImpl) rmContainer).setQueueName(this.getQueueName());
resetReReservations(schedulerKey);
} else{
addReReservation(schedulerKey);
}
commonReserve(node, schedulerKey, rmContainer, container.getResource());
return rmContainer;
} finally {
writeLock.unlock();
}
}