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 {
 

Reply via email to