package mesos.v1.scheduler

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message APIResult

scheduler.proto:519

* This message is used by the C++ Scheduler HTTP API library as the return type of the `call()` method. The message includes the HTTP status code with which the master responded, and optionally a `scheduler::Response` message. There are three cases to consider depending on the HTTP response status code: (1) '202 ACCEPTED': Indicates the call was accepted for processing and neither `response` nor `error` will be set. (2) '200 OK': Indicates the call completed successfully, and the `response` field will be set if the `scheduler::Call::Type` has a corresponding `scheduler::Response::Type`; `error` will not be set. (3) For all other HTTP status codes, the `response` field will not be set and the `error` field may be set to provide more information. NOTE: This message is used by the C++ Scheduler HTTP API library and is not part of the API specification.

message Call

scheduler.proto:234

* Scheduler call API. Like Event, a Call is described using the standard protocol buffer "union" trick (see above).

message Call.Accept

scheduler.proto:302

Accepts an offer, performing the specified operations in a sequential manner. E.g. Launch a task with a newly reserved persistent volume: Accept { offer_ids: [ ... ] operations: [ { type: RESERVE, reserve: { resources: [ disk(role):2 ] } } { type: CREATE, create: { volumes: [ disk(role):1+persistence ] } } { type: LAUNCH, launch: { task_infos ... disk(role):1;disk(role):1+persistence } } ] } Note that any of the offer’s resources not used in the 'Accept' call (e.g., to launch a task) are considered unused and might be reoffered to other frameworks. In other words, the same OfferID cannot be used in more than one 'Accept' call.

Used in: Call

message Call.AcceptInverseOffers

scheduler.proto:320

Accepts an inverse offer. Inverse offers should only be accepted if the resources in the offer can be safely evacuated before the provided unavailability.

Used in: Call

message Call.Acknowledge

scheduler.proto:381

Acknowledges the receipt of status update. Schedulers are responsible for explicitly acknowledging the receipt of status updates that have 'Update.status().uuid()' field set. Such status updates are retried by the agent until they are acknowledged by the scheduler.

Used in: Call

message Call.AcknowledgeOperationStatus

scheduler.proto:392

Acknowledges the receipt of an operation status update. Schedulers are responsible for explicitly acknowledging the receipt of updates which have the 'UpdateOperationStatus.status().uuid()' field set. Such status updates are retried by the agent or resource provider until they are acknowledged by the scheduler.

Used in: Call

message Call.Decline

scheduler.proto:312

Declines an offer, signaling the master to potentially reoffer the resources to a different framework. Note that this is same as sending an Accept call with no operations. See comments on top of 'Accept' for semantics.

Used in: Call

message Call.DeclineInverseOffers

scheduler.proto:328

Declines an inverse offer. Inverse offers should be declined if the resources in the offer might not be safely evacuated before the provided unavailability.

Used in: Call

message Call.Kill

scheduler.proto:354

Kills a specific task. If the scheduler has a custom executor, the kill is forwarded to the executor and it is up to the executor to kill the task and send a TASK_KILLED (or TASK_FAILED) update. Note that Mesos releases the resources for a task once it receives a terminal update (See TaskState in v1/mesos.proto) for it. If the task is unknown to the master, a TASK_LOST update is generated. If a task within a task group is killed before the group is delivered to the executor, all tasks in the task group are killed. When a task group has been delivered to the executor, it is up to the executor to decide how to deal with the kill. Note The default Mesos executor will currently kill all the tasks in the task group if it gets a kill for any task.

Used in: Call

message Call.Message

scheduler.proto:445

Sends arbitrary binary data to the executor. Note that Mesos neither interprets this data nor makes any guarantees about the delivery of this message to the executor.

Used in: Call

message Call.Reconcile

scheduler.proto:411

Allows the scheduler to query the status for non-terminal tasks. This causes the master to send back the latest task status for each task in 'tasks', if possible. Tasks that are no longer known will result in a TASK_LOST, TASK_UNKNOWN, or TASK_UNREACHABLE update. If 'tasks' is empty, then the master will send the latest status for each task currently known.

Used in: Call

message Call.Reconcile.Task

scheduler.proto:413

TODO(vinod): Support arbitrary queries than just state of tasks.

Used in: Reconcile

message Call.ReconcileOperations

scheduler.proto:426

Allows the scheduler to query the status of operations. This causes the master to send back the latest status for each operation in 'operations', if possible. If 'operations' is empty, then the master will send the latest status for each operation currently known.

Used in: Call

message Call.ReconcileOperations.Operation

scheduler.proto:427

Used in: ReconcileOperations

message Call.Request

scheduler.proto:457

Requests a specific set of resources from Mesos's allocator. If the allocator has support for this, corresponding offers will be sent asynchronously via the OFFERS event(s). NOTE: The built-in hierarchical allocator doesn't have support for this call and hence simply ignores it.

Used in: Call

message Call.Revive

scheduler.proto:336

