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();