17 #ifndef __MESOS_SCHEDULER_HPP__
18 #define __MESOS_SCHEDULER_HPP__
42 class SchedulerDriver;
49 class SchedulerProcess;
81 const FrameworkID& frameworkId,
82 const MasterInfo& masterInfo) = 0;
90 const MasterInfo& masterInfo) = 0;
111 const std::vector<Offer>& offers) = 0;
121 const OfferID& offerId) = 0;
136 const TaskStatus&
status) = 0;
143 const ExecutorID& executorId,
144 const SlaveID& slaveId,
145 const std::string& data) = 0;
156 const SlaveID& slaveId) = 0;
167 const ExecutorID& executorId,
168 const SlaveID& slaveId,
176 const std::string& message) = 0;
194 virtual Status
start() = 0;
204 virtual Status
stop(
bool failover =
false) = 0;
213 virtual Status
abort() = 0;
219 virtual Status
join() = 0;
222 virtual Status
run() = 0;
242 const std::vector<OfferID>& offerIds,
243 const std::vector<TaskInfo>& tasks,
244 const Filters&
filters = Filters()) = 0;
248 const OfferID& offerId,
249 const std::vector<TaskInfo>& tasks,
250 const Filters&
filters = Filters()) = 0;
257 virtual Status
killTask(
const TaskID& taskId) = 0;
271 const std::vector<OfferID>& offerIds,
272 const std::vector<Offer::Operation>& operations,
273 const Filters&
filters = Filters()) = 0;
281 const OfferID& offerId,
282 const Filters&
filters = Filters()) = 0;
299 const TaskStatus&
status) = 0;
305 const ExecutorID& executorId,
306 const SlaveID& slaveId,
307 const std::string& data) = 0;
316 const std::vector<TaskStatus>&
statuses) = 0;
369 const FrameworkInfo& framework,
370 const std::string& master);
376 const FrameworkInfo& framework,
377 const std::string& master,
378 const Credential& credential);
389 const FrameworkInfo& framework,
390 const std::string& master,
391 bool implicitAcknowledgements);
395 const FrameworkInfo& framework,
396 const std::string& master,
397 bool implicitAcknowlegements,
398 const Credential& credential);
407 virtual Status
start();
408 virtual Status
stop(
bool failover =
false);
409 virtual Status
abort();
410 virtual Status
join();
411 virtual Status
run();
414 const std::vector<Request>& requests);
419 const OfferID& offerId,
420 const std::vector<TaskInfo>& tasks,
421 const Filters&
filters = Filters());
424 const std::vector<OfferID>& offerIds,
425 const std::vector<TaskInfo>& tasks,
426 const Filters&
filters = Filters());
428 virtual Status
killTask(
const TaskID& taskId);
431 const std::vector<OfferID>& offerIds,
432 const std::vector<Offer::Operation>& operations,
433 const Filters&
filters = Filters());
436 const OfferID& offerId,
437 const Filters&
filters = Filters());
444 const TaskStatus& status);
447 const ExecutorID& executorId,
448 const SlaveID& slaveId,
449 const std::string& data);
452 const std::vector<TaskStatus>&
statuses);
456 std::shared_ptr<master::detector::MasterDetector>
detector;
462 FrameworkInfo framework;
466 internal::SchedulerProcess* process;
472 std::recursive_mutex mutex;
480 const bool implicitAcknowlegements;
482 const Credential* credential;
485 std::string schedulerId;
490 #endif // __MESOS_SCHEDULER_HPP__
virtual Status requestResources(const std::vector< Request > &requests)
virtual Status suppressOffers()=0
virtual Status requestResources(const std::vector< Request > &requests)=0
virtual Status stop(bool failover=false)
virtual void resourceOffers(SchedulerDriver *driver, const std::vector< Offer > &offers)=0
virtual ~MesosSchedulerDriver()
virtual Status acknowledgeStatusUpdate(const TaskStatus &status)
virtual Status reconcileTasks(const std::vector< TaskStatus > &statuses)
virtual ~SchedulerDriver()
Definition: scheduler.hpp:190
virtual Status acceptOffers(const std::vector< OfferID > &offerIds, const std::vector< Offer::Operation > &operations, const Filters &filters=Filters())=0
Result< ProcessStatus > status(pid_t pid)
Definition: proc.hpp:166
virtual Status launchTasks(const std::vector< OfferID > &offerIds, const std::vector< TaskInfo > &tasks, const Filters &filters=Filters())=0
Definition: scheduler.hpp:346
virtual Status suppressOffers()
virtual Status stop(bool failover=false)=0
virtual Status acceptOffers(const std::vector< OfferID > &offerIds, const std::vector< Offer::Operation > &operations, const Filters &filters=Filters())
virtual ~Scheduler()
Definition: scheduler.hpp:73
virtual Status killTask(const TaskID &taskId)
MesosSchedulerDriver(Scheduler *scheduler, const FrameworkInfo &framework, const std::string &master)
virtual void registered(SchedulerDriver *driver, const FrameworkID &frameworkId, const MasterInfo &masterInfo)=0
Definition: scheduler.hpp:185
Result< std::vector< Filter< Classifier > > > filters(const std::string &_link, const Handle &parent)
Definition: internal.hpp:776
virtual Status acknowledgeStatusUpdate(const TaskStatus &status)=0
virtual Status sendFrameworkMessage(const ExecutorID &executorId, const SlaveID &slaveId, const std::string &data)=0
virtual Status reviveOffers()=0
virtual Status declineOffer(const OfferID &offerId, const Filters &filters=Filters())=0
Definition: scheduler.hpp:69
virtual void offerRescinded(SchedulerDriver *driver, const OfferID &offerId)=0
std::shared_ptr< master::detector::MasterDetector > detector
Definition: scheduler.hpp:456
virtual Status sendFrameworkMessage(const ExecutorID &executorId, const SlaveID &slaveId, const std::string &data)
Result< Process > process(pid_t pid)
Definition: freebsd.hpp:30
virtual Status declineOffer(const OfferID &offerId, const Filters &filters=Filters())
virtual Status reviveOffers()
virtual void error(SchedulerDriver *driver, const std::string &message)=0
virtual Status killTask(const TaskID &taskId)=0
hashmap< uint16_t, std::string > * statuses
virtual Status launchTasks(const OfferID &offerId, const std::vector< TaskInfo > &tasks, const Filters &filters=Filters())
virtual void frameworkMessage(SchedulerDriver *driver, const ExecutorID &executorId, const SlaveID &slaveId, const std::string &data)=0
virtual void slaveLost(SchedulerDriver *driver, const SlaveID &slaveId)=0
virtual void reregistered(SchedulerDriver *driver, const MasterInfo &masterInfo)=0
virtual void disconnected(SchedulerDriver *driver)=0
virtual void executorLost(SchedulerDriver *driver, const ExecutorID &executorId, const SlaveID &slaveId, int status)=0
virtual Status reconcileTasks(const std::vector< TaskStatus > &statuses)=0
virtual void statusUpdate(SchedulerDriver *driver, const TaskStatus &status)=0