You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jo...@apache.org on 2016/10/21 16:54:24 UTC

[1/2] mesos git commit: Redefined helper macros with existing 'create' functions.

Repository: mesos
Updated Branches:
  refs/heads/master f6b018502 -> b75aa8ada


Redefined helper macros with existing 'create' functions.

Review: https://reviews.apache.org/r/53077


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b75aa8ad
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b75aa8ad
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b75aa8ad

Branch: refs/heads/master
Commit: b75aa8ada2d8ce5ff98fa8d99f04e45527b5953e
Parents: 7e93d9d
Author: Joris Van Remoortere <jo...@gmail.com>
Authored: Thu Oct 20 13:37:00 2016 -0700
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Fri Oct 21 09:42:32 2016 -0700

----------------------------------------------------------------------
 src/tests/mesos.hpp | 56 ++++++++++++------------------------------------
 1 file changed, 14 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/b75aa8ad/src/tests/mesos.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mesos.hpp b/src/tests/mesos.hpp
index 08bfedb..45dba23 100644
--- a/src/tests/mesos.hpp
+++ b/src/tests/mesos.hpp
@@ -384,18 +384,6 @@ using mesos::v1::WeightInfo;
 } // namespace v1 {
 
 namespace common {
-template <typename TExecutorInfo>
-struct DefaultExecutorInfo
-{
-  static TExecutorInfo create()
-  {
-    TExecutorInfo executor;
-    executor.mutable_executor_id()->set_value("default");
-    executor.mutable_command()->set_value("exit 1");
-    return executor;
-  }
-};
-
 
 template <typename TCredential>
 struct DefaultCredential
@@ -439,56 +427,26 @@ struct DefaultFrameworkInfo
   }
 };
 
-
-template <typename TExecutorInfo, typename TExecutorID>
-struct DefaultExecutorID
-{
-  static TExecutorID create()
-  {
-    return DefaultExecutorInfo<TExecutorInfo>::create().executor_id();
-  }
-};
-
 } // namespace common {
 
 // TODO(jmlvanre): Remove `inline` once we have adjusted all tests to
 // distinguish between `internal` and `v1`.
 inline namespace internal {
-using DefaultExecutorInfo = common::DefaultExecutorInfo<ExecutorInfo>;
 using DefaultCredential = common::DefaultCredential<Credential>;
 using DefaultCredential2 = common::DefaultCredential2<Credential>;
 using DefaultFrameworkInfo =
   common::DefaultFrameworkInfo<FrameworkInfo, Credential>;
-using DefaultExecutorID = common::DefaultExecutorID<ExecutorInfo, ExecutorID>;
 }  // namespace internal {
 
 
 namespace v1 {
-using DefaultExecutorInfo =
-  common::DefaultExecutorInfo<mesos::v1::ExecutorInfo>;
 using DefaultCredential = common::DefaultCredential<mesos::v1::Credential>;
 using DefaultCredential2 = common::DefaultCredential2<mesos::v1::Credential>;
 using DefaultFrameworkInfo =
   common::DefaultFrameworkInfo<mesos::v1::FrameworkInfo, mesos::v1::Credential>;
-using DefaultExecutorID =
-  common::DefaultExecutorID<mesos::v1::ExecutorInfo, mesos::v1::ExecutorID>;
 }  // namespace v1 {
 
 