Revive offers for the specified roles. If `roles` is empty, the `REVIVE` call will revive offers for all of the roles the framework is currently subscribed to.

Used in: Call

message Call.Shutdown

scheduler.proto:371

Shuts down a custom executor. When the executor gets a shutdown event, it is expected to kill all its tasks (and send TASK_KILLED updates) and terminate. If the executor doesn’t terminate within a certain timeout (configurable via '--executor_shutdown_grace_period' agent flag), the agent will forcefully destroy the container (executor and its tasks) and transition its active tasks to TASK_LOST.

Used in: Call

message Call.Subscribe

scheduler.proto:270

Subscribes the scheduler with the master to receive events. A scheduler must send other calls only after it has received the SUBCRIBED event.

Used in: Call

message Call.Suppress

scheduler.proto:464

Suppress offers for the specified roles. If `roles` is empty, the `SUPPRESS` call will suppress offers for all of the roles the framework is currently subscribed to.

Used in: Call

enum Call.Type

scheduler.proto:237

Possible call types, followed by message definitions if applicable.

Used in: Call

message Event

scheduler.proto:34

* Scheduler event API. An event is described using the standard protocol buffer "union" trick, see: https://developers.google.com/protocol-buffers/docs/techniques#union.

message Event.Error

scheduler.proto:186

Received when there is an unrecoverable error in the scheduler (e.g., scheduler failed over, rate limiting, authorization errors etc.). The scheduler should abort on receiving this event.

Used in: Event

message Event.Failure

scheduler.proto:163

Received when an agent is removed from the cluster (e.g., failed health checks) or when an executor is terminated. Note that, this event coincides with receipt of terminal UPDATE events for any active tasks belonging to the agent or executor and receipt of 'Rescind' events for any outstanding offers belonging to the agent. Note that there is no guaranteed order between the 'Failure', 'Update' and 'Rescind' events when an agent or executor is removed. TODO(vinod): Consider splitting the lost agent and terminated executor into separate events and ensure it's reliably generated.

Used in: Event

message Event.InverseOffers

scheduler.proto:92

Received whenever there are resources requested back from the scheduler. Each inverse offer specifies the agent, and optionally specific resources. Accepting or Declining an inverse offer informs the allocator of the scheduler's ability to release the specified resources without violating an SLA. If no resources are specified then all resources on the agent are requested to be released.

Used in: Event

message Event.Message

scheduler.proto:147

Received when a custom message generated by the executor is forwarded by the master. Note that this message is not interpreted by Mesos and is only forwarded (without reliability guarantees) to the scheduler. It is up to the executor to retry if the message is dropped for any reason.

Used in: Event

message Event.Offers

scheduler.proto:81

Received whenever there are new resources that are offered to the scheduler. Each offer corresponds to a set of resources on an agent. Until the scheduler accepts or declines an offer the resources are considered allocated to the scheduler.

Used in: Event

message Event.Rescind

scheduler.proto:100

Received when a particular offer is no longer valid (e.g., the agent corresponding to the offer has been removed) and hence needs to be rescinded. Any future calls ('Accept' / 'Decline') made by the scheduler regarding this offer will be invalid.

Used in: Event

message Event.RescindInverseOffer

scheduler.proto:109

Received when a particular inverse offer is no longer valid (e.g., the agent corresponding to the offer has been removed) and hence needs to be rescinded. Any future calls ('Accept' / 'Decline') made by the scheduler regarding this inverse offer will be invalid.

Used in: Event

message Event.Subscribed

scheduler.proto:66

First event received when the scheduler subscribes.

Used in: Event

enum Event.Type

scheduler.proto:37

Possible event types, followed by message definitions if applicable.

Used in: Event

message Event.Update

scheduler.proto:127

Received whenever there is a status update that is generated by the executor or agent or master. Status updates should be used by executors to reliably communicate the status of the tasks that they manage. It is crucial that a terminal update (see TaskState in v1/mesos.proto) is sent by the executor as soon as the task terminates, in order for Mesos to release the resources allocated to the task. It is also the responsibility of the scheduler to explicitly acknowledge the receipt of a status update. See 'Acknowledge' in the 'Call' section below for the semantics. A task status update may be used for guaranteed delivery of some task-related information, e.g., task's health update. Such information may be shadowed by subsequent task status updates, that do not preserve fields of the previously sent message.

Used in: Event

message Event.UpdateOperationStatus

scheduler.proto:138

Received when there is an operation status update generated by the master, agent, or resource provider. These updates are only sent to the framework for operations which had the operation ID set by the framework. It is the responsibility of the scheduler to explicitly acknowledge the receipt of a status update. See 'AcknowledgeOperationStatus' in the 'Call' section below for the semantics.

Used in: Event

message Response

scheduler.proto:211

* Synchronous responses for calls made to the scheduler API.

Used in: APIResult

message Response.ReconcileOperations

scheduler.proto:219

Used in: Response

enum Response.Type

scheduler.proto:213

Each of the responses of type `FOO` corresponds to `Foo` message below.

Used in: Response