package mesosproto

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

message Action

log.proto:45

Represents an "action" performed on the log. Each action has an associated position in the log. In addition, each action (i.e., position) will have been "promised" to a specific proposer (implicitly or explicitly) and may have been "performed" from a specific proposer. An action may also be "learned" to have reached consensus. There are three types of possible actions that can be performed on the log: nop (no action), append, and truncate.

Used in: LearnedMessage, PromiseResponse, Record

message Action.Append

log.proto:59

Used in: Action, WriteRequest

message Action.Nop

log.proto:57

Used in: Action, WriteRequest

(message has no fields)

message Action.Truncate

log.proto:64

Used in: Action, WriteRequest

enum Action.Type

log.proto:51

Used in: Action, WriteRequest

message Archive

message.proto:379

* Describes Completed Frameworks, etc. for archival.

message Archive.Framework

message.proto:380

Used in: Archive, ReregisterSlaveMessage

message Attribute

mesos.proto:247

* Describes an attribute that can be set on a machine. For now, attributes and resources share the same "value" type, but this may change in the future and attributes may only be string based.

Used in: Offer, SlaveInfo

message AuthenticateMessage

message.proto:343

message AuthenticationCompletedMessage

message.proto:364

(message has no fields)

message AuthenticationErrorMessage

message.proto:370

message AuthenticationFailedMessage

message.proto:367

(message has no fields)

message AuthenticationMechanismsMessage

message.proto:348

message AuthenticationStartMessage

message.proto:353

message AuthenticationStepMessage

message.proto:359

message CommandInfo

mesos.proto:132

* Describes a command, executed via: '/bin/sh -c value'. Any URIs specified are fetched before executing the command. If the executable field for an uri is set, executable file permission is set on the downloaded file. Otherwise, if the downloaded file has a recognized archive extension (currently [compressed] tar and zip) it is extracted into the executor's working directory. In addition, any environment variables are set before executing the command (so they can be used to "parameterize" your command).

Used in: ExecutorInfo, TaskInfo

message CommandInfo.URI

mesos.proto:133

Used in: CommandInfo

message ContainerID

mesos.proto:89

* A slave generated ID to distinguish a container. The ID must be unique between any active or completed containers on the slave. In particular, containers for different runs of the same (framework, executor) pair must be unique.

message Credential

mesos.proto:470

* Credential used for authentication. NOTE: The 'principal' is used for authenticating the framework with the master. This is different from 'FrameworkInfo.user' which is used to determine the user under which the framework's executors/tasks are run.

message DeactivateFrameworkMessage

message.proto:141

message Environment

mesos.proto:435

* Describes a collection of environment variables. This is used with CommandInfo in order to set environment variables before running a command.

Used in: CommandInfo

message Environment.Variable

mesos.proto:436

Used in: Environment

message ExecutorID

mesos.proto:78

* A framework generated ID to distinguish an executor. Only one executor with the same ID can be active on the same slave at a time.

Used in: ExecutorInfo, ExecutorToFrameworkMessage, ExitedExecutorMessage, FrameworkToExecutorMessage, Offer, RegisterExecutorMessage, ReregisterExecutorMessage, ResourceUsage, StatusUpdate, Task

message ExecutorInfo

mesos.proto:148

* Describes information about an executor. The 'data' field can be used to pass arbitrary bytes to an executor.

Used in: ExecutorRegisteredMessage, ReregisterSlaveMessage, TaskInfo

message ExecutorRegisteredMessage

message.proto:284

message ExecutorReregisteredMessage

message.proto:293

message ExecutorToFrameworkMessage

message.proto:99

message ExitedExecutorMessage

message.proto:299

message Filters

mesos.proto:419

* Describes possible filters that can be applied to unused resources (see SchedulerDriver::launchTasks) to influence the allocator.

Used in: LaunchTasksMessage

message FrameworkErrorMessage

message.proto:220

message FrameworkExpiredMessage

message.proto:335

message FrameworkID

mesos.proto:39

* A unique ID assigned to a framework. A framework can reuse this ID in order to do failover (see MesosSchedulerDriver).