-// Macros to get/create (default) ExecutorInfos and FrameworkInfos.
-#define DEFAULT_EXECUTOR_INFO DefaultExecutorInfo::create()
-
-
-#define DEFAULT_CREDENTIAL DefaultCredential::create()
-#define DEFAULT_CREDENTIAL_2 DefaultCredential2::create()
-
-
-#define DEFAULT_FRAMEWORK_INFO DefaultFrameworkInfo::create()
-
-
-#define DEFAULT_EXECUTOR_ID DefaultExecutorID::create()
-
-
 // We factor out all common behavior and templatize it so that we can
 // can call it from both `v1::` and `internal::`.
 namespace common {
@@ -1446,6 +1404,20 @@ inline mesos::Environment createEnvironment(
 }
 
 
+// Macros to get/create (default) ExecutorInfos and FrameworkInfos.
+#define DEFAULT_EXECUTOR_INFO createExecutorInfo("default", "exit 1")
+
+
+#define DEFAULT_CREDENTIAL DefaultCredential::create()
+#define DEFAULT_CREDENTIAL_2 DefaultCredential2::create()
+
+
+#define DEFAULT_FRAMEWORK_INFO DefaultFrameworkInfo::create()
+
+
+#define DEFAULT_EXECUTOR_ID DEFAULT_EXECUTOR_INFO.executor_id()
+
+
 // Definition of a mock Scheduler to be used in tests with gmock.
 class MockScheduler : public Scheduler
 {


[2/2] mesos git commit: Alphabetized 'evolve' and 'devolve' files.

Posted by jo...@apache.org.
Alphabetized 'evolve' and 'devolve' files.

Review: https://reviews.apache.org/r/53076


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/7e93d9d1
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/7e93d9d1
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/7e93d9d1

Branch: refs/heads/master
Commit: 7e93d9d17b9f79b35b0e0c5b882a51a6e5aa1db2
Parents: f6b0185
Author: Joris Van Remoortere <jo...@gmail.com>
Authored: Thu Oct 20 13:36:28 2016 -0700
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Fri Oct 21 09:42:32 2016 -0700

----------------------------------------------------------------------
 src/internal/devolve.cpp |  58 ++++-----
 src/internal/devolve.hpp |  12 +-
 src/internal/evolve.cpp  | 266 +++++++++++++++++++++---------------------
 src/internal/evolve.hpp  |  32 ++---
 4 files changed, 184 insertions(+), 184 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/7e93d9d1/src/internal/devolve.cpp
----------------------------------------------------------------------
diff --git a/src/internal/devolve.cpp b/src/internal/devolve.cpp
index efcc5d6..a94bafa 100644
--- a/src/internal/devolve.cpp
+++ b/src/internal/devolve.cpp
@@ -48,28 +48,21 @@ static T devolve(const google::protobuf::Message& message)
 }
 
 
-SlaveID devolve(const v1::AgentID& agentId)
+CommandInfo devolve(const v1::CommandInfo& command)
 {
-  // NOTE: Not using 'devolve<v1::AgentID, SlaveID>(agentId)' since
-  // this will be a common 'devolve' call and we wanted to speed up
-  // performance.
-
-  SlaveID id;
-  id.set_value(agentId.value());
-  return id;
+  return devolve<CommandInfo>(command);
 }
 
 
-SlaveInfo devolve(const v1::AgentInfo& agentInfo)
+Credential devolve(const v1::Credential& credential)
 {
-  SlaveInfo info = devolve<SlaveInfo>(agentInfo);
+  return devolve<Credential>(credential);
+}
 
-  // We set 'checkpoint' to 'true' since the v1::AgentInfo doesn't
-  // have 'checkpoint' but all "agents" were checkpointing by default
-  // when v1::AgentInfo was introduced. See MESOS-2317.
-  info.set_checkpoint(true);
 
-  return info;
+ExecutorID devolve(const v1::ExecutorID& executorId)
+{
+  return devolve<ExecutorID>(executorId);
 }
 
 
@@ -85,15 +78,15 @@ FrameworkInfo devolve(const v1::FrameworkInfo& frameworkInfo)
 }
 
 
-ExecutorID devolve(const v1::ExecutorID& executorId)
+HealthCheck devolve(const v1::HealthCheck& check)
 {
-  return devolve<ExecutorID>(executorId);
+  return devolve<HealthCheck>(check);
 }
 
 
-HealthCheck devolve(const v1::HealthCheck& check)
+InverseOffer devolve(const v1::InverseOffer& inverseOffer)
 {
-  return devolve<HealthCheck>(check);
+  return devolve<InverseOffer>(inverseOffer);
 }
 
 
@@ -103,15 +96,28 @@ Offer devolve(const v1::Offer& offer)
 }
 
 
-InverseOffer devolve(const v1::InverseOffer& inverseOffer)
+SlaveID devolve(const v1::AgentID& agentId)
 {
-  return devolve<InverseOffer>(inverseOffer);
+  // NOTE: Not using 'devolve<v1::AgentID, SlaveID>(agentId)' since
+  // this will be a common 'devolve' call and we wanted to speed up
+  // performance.
+
+  SlaveID id;
+  id.set_value(agentId.value());
+  return id;
 }
 
 
