Project: mesos
Issue MESOS-3891: Add a helper function to the Agent to check available resources before launching a task. 
Launching a task using revocable resources should be funnelled through an accounting system: * If a task is launched using revocable resources, the resources must not be in use when launching the task. If they are in use, then the task should fail to start. * If a task is launched using reserved resources, the resources must be made available. This means potentially evicting tasks which are using revocable resources. Both cases could be implemented by adding a check in Slave::runTask, like a new helper method: {noformat} class Slave { ... // Checks if the given resources are available (i.e. not utilized) // for starting a task. If not, the task should either fail to // start or result in the eviction of revocable resources. virtual process::Future checkAvailableResources( const Resources& resources); ... } {noformat}
Story points: 5