Used in: DeactivateFrameworkMessage, ExecutorInfo, ExecutorRegisteredMessage, ExecutorToFrameworkMessage, ExitedExecutorMessage, FrameworkExpiredMessage, FrameworkInfo, FrameworkRegisteredMessage, FrameworkReregisteredMessage, FrameworkToExecutorMessage, KillTaskMessage, LaunchTasksMessage, Offer, ReconcileTasksMessage, RegisterExecutorMessage, ReregisterExecutorMessage, ResourceRequestMessage, ResourceUsage, ReviveOffersMessage, RunTaskMessage, ShutdownFrameworkMessage, StatusUpdate, StatusUpdateAcknowledgementMessage, Task, UnregisterFrameworkMessage, UpdateFrameworkMessage

message FrameworkInfo

mesos.proto:112

* Describes a framework. If the user field is set to an empty string Mesos will automagically set it to the current user. Note that the ID is only available after a framework has registered, however, it is included here in order to facilitate scheduler failover (i.e., if it is set then the MesosSchedulerDriver expects the scheduler is performing failover). The amount of time that the master will wait for the scheduler to failover before removing the framework is specified by failover_timeout. If checkpoint is set, framework pid, executor pids and status updates are checkpointed to disk by the slaves. Checkpointing allows a restarted slave to reconnect with old executors and recover status updates, at the cost of disk I/O. The role field is used to group frameworks for allocation decisions, depending on the allocation policy being used. If the hostname field is set to an empty string Mesos will automagically set it to the current hostname.

Used in: Archive.Framework, ExecutorRegisteredMessage, RegisterFrameworkMessage, ReregisterFrameworkMessage, RunTaskMessage

message FrameworkRegisteredMessage

message.proto:126

message FrameworkReregisteredMessage

message.proto:131

message FrameworkToExecutorMessage

message.proto:107

message HeartbeatMessage

message.proto:256

message KillTaskMessage

message.proto:185

message LaunchTasksMessage

message.proto:158

message LearnedMessage

log.proto:180

Represents a "learned" event, that is, when a particular action has been agreed upon (reached consensus).

message LostSlaveMessage

message.proto:209

message MasterInfo

mesos.proto:171

* Describes a master. This will probably have more fields in the future which might be used, for example, to link a framework webui to a master webui.

Used in: FrameworkRegisteredMessage, FrameworkReregisteredMessage

message Metadata

log.proto:79

The metadata of a replica. It has to be persisted on the disk. We store the current status of the replica as well as the implicit promise that a replica has made. This message is intended to replace the old Promise message to support catch-up.

Used in: Record

enum Metadata.Status

log.proto:80

Used in: Metadata, RecoverResponse

message Offer

mesos.proto:355

* Describes some resources available on a slave. An offer only contains resources from a single slave.

Used in: ResourceOffersMessage

message OfferID

mesos.proto:47

* A unique ID assigned to an offer.

Used in: LaunchTasksMessage, Offer, RescindResourceOfferMessage

message Parameter

mesos.proto:448

* A generic (key, value) pair used in various places for parameters.

Used in: Parameters

message Parameters

mesos.proto:457

* Collection of Parameter.

Used in: ProjdUpdateResourcesMessage

message ProjdReadyMessage

message.proto:325

message ProjdUpdateResourcesMessage

message.proto:330

message Promise

log.proto:33

Represents a "promise" that a replica has made. A promise is *implicitly* valid for _all_ future actions that get performed on the replicated log (provided the action comes from the same proposer), until a new promise is made to a proposer with a higher proposal number. Each replica writes every promise it makes as a log record so that it can recover this information after a failure. TODO(benh): Does the promise actually need to be written to stable storage? Can we get away with looking at the last written action and using it's promised value? In this case, what happens if we make a promise but don't receive an action from that coordinator?

Used in: Record

message PromiseRequest

log.proto:125

Represents a "promise" request from a proposer with the specified 'proposal' to a replica. If the proposer is a coordinator, most such requests will occur after a coordinator has failed and a new coordinator is elected. In such a case, the position that the coordinator is asking the replica to promise is implicitly *all* positions that the replica has made no promises (thus the position field is not be used). In other instances, however, a proposer might be explicitly trying to request that a replica promise a specific position in the log (such as when trying to fill holes discovered during a client read), and then the 'position' field will be present.

message PromiseResponse

log.proto:140