-Credential devolve(const v1::Credential& credential)
+SlaveInfo devolve(const v1::AgentInfo& agentInfo)
 {
-  return devolve<Credential>(credential);
+  SlaveInfo info = devolve<SlaveInfo>(agentInfo);
+
+  // We set 'checkpoint' to 'true' since the v1::AgentInfo doesn't
+  // have 'checkpoint' but all "agents" were checkpointing by default
+  // when v1::AgentInfo was introduced. See MESOS-2317.
+  info.set_checkpoint(true);
+
+  return info;
 }
 
 
@@ -127,12 +133,6 @@ TaskStatus devolve(const v1::TaskStatus& status)
 }
 
 
-CommandInfo devolve(const v1::CommandInfo& command)
-{
-  return devolve<CommandInfo>(command);
-}
-
-
 executor::Call devolve(const v1::executor::Call& call)
 {
   return devolve<executor::Call>(call);

http://git-wip-us.apache.org/repos/asf/mesos/blob/7e93d9d1/src/internal/devolve.hpp
----------------------------------------------------------------------
diff --git a/src/internal/devolve.hpp b/src/internal/devolve.hpp
index 90681eb..15347e1 100644
--- a/src/internal/devolve.hpp
+++ b/src/internal/devolve.hpp
@@ -45,18 +45,18 @@ namespace mesos {
 namespace internal {
 
 // Helpers for devolving types between versions. Please add as necessary!
-SlaveID devolve(const v1::AgentID& agentId);
-SlaveInfo devolve(const v1::AgentInfo& agentInfo);
+CommandInfo devolve(const v1::CommandInfo& command);
+Credential devolve(const v1::Credential& credential);
+ExecutorID devolve(const v1::ExecutorID& executorId);
 FrameworkID devolve(const v1::FrameworkID& frameworkId);
 FrameworkInfo devolve(const v1::FrameworkInfo& frameworkInfo);
-ExecutorID devolve(const v1::ExecutorID& executorId);
 HealthCheck devolve(const v1::HealthCheck& check);
-Offer devolve(const v1::Offer& offer);
 InverseOffer devolve(const v1::InverseOffer& inverseOffer);
-Credential devolve(const v1::Credential& credential);
+Offer devolve(const v1::Offer& offer);
+SlaveID devolve(const v1::AgentID& agentId);
+SlaveInfo devolve(const v1::AgentInfo& agentInfo);
 TaskID devolve(const v1::TaskID& taskId);
 TaskStatus devolve(const v1::TaskStatus& status);
-CommandInfo devolve(const v1::CommandInfo& command);
 
 scheduler::Call devolve(const v1::scheduler::Call& call);
 scheduler::Event devolve(const v1::scheduler::Event& event);

http://git-wip-us.apache.org/repos/asf/mesos/blob/7e93d9d1/src/internal/evolve.cpp
----------------------------------------------------------------------
diff --git a/src/internal/evolve.cpp b/src/internal/evolve.cpp
index caa1938..8d5824f 100644
--- a/src/internal/evolve.cpp
+++ b/src/internal/evolve.cpp
@@ -86,106 +86,106 @@ v1::AgentInfo evolve(const SlaveInfo& slaveInfo)
 }
 
 
-v1::MachineID evolve(const MachineID& machineId)
+v1::ExecutorID evolve(const ExecutorID& executorId)
 {
-  return evolve<v1::MachineID>(machineId);
+  return evolve<v1::ExecutorID>(executorId);
 }
 
 
-v1::FrameworkID evolve(const FrameworkID& frameworkId)
+v1::ExecutorInfo evolve(const ExecutorInfo& executorInfo)
 {
-  return evolve<v1::FrameworkID>(frameworkId);
+  return evolve<v1::ExecutorInfo>(executorInfo);
 }
 
 
-v1::FrameworkInfo evolve(const FrameworkInfo& frameworkInfo)
+v1::FileInfo evolve(const FileInfo& fileInfo)
 {
-  return evolve<v1::FrameworkInfo>(frameworkInfo);
+  return evolve<v1::FileInfo>(fileInfo);
 }
 
 
-v1::KillPolicy evolve(const KillPolicy& killPolicy)
+v1::FrameworkID evolve(const FrameworkID& frameworkId)
 {
-  return evolve<v1::KillPolicy>(killPolicy);
+  return evolve<v1::FrameworkID>(frameworkId);
 }
 
 
-v1::ExecutorID evolve(const ExecutorID& executorId)
+v1::FrameworkInfo evolve(const FrameworkInfo& frameworkInfo)
 {
-  return evolve<v1::ExecutorID>(executorId);
+  return evolve<v1::FrameworkInfo>(frameworkInfo);
 }
 
 
-v1::ExecutorInfo evolve(const ExecutorInfo& executorInfo)
+v1::InverseOffer evolve(const InverseOffer& inverseOffer)
 {
-  return evolve<v1::ExecutorInfo>(executorInfo);
+  return evolve<v1::InverseOffer>(inverseOffer);
 }
 
 
-v1::Offer evolve(const Offer& offer)
+v1::KillPolicy evolve(const KillPolicy& killPolicy)
 {
-  return evolve<v1::Offer>(offer);
+  return evolve<v1::KillPolicy>(killPolicy);
 }
 
 
-v1::InverseOffer evolve(const InverseOffer& inverseOffer)
+v1::MachineID evolve(const MachineID& machineId)
 {
-  return evolve<v1::InverseOffer>(inverseOffer);
+  return evolve<v1::MachineID>(machineId);
 }
 
 
-v1::OfferID evolve(const OfferID& offerId)
+v1::MasterInfo evolve(const MasterInfo& masterInfo)
 {
-  return evolve<v1::OfferID>(offerId);
+  return evolve<v1::MasterInfo>(masterInfo);
 }
 
 
-v1::TaskID evolve(const TaskID& taskId)
+v1::Offer evolve(const Offer& offer)
 {
-  return evolve<v1::TaskID>(taskId);
+  return evolve<v1::Offer>(offer);
 }
 
 
-v1::TaskInfo evolve(const TaskInfo& taskInfo)
+v1::OfferID evolve(const OfferID& offerId)
 {
-  return evolve<v1::TaskInfo>(taskInfo);
+  return evolve<v1::OfferID>(offerId);
 }
 
 
-v1::TaskStatus evolve(const TaskStatus& status)
+v1::Resource evolve(const Resource& resource)
 {
-  return evolve<v1::TaskStatus>(status);
+  return evolve<v1::Resource>(resource);
 }
 
 
-v1::Task evolve(const Task& task)
+v1::Resources evolve(const Resources& resources)
 {
-  return evolve<v1::Task>(task);
+  return evolve<v1::Resource>(
+      static_cast<const RepeatedPtrField<Resource>&>(resources));
 }
 
 
-v1::MasterInfo evolve(const MasterInfo& masterInfo)
+v1::Task evolve(const Task& task)
 {
-  return evolve<v1::MasterInfo>(masterInfo);
+  return evolve<v1::Task>(task);
 }
 
 
-v1::FileInfo evolve(const FileInfo& fileInfo)
+v1::TaskID evolve(const TaskID& taskId)
 {
-  return evolve<v1::FileInfo>(fileInfo);
+  return evolve<v1::TaskID>(taskId);
 }
 
 
-v1::Resource evolve(const Resource& resource)
+v1::TaskInfo evolve(const TaskInfo& taskInfo)
 {
-  return evolve<v1::Resource>(resource);
+  return evolve<v1::TaskInfo>(taskInfo);
 }
 
 
-v1::Resources evolve(const Resources& resources)
+v1::TaskStatus evolve(const TaskStatus& status)
 {
-  return evolve<v1::Resource>(
-      static_cast<const RepeatedPtrField<Resource>&>(resources));
+  return evolve<v1::TaskStatus>(status);
 }
 
 
@@ -231,6 +231,46 @@ v1::scheduler::Event evolve(const scheduler::Event& event)
 }
 
 
+v1::scheduler::Event evolve(const ExitedExecutorMessage& message)
+{
+  v1::scheduler::Event event;
+  event.set_type(v1::scheduler::Event::FAILURE);
+
+  v1::scheduler::Event::Failure* failure = event.mutable_failure();
+  failure->mutable_agent_id()->CopyFrom(evolve(message.slave_id()));
+  failure->mutable_executor_id()->CopyFrom(evolve(message.executor_id()));
+  failure->set_status(message.status());
+
+  return event;
+}
+
+
+v1::scheduler::Event evolve(const ExecutorToFrameworkMessage& message)
+{
+  v1::scheduler::Event event;
+  event.set_type(v1::scheduler::Event::MESSAGE);
+
+  v1::scheduler::Event::Message* message_ = event.mutable_message();
+  message_->mutable_agent_id()->CopyFrom(evolve(message.slave_id()));
+  message_->mutable_executor_id()->CopyFrom(evolve(message.executor_id()));
+  message_->set_data(message.data());
+
+  return event;
+}
+
+
+v1::scheduler::Event evolve(const FrameworkErrorMessage& message)
+{
+  v1::scheduler::Event event;
+  event.set_type(v1::scheduler::Event::ERROR);
+
+  v1::scheduler::Event::Error* error = event.mutable_error();
+  error->set_message(message.message());
+
+  return event;
+}
+
+
 v1::scheduler::Event evolve(const FrameworkRegisteredMessage& message)
 {
   v1::scheduler::Event event;
@@ -265,18 +305,6 @@ v1::scheduler::Event evolve(const FrameworkReregisteredMessage& message)
 }
 
 
-v1::scheduler::Event evolve(const ResourceOffersMessage& message)
-{
-  v1::scheduler::Event event;
-  event.set_type(v1::scheduler::Event::OFFERS);
-
-  v1::scheduler::Event::Offers* offers = event.mutable_offers();
-  offers->mutable_offers()->CopyFrom(evolve<v1::Offer>(message.offers()));
-
-  return event;
-}
-
-
 v1::scheduler::Event evolve(const InverseOffersMessage& message)
 {
   v1::scheduler::Event event;
@@ -292,14 +320,25 @@ v1::scheduler::Event evolve(const InverseOffersMessage& message)
 }
 
 
-v1::scheduler::Event evolve(const RescindResourceOfferMessage& message)
+v1::scheduler::Event evolve(const LostSlaveMessage& message)
 {
   v1::scheduler::Event event;
-  event.set_type(v1::scheduler::Event::RESCIND);
+  event.set_type(v1::scheduler::Event::FAILURE);
 
-  v1::scheduler::Event::Rescind* rescind = event.mutable_rescind();
+  v1::scheduler::Event::Failure* failure = event.mutable_failure();
+  failure->mutable_agent_id()->CopyFrom(evolve(message.slave_id()));
+
+  return event;
+}
 
-  rescind->mutable_offer_id()->CopyFrom(evolve(message.offer_id()));
+
+v1::scheduler::Event evolve(const ResourceOffersMessage& message)
+{
+  v1::scheduler::Event event;
+  event.set_type(v1::scheduler::Event::OFFERS);
+
+  v1::scheduler::Event::Offers* offers = event.mutable_offers();
+  offers->mutable_offers()->CopyFrom(evolve<v1::Offer>(message.offers()));
 
   return event;
 }
@@ -320,6 +359,19 @@ v1::scheduler::Event evolve(const RescindInverseOfferMessage& message)
 }
 
 
