Project: mesos
Issue MESOS-3041: Decline call does not include an optional "reason", in the Event/Call API
In the Event/Call API, the Decline call is currently used by frameworks to reject resource offers. In the case of InverseOffers, the framework could give additional information to the operators and/or allocator, as to why the InverseOffer is declined. i.e. Suppose a cluster running some consensus algorithm is given an InverseOffer on one of its nodes. It may decline saying "Too few nodes" (or, more verbosely, "Specified InverseOffer would lower the number of active nodes below quorum"). This change requires the following changes: * include/mesos/scheduler/scheduler.proto: {code} message Call { ... message Decline { repeated OfferID offer_ids = 1; optional Filters filters = 2; // Add this extra string for each OfferID // i.e. reasons[i] is for offer_ids[i] repeated string reasons = 3; } ... } {code} * src/master/master.cpp Change Master::decline to either store the reason, or log it. * Add a declineOffer overload in the (Mesos)SchedulerDriver with an optional "reason". ** Extend the interface in include/mesos/scheduler.hpp ** Add/change the declineOffer method in src/sched/sched.cpp
Story points: 3