Represents a "promise" response from a replica back to a proposer. A replica represents a NACK (because it has promised a proposer with a higher proposal number) by setting the okay field to false. The 'proposal' is either the aforementioned higher proposal number when the response is a NACK, or the corresponding request's proposal number if it is an ACK. The replica either sends back the highest position it has recorded in the log (using the 'position' field) or the specific action (if any) it has at the position requested in PromiseRequest (using the 'action' field).

message ReconcileTasksMessage

message.proto:214

message ReconnectExecutorMessage

message.proto:307

message Record

log.proto:95

Represents a log record written to the local filesystem by a replica. A log record may store a promise (DEPRECATED), an action or metadata (defined above).

enum Record.Type

log.proto:96

Used in: Record

message RecoverRequest

log.proto:187

Represents a recover request. A recover request is used to initiate the recovery (by broadcasting it).

(message has no fields)

message RecoverResponse

log.proto:192

When a replica receives a RecoverRequest, it will reply with its current status, and the begin and the end of its current log.

message RegisterExecutorMessage

message.proto:278

message RegisterFrameworkMessage

message.proto:115

message RegisterProjdMessage

message.proto:320

message RegisterSlaveMessage

message.proto:225

message Request

mesos.proto:345

* Describes a request for resources that can be used by a framework to proactively influence the allocator. If 'slave_id' is provided then this request is assumed to only apply to resources on that slave.

Used in: ResourceRequestMessage

message ReregisterExecutorMessage

message.proto:312

message ReregisterFrameworkMessage

message.proto:120

message ReregisterSlaveMessage

message.proto:230

message RescindResourceOfferMessage

message.proto:167

message Resource

mesos.proto:266

* Describes a resource on a machine. A resource can take on one of three types: scalar (double), a list of finite and discrete ranges (e.g., [1-10, 20-30]), or a set of items. A resource is described using the standard protocol buffer "union" trick. TODO(benh): Add better support for "expected" resources (e.g., cpus, memory, disk, network).

Used in: ExecutorInfo, Offer, Request, SlaveInfo, Task, TaskInfo

message ResourceOffersMessage

message.proto:152

message ResourceRequestMessage

message.proto:146

message ResourceStatistics

mesos.proto:279

A snapshot of resource usage statistics.

Used in: ResourceUsage

message ResourceUsage

mesos.proto:319

* Describes a snapshot of the resource usage for an executor. TODO(bmahler): Note that we want to be sending this information to the master, and subsequently to the relevant scheduler. So this proto is designed to be easy for the scheduler to use, this is why we provide the slave id, executor info / task info.

message ReviveOffersMessage

message.proto:172

message RoleInfo

message.proto:57

Describes a role, which are used to group frameworks for allocation decisions, depending on the allocation policy being used. The weight field can be used to indicate forms of priority.

message RunTaskMessage

message.proto:177

message ShutdownExecutorMessage

message.proto:269

Tells the executor to initiate a shut down by invoking Executor::shutdown.

(message has no fields)

message ShutdownFrameworkMessage

message.proto:262

Tells a slave to shut down all executors of the given framework.

message ShutdownMessage

message.proto:340

(message has no fields)

message SlaveID

mesos.proto:57

* A unique ID assigned to a slave. Currently, a slave gets a new ID whenever it (re)registers with Mesos. Framework writers shouldn't assume any binding between a slave ID and and a hostname.

Used in: ExecutorRegisteredMessage, ExecutorReregisteredMessage, ExecutorToFrameworkMessage, ExitedExecutorMessage, FrameworkToExecutorMessage, HeartbeatMessage, LostSlaveMessage, Offer, ReconnectExecutorMessage, Request, ReregisterSlaveMessage, ResourceUsage, SlaveInfo, SlaveRegisteredMessage, SlaveReregisteredMessage, StatusUpdate, StatusUpdateAcknowledgementMessage, Task, TaskInfo, TaskStatus, UnregisterSlaveMessage

message SlaveInfo

mesos.proto:187

* Describes a slave. Note that the 'id' field is only available after a slave is registered with the master, and is made available here to facilitate re-registration. If checkpoint is set, the slave is checkpointing its own information and potentially frameworks' information (if a framework has checkpointing enabled).

Used in: ExecutorRegisteredMessage, ExecutorReregisteredMessage, RegisterSlaveMessage, ReregisterSlaveMessage

