You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by an...@apache.org on 2016/09/27 04:21:12 UTC

[06/11] mesos git commit: Added `ContainerID` field to the executor `SUBSCRIBED` event.

Added `ContainerID` field to the executor `SUBSCRIBED` event.

This change adds the field `ContainerID` to the executor `SUBSCRIBED`
event. This allows the default executor/other custom executors to
then launch nested containers. This is needed as the executors need
to let the agent know of the parent container ID when they make the
`LAUNCH_NESTED_CONTAINER` call. This change also implements the
logic on the agent to send the event to the executor.

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


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

Branch: refs/heads/master
Commit: 4802a017259b16f23660d190e5cdf4c619109313
Parents: 0451bda
Author: Anand Mazumdar <an...@apache.org>
Authored: Mon Sep 26 21:13:46 2016 -0700
Committer: Anand Mazumdar <an...@apache.org>
Committed: Mon Sep 26 21:20:39 2016 -0700

----------------------------------------------------------------------
 include/mesos/executor/executor.proto    |  3 +++
 include/mesos/v1/executor/executor.proto |  3 +++
 src/slave/slave.cpp                      | 17 ++++++++++-------
 src/tests/executor_http_api_tests.cpp    |  1 +
 4 files changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/4802a017/include/mesos/executor/executor.proto
----------------------------------------------------------------------
diff --git a/include/mesos/executor/executor.proto b/include/mesos/executor/executor.proto
index 0d31406..e746608 100644
--- a/include/mesos/executor/executor.proto
+++ b/include/mesos/executor/executor.proto
@@ -72,6 +72,9 @@ message Event {
     required ExecutorInfo executor_info = 1;
     required FrameworkInfo framework_info = 2;
     required SlaveInfo slave_info = 3;
+
+    // Uniquely identifies the container of an executor run.
+    optional ContainerID container_id = 4;
   }
 
   // Received when the framework attempts to launch a task. Once

http://git-wip-us.apache.org/repos/asf/mesos/blob/4802a017/include/mesos/v1/executor/executor.proto
----------------------------------------------------------------------
diff --git a/include/mesos/v1/executor/executor.proto b/include/mesos/v1/executor/executor.proto
index f661b71..754e62a 100644
--- a/include/mesos/v1/executor/executor.proto
+++ b/include/mesos/v1/executor/executor.proto
@@ -72,6 +72,9 @@ message Event {
     required ExecutorInfo executor_info = 1;
     required FrameworkInfo framework_info = 2;
     required AgentInfo agent_info = 3;
+
+    // Uniquely identifies the container of an executor run.
+    optional ContainerID container_id = 4;
   }
 
   // Received when the framework attempts to launch a task. Once

http://git-wip-us.apache.org/repos/asf/mesos/blob/4802a017/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index fdcc6d9..7073be4 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -3084,13 +3084,16 @@ void Slave::subscribe(
 
       // Tell executor it's registered and give it any queued tasks
       // or task groups.
-      ExecutorRegisteredMessage message;
-      message.mutable_executor_info()->MergeFrom(executor->info);
-      message.mutable_framework_id()->MergeFrom(framework->id());
-      message.mutable_framework_info()->MergeFrom(framework->info);
-      message.mutable_slave_id()->MergeFrom(info.id());
-      message.mutable_slave_info()->MergeFrom(info);
-      executor->send(message);
+      executor::Event event;
+      event.set_type(executor::Event::SUBSCRIBED);
+
+      executor::Event::Subscribed* subscribed = event.mutable_subscribed();
+      subscribed->mutable_executor_info()->CopyFrom(executor->info);
+      subscribed->mutable_framework_info()->MergeFrom(framework->info);
+      subscribed->mutable_slave_info()->CopyFrom(info);
+      subscribed->mutable_container_id()->CopyFrom(executor->containerId);
+
+      executor->send(event);
 
       // Handle all the pending updates.
       // The status update manager might have already checkpointed some

http://git-wip-us.apache.org/repos/asf/mesos/blob/4802a017/src/tests/executor_http_api_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/executor_http_api_tests.cpp b/src/tests/executor_http_api_tests.cpp
index fd322ee..14a907f 100644
--- a/src/tests/executor_http_api_tests.cpp
+++ b/src/tests/executor_http_api_tests.cpp
@@ -796,6 +796,7 @@ TEST_P(ExecutorHttpApiTest, Subscribe)
   ASSERT_EQ(Event::SUBSCRIBED, event.get().get().type());
   ASSERT_EQ(event.get().get().subscribed().executor_info().executor_id(),
             call.executor_id());
+  ASSERT_TRUE(event.get().get().subscribed().has_container_id());
 
   reader.get().close();