Get desktop application:
View/edit binary Protocol Buffers messages
* ACLs used for authorization.
(message has no fields)
Entity is used to describe a subject(s) or an object(s) of an ACL. NOTE: To allow everyone access to an Entity set its type to 'ANY'. To deny access to an Entity set its type to 'NONE'.
Used in:
, , ,Ignored for ANY/NONE.
Used in:
Used in:
Subjects (At least one of these should be set).
HTTP authentication based usernames.
Objects.
Used in:
Subjects (At least one of these should be set).
HTTP authentication based usernames.
Objects.
Used in:
Subjects.
Framework principals.
Objects.
Resource roles that can be offered.
ACLs.
Used in:
Subjects.
Framework principals.
Objects.
Users to run the tasks/executors as.
Collection of ACL. Each authorization request is evaluated against the ACLs in the order they are defined. For simplicity, the ACLs for a given action are not aggregated even when they have the same subjects or objects. The first ACL that matches the request determines whether that request should be permitted or not. An ACL matches iff both the subjects (e.g., clients, principals) and the objects (e.g., urls, users, roles) of the ACL match the request. If none of the ACLs match the request, the 'permissive' field determines whether the request should be permitted or not. TODO(vinod): Do aggregation of ACLs when possible.
* 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:
,* 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. This extraction can be disabled by setting `extract` to false. In addition, any environment variables are set before executing the command (so they can be used to "parameterize" your command).
Used in:
,NOTE: MesosContainerizer does currently not support this attribute and tasks supplying a 'container' will fail.
Actual command (i.e., 'echo hello world').
Enables executor and tasks to run as a specific user. If the user field is present both in FrameworkInfo and here, the CommandInfo user value takes precedence.
A health check for the command (currently in *alpha* and initial support will only be for TaskInfo's that have a CommandInfo).
Describes a container. Not all containerizers currently implement ContainerInfo, so it is possible that a launched task will fail due to supplying this attribute. NOTE: The containerizer API is currently in an early beta or even alpha state. Some details, like the exact semantics of an "image" or "options" are not yet hardened. TODO(tillt): Describe the exact scheme and semantics of "image" and "options".
Used in:
URI describing the container image name.
Describes additional options passed to the containerizer.
Used in:
* 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.
Used in:
, , , , ,* Credential used for authentication. NOTE: The 'principal' is used for authenticating the framework or slave 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.
* Describes a collection of environment variables. This is used with CommandInfo in order to set environment variables before running a command.
Used in:
Used in:
* 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:
, ,* Describes information about an executor. The 'data' field can be used to pass arbitrary bytes to an executor.
Used in:
,TODO(benh): Make this required.
Source is an identifier style string used by frameworks to track the source of an executor. This is useful when it's possible for different executor ids to be related semantically. NOTE: Source is exposed alongside the resource usage of the executor via JSON on the slave. This allows users to import usage information into a time series database for monitoring.
* Describes possible filters that can be applied to unused resources (see SchedulerDriver::launchTasks) to influence the allocator.
Time to consider unused resources refused. Note that all unused resources will be considered refused and use the default value (below) regardless of whether Filters was passed to SchedulerDriver::launchTasks. You MUST pass Filters with this field set to change this behavior (i.e., get another offer which includes unused resources sooner or later than the default).
* A unique ID assigned to a framework. A framework can reuse this ID in order to do failover (see MesosSchedulerDriver).
Used in:
, , ,* Describes a framework. The user field is used to determine the Unix user that an executor/task should be launched as. 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. The principal field should match the credential the framework uses in authentication. This field is used for framework API rate exporting and limiting and should be set even if authentication is not enabled if these features are desired.
* Describes a health check for a task or executor (or any arbitrary process/command). A "strategy" is picked by specifying one of the optional fields, currently only 'http' is supported. Specifying more than one strategy is an error.
Used in:
Amount of time to wait until starting the health checks.
Interval between health checks.
Amount of time to wait for the health check to complete.
Number of consecutive failures until considered unhealthy.
Describes an HTTP health check.
Used in:
Port to send the HTTP request.
HTTP request path.
Expected response statuses. Not specifying any statuses implies that any returned status is acceptable.
* 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.
* Describes some resources available on a slave. An offer only contains resources from a single slave.
* A unique ID assigned to an offer.
Used in:
* A generic (key, value) pair used in various places for parameters.
Used in:
* Collection of Parameter.
* 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.
* 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:
, , , , ,A snapshot of resource usage statistics.
Used in:
Snapshot time, in seconds since the Epoch.
CPU Usage Information: Total CPU time spent in user mode, and kernel mode.
Number of CPUs allocated.
cpu.stat on process throttling (for contention issues).
Memory Usage Information:
Resident Set Size.
Amount of memory resources allocated.
Broken out memory usage information (files, anonymous, and mmaped files)
* 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.
If present, this executor was
explicitly specified.
If present, the task did not have an executor.
If missing, the isolation module cannot provide resource usage.
* 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:
, , , , , ,* 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).
Deprecated!
* Status is used to indicate the state of the scheduler and executor driver after function calls.
* 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:
, ,* 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:
* 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:
Initial state. Framework status updates should not use.
TERMINAL.
TERMINAL.
TERMINAL.
TERMINAL.
* Describes the current status of a task.
Possible message explaining state.
* Describes an Attribute or Resource "value". A value is described using the standard protocol buffer "union" trick.
Used in:
Used in:
, ,Used in:
, ,Used in:
, ,Used in:
,Used in:
, ,