+v1::scheduler::Event evolve(const RescindResourceOfferMessage& message)
+{
+  v1::scheduler::Event event;
+  event.set_type(v1::scheduler::Event::RESCIND);
+
+  v1::scheduler::Event::Rescind* rescind = event.mutable_rescind();
+
+  rescind->mutable_offer_id()->CopyFrom(evolve(message.offer_id()));
+
+  return event;
+}
+
+
 v1::scheduler::Event evolve(const StatusUpdateMessage& message)
 {
   v1::scheduler::Event event;
@@ -361,67 +413,48 @@ v1::scheduler::Event evolve(const StatusUpdateMessage& message)
 }
 
 
-v1::scheduler::Event evolve(const LostSlaveMessage& message)
+v1::executor::Call evolve(const executor::Call& call)
 {
-  v1::scheduler::Event event;
-  event.set_type(v1::scheduler::Event::FAILURE);
-
-  v1::scheduler::Event::Failure* failure = event.mutable_failure();
-  failure->mutable_agent_id()->CopyFrom(evolve(message.slave_id()));
-
-  return event;
+  return evolve<v1::executor::Call>(call);
 }
 
 
-v1::scheduler::Event evolve(const ExitedExecutorMessage& message)
+v1::executor::Event evolve(const executor::Event& event)
 {
-  v1::scheduler::Event event;
-  event.set_type(v1::scheduler::Event::FAILURE);
-
-  v1::scheduler::Event::Failure* failure = event.mutable_failure();
-  failure->mutable_agent_id()->CopyFrom(evolve(message.slave_id()));
-  failure->mutable_executor_id()->CopyFrom(evolve(message.executor_id()));
-  failure->set_status(message.status());
-
-  return event;
+  return evolve<v1::executor::Event>(event);
 }
 
 