message SlaveRegisteredMessage

message.proto:241

message SlaveReregisteredMessage

message.proto:246

enum Status

mesos.proto:27

* Status is used to indicate the state of the scheduler and executor driver after function calls.

message StatusUpdate

message.proto:63

Used in: ReregisterExecutorMessage, StatusUpdateMessage, StatusUpdateRecord

message StatusUpdateAcknowledgementMessage

message.proto:201

message StatusUpdateMessage

message.proto:195

NOTE: If 'pid' is present, scheduler driver sends an acknowledgement to the pid.

message StatusUpdateRecord

message.proto:76

This message encapsulates how we checkpoint a status update to disk. NOTE: If type == UPDATE, the 'update' field is required. NOTE: If type == ACK, the 'uuid' field is required.

enum StatusUpdateRecord.Type

message.proto:77

Used in: StatusUpdateRecord

message SubmitSchedulerRequest

message.proto:87

message SubmitSchedulerResponse

message.proto:93

message Task

message.proto:43

TODO(benh): It would be great if this could just be a TaskInfo wherever it gets used! However, doing so would require adding the framework_id field, the executor_id field, and the state field into TaskInfo though (or send them another way). Also, one performance reason why we don't do that now is because storing whatever data is coupled with a TaskInfo could be large and unnecessary. TODO(bmahler): Add executor_uuid here, and send it to the master. This will allow us to expose executor work directories for tasks in the webui when looking from the master level. Currently only the slave knows which run the task belongs to.

Used in: Archive.Framework, ReregisterSlaveMessage

message TaskID

mesos.proto:68

* A framework generated ID to distinguish a task. The ID must remain unique while the task is active. However, a framework can reuse an ID _only_ if a previous task with the same ID has reached a terminal state (e.g., TASK_FINISHED, TASK_LOST, TASK_KILLED, etc.).

Used in: KillTaskMessage, ResourceUsage, StatusUpdateAcknowledgementMessage, Task, TaskInfo, TaskStatus

message TaskInfo

mesos.proto:373

* Describes a task. Passed from the scheduler all the way to an executor (see SchedulerDriver::launchTasks and Executor::launchTask). Either ExecutorInfo or CommandInfo should be set. A different executor can be used to launch this task, and subsequent tasks meant for the same executor can reuse the same ExecutorInfo struct.

Used in: LaunchTasksMessage, ReregisterExecutorMessage, RunTaskMessage

enum TaskState

mesos.proto:391

* Describes possible task states. IMPORTANT: Mesos assumes tasks that enter terminal states (see below) imply the task is no longer running and thus clean up any thing associated with the task (ultimately offering any resources being consumed by that task to another task).

Used in: Task, TaskStatus

message TaskStatus

mesos.proto:405

* Describes the current status of a task.

Used in: ReconcileTasksMessage, StatusUpdate, Task

message UnregisterFrameworkMessage

message.proto:136

message UnregisterSlaveMessage

message.proto:251

message UpdateFrameworkMessage

message.proto:272

message Value

mesos.proto:205

* Describes an Attribute or Resource "value". A value is described using the standard protocol buffer "union" trick.

message Value.Range

mesos.proto:217

Used in: Ranges

message Value.Ranges

mesos.proto:222

Used in: Attribute, Resource, Value

message Value.Scalar

mesos.proto:213

Used in: Attribute, Resource, Value

message Value.Set

mesos.proto:226

Used in: Attribute, Resource, Value

message Value.Text

mesos.proto:230

Used in: Attribute, Value

enum Value.Type

mesos.proto:206

Used in: Attribute, Resource, Value

message WriteRequest

log.proto:152

Represents a write request for a specific type of action. Note that we deliberately do not include the entire Action as it contains fields that are not relevant to a write request (e.g., promised, performed) and rather than ignore them we exclude them for safety.

message WriteResponse

log.proto:171

Represents a write response corresponding to a write request. A replica represents a NACK (because it has promised a proposer with a higher proposal number) by setting the okay field to false. If the proposer is a coordinator, then it has been demoted. The 'position' should always correspond to the position set in the request. The 'proposal' is either the same proposal number set in the request in the case of an ACK, or the higher proposal number this position has been promised to in the case of a NACK.