Repository: mesos Updated Branches: refs/heads/master 4bc8eeedd -> 5058fac10
Added evolve functions for executor events. This change implements helper functions for evolving old style executor messages in src/messages/messages.proto to V1 executor events defined in include/mesos/v1/executor/executor.proto. This is needed for MESOS-3480. Review: https://reviews.apache.org/r/38873 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/5058fac1 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/5058fac1 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/5058fac1 Branch: refs/heads/master Commit: 5058fac1083dc91bca54d33c26c810c17ad95dd1 Parents: 4bc8eee Author: Anand Mazumdar <[email protected]> Authored: Tue Oct 6 17:37:41 2015 -0700 Committer: Benjamin Mahler <[email protected]> Committed: Tue Oct 6 17:41:40 2015 -0700 ---------------------------------------------------------------------- src/internal/evolve.cpp | 108 +++++++++++++++++++++++++++++++++++++++++++ src/internal/evolve.hpp | 20 ++++++++ 2 files changed, 128 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/5058fac1/src/internal/evolve.cpp ---------------------------------------------------------------------- diff --git a/src/internal/evolve.cpp b/src/internal/evolve.cpp index 625706e..ed3ea27 100644 --- a/src/internal/evolve.cpp +++ b/src/internal/evolve.cpp @@ -80,12 +80,24 @@ v1::FrameworkID evolve(const FrameworkID& frameworkId) } +v1::FrameworkInfo evolve(const FrameworkInfo& frameworkInfo) +{ + return evolve<v1::FrameworkInfo>(frameworkInfo); +} + + v1::ExecutorID evolve(const ExecutorID& executorId) { return evolve<v1::ExecutorID>(executorId); } +v1::ExecutorInfo evolve(const ExecutorInfo& executorInfo) +{ + return evolve<v1::ExecutorInfo>(executorInfo); +} + + v1::Offer evolve(const Offer& offer) { return evolve<v1::Offer>(offer); @@ -104,6 +116,12 @@ v1::OfferID evolve(const OfferID& offerId) } +v1::TaskID evolve(const TaskID& taskId) +{ + return evolve<v1::TaskID>(taskId); +} + + v1::TaskInfo evolve(const TaskInfo& taskInfo) { return evolve<v1::TaskInfo>(taskInfo); @@ -270,5 +288,95 @@ v1::scheduler::Event evolve(const FrameworkErrorMessage& message) return event; } + +v1::executor::Event evolve(const mesos::executor::Event& event) +{ + return evolve<v1::executor::Event>(event); +} + + +v1::executor::Event evolve(const KillTaskMessage& message) +{ + v1::executor::Event event; + event.set_type(v1::executor::Event::KILL); + + v1::executor::Event::Kill* kill = event.mutable_kill(); + + kill->mutable_task_id()->CopyFrom(evolve(message.task_id())); + + return event; +} + + +v1::executor::Event evolve(const RunTaskMessage& message) +{ + v1::executor::Event event; + event.set_type(v1::executor::Event::LAUNCH); + + v1::executor::Event::Launch* launch = event.mutable_launch(); + + launch->mutable_task()->CopyFrom(evolve(message.task())); + + return event; +} + + +v1::executor::Event evolve( + const StatusUpdateAcknowledgementMessage& message) +{ + v1::executor::Event event; + event.set_type(v1::executor::Event::ACKNOWLEDGED); + + v1::executor::Event::Acknowledged* acknowledged = + event.mutable_acknowledged(); + + acknowledged->mutable_task_id()->CopyFrom(evolve(message.task_id())); + acknowledged->set_uuid(message.uuid()); + + return event; +} + + +v1::executor::Event evolve(const FrameworkToExecutorMessage& message) +{ + v1::executor::Event event; + event.set_type(v1::executor::Event::MESSAGE); + + v1::executor::Event::Message* message_ = event.mutable_message(); + + message_->set_data(message.data()); + + return event; +} + + +v1::executor::Event evolve(const ExecutorRegisteredMessage& message) +{ + v1::executor::Event event; + event.set_type(v1::executor::Event::SUBSCRIBED); + + v1::executor::Event::Subscribed* subscribed = event.mutable_subscribed(); + + subscribed->mutable_executor_info()-> + CopyFrom(evolve(message.executor_info())); + + subscribed->mutable_framework_info()-> + CopyFrom(evolve(message.framework_info())); + + subscribed->mutable_agent_info()-> + CopyFrom(evolve(message.slave_info())); + + return event; +} + + +v1::executor::Event evolve(const ShutdownExecutorMessage&) +{ + v1::executor::Event event; + event.set_type(v1::executor::Event::SHUTDOWN); + + return event; +} + } // namespace internal { } // namespace mesos { http://git-wip-us.apache.org/repos/asf/mesos/blob/5058fac1/src/internal/evolve.hpp ---------------------------------------------------------------------- diff --git a/src/internal/evolve.hpp b/src/internal/evolve.hpp index 9babac3..f2276b9 100644 --- a/src/internal/evolve.hpp +++ b/src/internal/evolve.hpp @@ -23,10 +23,14 @@ #include <mesos/mesos.hpp> +#include <mesos/executor/executor.hpp> + #include <mesos/scheduler/scheduler.hpp> #include <mesos/v1/mesos.hpp> +#include <mesos/v1/executor/executor.hpp> + #include <mesos/v1/scheduler/scheduler.hpp> #include <stout/foreach.hpp> @@ -40,10 +44,13 @@ namespace internal { v1::AgentID evolve(const SlaveID& slaveId); v1::AgentInfo evolve(const SlaveInfo& slaveInfo); v1::FrameworkID evolve(const FrameworkID& frameworkId); +v1::FrameworkInfo evolve(const FrameworkInfo& frameworkInfo); v1::ExecutorID evolve(const ExecutorID& executorId); +v1::ExecutorInfo evolve(const ExecutorInfo& executorInfo); v1::Offer evolve(const Offer& offer); v1::InverseOffer evolve(const InverseOffer& inverseOffer); v1::OfferID evolve(const OfferID& offerId); +v1::TaskID evolve(const TaskID& taskId); v1::TaskInfo evolve(const TaskInfo& taskInfo); v1::TaskStatus evolve(const TaskStatus& status); @@ -80,6 +87,19 @@ v1::scheduler::Event evolve(const ExitedExecutorMessage& message); v1::scheduler::Event evolve(const ExecutorToFrameworkMessage& message); v1::scheduler::Event evolve(const FrameworkErrorMessage& message); + +v1::executor::Event evolve(const mesos::executor::Event& event); + + +// Helper functions that evolve old style internal messages to a +// v1::Executor::Event. +v1::executor::Event evolve(const ExecutorRegisteredMessage& message); +v1::executor::Event evolve(const FrameworkToExecutorMessage& message); +v1::executor::Event evolve(const KillTaskMessage& message); +v1::executor::Event evolve(const RunTaskMessage& message); +v1::executor::Event evolve(const StatusUpdateAcknowledgementMessage& message); +v1::executor::Event evolve(const ShutdownExecutorMessage& message); + } // namespace internal { } // namespace mesos {