-v1::scheduler::Event evolve(const ExecutorToFrameworkMessage& message)
+v1::executor::Event evolve(const ExecutorRegisteredMessage& message)
 {
-  v1::scheduler::Event event;
-  event.set_type(v1::scheduler::Event::MESSAGE);
-
-  v1::scheduler::Event::Message* message_ = event.mutable_message();
-  message_->mutable_agent_id()->CopyFrom(evolve(message.slave_id()));
-  message_->mutable_executor_id()->CopyFrom(evolve(message.executor_id()));
-  message_->set_data(message.data());
+  v1::executor::Event event;
+  event.set_type(v1::executor::Event::SUBSCRIBED);
 
-  return event;
-}
+  v1::executor::Event::Subscribed* subscribed = event.mutable_subscribed();
 
+  subscribed->mutable_executor_info()->
+    CopyFrom(evolve(message.executor_info()));
 
-v1::scheduler::Event evolve(const FrameworkErrorMessage& message)
-{
-  v1::scheduler::Event event;
-  event.set_type(v1::scheduler::Event::ERROR);
+  subscribed->mutable_framework_info()->
+    CopyFrom(evolve(message.framework_info()));
 
-  v1::scheduler::Event::Error* error = event.mutable_error();
-  error->set_message(message.message());
+  subscribed->mutable_agent_info()->
+    CopyFrom(evolve(message.slave_info()));
 
   return event;
 }
 
 
