myriad-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jpgilabe...@apache.org
Subject [22/26] incubator-myriad git commit: Add compatibility with mesos v1
Date Wed, 12 Sep 2018 15:52:18 GMT
http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/16467f39/myriad-commons/proto/mesos/v1/scheduler.proto
----------------------------------------------------------------------
diff --git a/myriad-commons/proto/mesos/v1/scheduler.proto b/myriad-commons/proto/mesos/v1/scheduler.proto
deleted file mode 100644
index 1fb0254..0000000
--- a/myriad-commons/proto/mesos/v1/scheduler.proto
+++ /dev/null
@@ -1,420 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-syntax = "proto2";
-
-import "mesos/v1/mesos.proto";
-
-package mesos.v1.scheduler;
-
-option java_package = "org.apache.mesos.v1.scheduler";
-option java_outer_classname = "Protos";
-
-
-/**
- * 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 {
-  // Possible event types, followed by message definitions if
-  // applicable.
-  enum Type {
-    // This must be the first enum value in this list, to
-    // ensure that if 'type' is not set, the default value
-    // is UNKNOWN. This enables enum values to be added
-    // in a backwards-compatible way. See: MESOS-4997.
-    UNKNOWN = 0;
-
-    SUBSCRIBED = 1;             // See 'Subscribed' below.
-    OFFERS = 2;                 // See 'Offers' below.
-    INVERSE_OFFERS = 9;         // See 'InverseOffers' below.
-    RESCIND = 3;                // See 'Rescind' below.
-    RESCIND_INVERSE_OFFER = 10; // See 'RescindInverseOffer' below.
-    UPDATE = 4;                 // See 'Update' below.
-    MESSAGE = 5;                // See 'Message' below.
-    FAILURE = 6;                // See 'Failure' below.
-    ERROR = 7;                  // See 'Error' below.
-
-    // Periodic message sent by the Mesos master according to
-    // 'Subscribed.heartbeat_interval_seconds'. If the scheduler does
-    // not receive any events (including heartbeats) for an extended
-    // period of time (e.g., 5 x heartbeat_interval_seconds), there is
-    // likely a network partition. In such a case the scheduler should
-    // close the existing subscription connection and resubscribe
-    // using a backoff strategy.
-    HEARTBEAT = 8;
-  }
-
-  // First event received when the scheduler subscribes.
-  message Subscribed {
-    required FrameworkID framework_id = 1;
-
-    // This value will be set if the master is sending heartbeats. See
-    // the comment above on 'HEARTBEAT' for more details.
-    optional double heartbeat_interval_seconds = 2;
-
-    // Since Mesos 1.1.
-    optional MasterInfo master_info = 3;
-  }
-
-  // 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.
-  message Offers {
-    repeated Offer offers = 1;
-  }
-
-  // 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.
-  message InverseOffers {
-    repeated InverseOffer inverse_offers = 1;
-  }
-
-  // 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.
-  message Rescind {
-    required OfferID offer_id = 1;
-  }
-
-  // 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.
-  message RescindInverseOffer {
-    required OfferID inverse_offer_id = 1;
-  }
-
-  // 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.
-  message Update {
-    required TaskStatus status = 1;
-  }
-
-  // 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.
-  message Message {
-    required AgentID agent_id = 1;
-    required ExecutorID executor_id = 2;
-    required bytes data = 3;
-  }
-
-  // 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.
-  message Failure {
-    optional AgentID agent_id = 1;
-
-    // If this was just a failure of an executor on an agent then
-    // 'executor_id' will be set and possibly 'status' (if we were
-    // able to determine the exit status).
-    optional ExecutorID executor_id = 2;
-
-    // On Posix, `status` corresponds to termination information in the
-    // `stat_loc` area returned from a `waitpid` call. On Windows, `status`
-    // is obtained via calling the `GetExitCodeProcess()` function. For
-    // messages coming from Posix agents, schedulers need to apply
-    // `WEXITSTATUS` family macros or equivalent transformations to obtain
-    // exit codes.
-    //
-    // TODO(alexr): Consider unifying Windows and Posix behavior by returning
-    // exit code here, see MESOS-7241.
-    optional int32 status = 3;
-  }
-
-  // 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.
-  message Error {
-    required string message = 1;
-  }
-
-  // Type of the event, indicates which optional field below should be
-  // present if that type has a nested message definition.
-  // Enum fields should be optional, see: MESOS-4997.
-  optional Type type = 1;
-
-  optional Subscribed subscribed = 2;
-  optional Offers offers = 3;
-  optional InverseOffers inverse_offers = 9;
-  optional Rescind rescind = 4;
-  optional RescindInverseOffer rescind_inverse_offer = 10;
-  optional Update update = 5;
-  optional Message message = 6;
-  optional Failure failure = 7;
-  optional Error error = 8;
-}
-
-
-/**
- * Scheduler call API.
- *
- * Like Event, a Call is described using the standard protocol buffer
- * "union" trick (see above).
- */
-message Call {
-  // Possible call types, followed by message definitions if
-  // applicable.
-  enum Type {
-    // See comments above on `Event::Type` for more details on this enum value.
-    UNKNOWN = 0;
-
-    SUBSCRIBE = 1;   // See 'Subscribe' below.
-    TEARDOWN = 2;    // Shuts down all tasks/executors and removes framework.
-    ACCEPT = 3;      // See 'Accept' below.
-    DECLINE = 4;     // See 'Decline' below.
-    ACCEPT_INVERSE_OFFERS = 13;  // See 'AcceptInverseOffers' below.
-    DECLINE_INVERSE_OFFERS = 14; // See 'DeclineInverseOffers' below.
-    REVIVE = 5;      // Removes any previous filters set via ACCEPT or DECLINE.
-    KILL = 6;        // See 'Kill' below.
-    SHUTDOWN = 7;    // See 'Shutdown' below.
-    ACKNOWLEDGE = 8; // See 'Acknowledge' below.
-    RECONCILE = 9;   // See 'Reconcile' below.
-    MESSAGE = 10;    // See 'Message' below.
-    REQUEST = 11;    // See 'Request' below.
-    SUPPRESS = 12;   // Inform master to stop sending offers to the framework.
-
-    // TODO(benh): Consider adding an 'ACTIVATE' and 'DEACTIVATE' for
-    // already subscribed frameworks as a way of stopping offers from
-    // being generated and other events from being sent by the master.
-    // Note that this functionality existed originally to support
-    // SchedulerDriver::abort which was only necessary to handle
-    // exceptions getting thrown from within Scheduler callbacks,
-    // something that is not an issue with the Event/Call API.
-  }
-
-  // Subscribes the scheduler with the master to receive events. A
-  // scheduler must send other calls only after it has received the
-  // SUBCRIBED event.
-  message Subscribe {
-    // See the comments below on 'framework_id' on the semantics for
-    // 'framework_info.id'.
-    required FrameworkInfo framework_info = 1;
-
-    // List of suppressed roles for which the framework does not wish to be
-    // offered resources. The framework can decide to suppress all or a subset
-    // of roles the framework (re)registers as.
-    repeated string suppressed_roles = 2;
-  }
-
-  // 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.
-  message Accept {
-    repeated OfferID offer_ids = 1;
-    repeated Offer.Operation operations = 2;
-    optional Filters filters = 3;
-  }
-
-  // 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.
-  message Decline {
-    repeated OfferID offer_ids = 1;
-    optional Filters filters = 2;
-  }
-
-  // Accepts an inverse offer. Inverse offers should only be accepted
-  // if the resources in the offer can be safely evacuated before the
-  // provided unavailability.
-  message AcceptInverseOffers {
-    repeated OfferID inverse_offer_ids = 1;
-    optional Filters filters = 2;
-  }
-
-  // Declines an inverse offer. Inverse offers should be declined if
-  // the resources in the offer might not be safely evacuated before
-  // the provided unavailability.
-  message DeclineInverseOffers {
-    repeated OfferID inverse_offer_ids = 1;
-    optional Filters filters = 2;
-  }
-
-  // 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.
-  message Revive {
-    repeated string roles = 1;
-  }
-
-  // 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.
-  message Kill {
-    required TaskID task_id = 1;
-    optional AgentID agent_id = 2;
-
-    // If set, overrides any previously specified kill policy for this task.
-    // This includes 'TaskInfo.kill_policy' and 'Executor.kill.kill_policy'.
-    // Can be used to forcefully kill a task which is already being killed.
-    optional KillPolicy kill_policy = 3;
-  }
-
-  // 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.
-  message Shutdown {
-    required ExecutorID executor_id = 1;
-    required AgentID agent_id = 2;
-  }
-
-  // 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.
-  message Acknowledge {
-    required AgentID agent_id = 1;
-    required TaskID task_id = 2;
-    required bytes uuid = 3;
-  }
-
-  // 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.
-  message Reconcile {
-    // TODO(vinod): Support arbitrary queries than just state of tasks.
-    message Task {
-      required TaskID task_id = 1;
-      optional AgentID agent_id = 2;
-    }
-
-    repeated Task tasks = 1;
-  }
-
-  // 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.
-  message Message {
-    required AgentID agent_id = 1;
-    required ExecutorID executor_id = 2;
-    required bytes data = 3;
-  }
-
-  // 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.
-  message Request {
-    repeated mesos.v1.Request requests = 1;
-  }
-
-  // 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.
-  message Suppress {
-    repeated string roles = 1;
-  }
-
-  // Identifies who generated this call. Master assigns a framework id
-  // when a new scheduler subscribes for the first time. Once assigned,
-  // the scheduler must set the 'framework_id' here and within its
-  // FrameworkInfo (in any further 'Subscribe' calls). This allows the
-  // master to identify a scheduler correctly across disconnections,
-  // failovers, etc.
-  optional FrameworkID framework_id = 1;
-
-  // Type of the call, indicates which optional field below should be
-  // present if that type has a nested message definition.
-  // See comments on `Event::Type` above on the reasoning behind this field being optional.
-  optional Type type = 2;
-
-  optional Subscribe subscribe = 3;
-  optional Accept accept = 4;
-  optional Decline decline = 5;
-  optional AcceptInverseOffers accept_inverse_offers = 13;
-  optional DeclineInverseOffers decline_inverse_offers = 14;
-  optional Revive revive = 15;
-  optional Kill kill = 6;
-  optional Shutdown shutdown = 7;
-  optional Acknowledge acknowledge = 8;
-  optional Reconcile reconcile = 9;
-  optional Message message = 10;
-  optional Request request = 11;
-  optional Suppress suppress = 16;
-}


Mime
View raw message