[ 
https://issues.apache.org/jira/browse/MESOS-3041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joseph Wu updated MESOS-3041:
-----------------------------
    Description: 
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

  was:
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 two 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 an optional "reason" to the Decline call in the Event/Call API
> ------------------------------------------------------------------
>
>                 Key: MESOS-3041
>                 URL: https://issues.apache.org/jira/browse/MESOS-3041
>             Project: Mesos
>          Issue Type: Task
>          Components: master
>            Reporter: Joseph Wu
>              Labels: mesosphere
>
> 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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to