-v1::executor::Call evolve(const executor::Call& call)
+v1::executor::Event evolve(const FrameworkToExecutorMessage& message)
 {
-  return evolve<v1::executor::Call>(call);
-}
+  v1::executor::Event event;
+  event.set_type(v1::executor::Event::MESSAGE);
 
+  v1::executor::Event::Message* message_ = event.mutable_message();
 
-v1::executor::Event evolve(const executor::Event& event)
-{
-  return evolve<v1::executor::Event>(event);
+  message_->set_data(message.data());
+
+  return event;
 }
 
 
@@ -455,59 +488,26 @@ v1::executor::Event evolve(const RunTaskMessage& message)
 }
 
 
-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 evolve(const ShutdownExecutorMessage&)
 {
   v1::executor::Event event;
-  event.set_type(v1::executor::Event::MESSAGE);
-
-  v1::executor::Event::Message* message_ = event.mutable_message();
-
-  message_->set_data(message.data());
+  event.set_type(v1::executor::Event::SHUTDOWN);
 
   return event;
 }
 
 
-v1::executor::Event evolve(const ExecutorRegisteredMessage& message)
+v1::executor::Event evolve(
+    const StatusUpdateAcknowledgementMessage& 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;
-}
+  event.set_type(v1::executor::Event::ACKNOWLEDGED);
 
+  v1::executor::Event::Acknowledged* acknowledged =
+    event.mutable_acknowledged();
 
-v1::executor::Event evolve(const ShutdownExecutorMessage&)
-{
-  v1::executor::Event event;
-  event.set_type(v1::executor::Event::SHUTDOWN);
+  acknowledged->mutable_task_id()->CopyFrom(evolve(message.task_id()));
+  acknowledged->set_uuid(message.uuid());
 
   return event;
 }

http://git-wip-us.apache.org/repos/asf/mesos/blob/7e93d9d1/src/internal/evolve.hpp
----------------------------------------------------------------------
diff --git a/src/internal/evolve.hpp b/src/internal/evolve.hpp
index 128cff3..e8b03c9 100644
--- a/src/internal/evolve.hpp
+++ b/src/internal/evolve.hpp
@@ -57,23 +57,23 @@ namespace internal {
 // Helpers for evolving types between versions. Please add as necessary!
 v1::AgentID evolve(const SlaveID& slaveId);
 v1::AgentInfo evolve(const SlaveInfo& slaveInfo);
-v1::MachineID evolve(const MachineID& machineId);
+v1::ExecutorID evolve(const ExecutorID& executorId);
+v1::ExecutorInfo evolve(const ExecutorInfo& executorInfo);
+v1::FileInfo evolve(const FileInfo& fileInfo);
 v1::FrameworkID evolve(const FrameworkID& frameworkId);
 v1::FrameworkInfo evolve(const FrameworkInfo& frameworkInfo);
+v1::InverseOffer evolve(const InverseOffer& inverseOffer);
 v1::KillPolicy evolve(const KillPolicy& killPolicy);
-v1::ExecutorID evolve(const ExecutorID& executorId);
-v1::ExecutorInfo evolve(const ExecutorInfo& executorInfo);
+v1::MachineID evolve(const MachineID& machineId);
+v1::MasterInfo evolve(const MasterInfo& masterInfo);
 v1::Offer evolve(const Offer& offer);
-v1::InverseOffer evolve(const InverseOffer& inverseOffer);
 v1::OfferID evolve(const OfferID& offerId);
+v1::Resource evolve(const Resource& resource);
+v1::Resources evolve(const Resources& resources);
+v1::Task evolve(const Task& task);
 v1::TaskID evolve(const TaskID& taskId);
 v1::TaskInfo evolve(const TaskInfo& taskInfo);
 v1::TaskStatus evolve(const TaskStatus& status);
-v1::Task evolve(const Task& task);
-v1::MasterInfo evolve(const MasterInfo& masterInfo);
-v1::FileInfo evolve(const FileInfo& fileInfo);
-v1::Resource evolve(const Resource& resource);
-v1::Resources evolve(const Resources& resources);
 
 v1::agent::Call evolve(const mesos::agent::Call& call);
 v1::agent::Response evolve(const mesos::agent::Response& response);
@@ -107,17 +107,17 @@ v1::scheduler::Event evolve(const scheduler::Event& event);
 
 // Helper functions that evolve old style internal messages to a
 // v1::scheduler::Event.
+v1::scheduler::Event evolve(const ExitedExecutorMessage& message);
+v1::scheduler::Event evolve(const ExecutorToFrameworkMessage& message);
+v1::scheduler::Event evolve(const FrameworkErrorMessage& message);
 v1::scheduler::Event evolve(const FrameworkRegisteredMessage& message);
 v1::scheduler::Event evolve(const FrameworkReregisteredMessage& message);
-v1::scheduler::Event evolve(const ResourceOffersMessage& message);
 v1::scheduler::Event evolve(const InverseOffersMessage& message);
-v1::scheduler::Event evolve(const RescindResourceOfferMessage& message);
+v1::scheduler::Event evolve(const LostSlaveMessage& message);
+v1::scheduler::Event evolve(const ResourceOffersMessage& message);
 v1::scheduler::Event evolve(const RescindInverseOfferMessage& message);
+v1::scheduler::Event evolve(const RescindResourceOfferMessage& message);
 v1::scheduler::Event evolve(const StatusUpdateMessage& message);
-v1::scheduler::Event evolve(const LostSlaveMessage& message);
-v1::scheduler::Event evolve(const ExitedExecutorMessage& message);
-v1::scheduler::Event evolve(const ExecutorToFrameworkMessage& message);
-v1::scheduler::Event evolve(const FrameworkErrorMessage& message);
 
 v1::executor::Call evolve(const executor::Call& call);
 v1::executor::Event evolve(const executor::Event& event);
@@ -129,8 +129,8 @@ 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);
+v1::executor::Event evolve(const StatusUpdateAcknowledgementMessage& message);
 
 
 v1::master::Event evolve(const mesos::master::Event& event);