You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2016/01/24 06:03:21 UTC
mesos git commit: Moved ExecutorInfo and Option TaskInfo into
ContainerConfig.
Repository: mesos
Updated Branches:
refs/heads/master 9ca66cab1 -> 2c9136209
Moved ExecutorInfo and Option TaskInfo into ContainerConfig.
Review: https://reviews.apache.org/r/42690/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/2c913620
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/2c913620
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/2c913620
Branch: refs/heads/master
Commit: 2c913620934951324de74ee7bf0a7a9a43910a2d
Parents: 9ca66ca
Author: Gilbert Song <so...@gmail.com>
Authored: Sat Jan 23 19:33:43 2016 -0800
Committer: Jie Yu <yu...@gmail.com>
Committed: Sat Jan 23 21:03:03 2016 -0800
----------------------------------------------------------------------
include/mesos/slave/isolator.hpp | 1 -
include/mesos/slave/isolator.proto | 13 +++++----
src/slave/containerizer/containerizer.cpp | 1 -
src/slave/containerizer/mesos/containerizer.cpp | 16 ++++++++---
src/slave/containerizer/mesos/containerizer.hpp | 2 ++
src/slave/containerizer/mesos/isolator.cpp | 2 --
src/slave/containerizer/mesos/isolator.hpp | 2 --
.../mesos/isolators/cgroups/cpushare.cpp | 3 +--
.../mesos/isolators/cgroups/cpushare.hpp | 1 -
.../mesos/isolators/cgroups/mem.cpp | 3 +--
.../mesos/isolators/cgroups/mem.hpp | 1 -
.../mesos/isolators/cgroups/net_cls.cpp | 3 +--
.../mesos/isolators/cgroups/net_cls.hpp | 1 -
.../mesos/isolators/cgroups/perf_event.cpp | 1 -
.../mesos/isolators/cgroups/perf_event.hpp | 1 -
.../mesos/isolators/filesystem/linux.cpp | 3 ++-
.../mesos/isolators/filesystem/linux.hpp | 1 -
.../mesos/isolators/filesystem/posix.cpp | 3 ++-
.../mesos/isolators/filesystem/posix.hpp | 1 -
.../mesos/isolators/filesystem/shared.cpp | 3 ++-
.../mesos/isolators/filesystem/shared.hpp | 1 -
.../mesos/isolators/namespaces/pid.cpp | 1 -
.../mesos/isolators/namespaces/pid.hpp | 1 -
.../mesos/isolators/network/port_mapping.cpp | 3 ++-
.../mesos/isolators/network/port_mapping.hpp | 1 -
.../containerizer/mesos/isolators/posix.hpp | 1 -
.../mesos/isolators/posix/disk.cpp | 1 -
.../mesos/isolators/posix/disk.hpp | 1 -
src/tests/containerizer/isolator.hpp | 1 -
src/tests/containerizer/isolator_tests.cpp | 22 +++++++--------
.../containerizer/mesos_containerizer_tests.cpp | 8 +++---
src/tests/containerizer/port_mapping_tests.cpp | 28 ++++++++++----------
32 files changed, 61 insertions(+), 70 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/include/mesos/slave/isolator.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/slave/isolator.hpp b/include/mesos/slave/isolator.hpp
index c273d66..2ea1fb7 100644
--- a/include/mesos/slave/isolator.hpp
+++ b/include/mesos/slave/isolator.hpp
@@ -57,7 +57,6 @@ public:
// ignored; only the command value is used.
virtual process::Future<Option<ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig) = 0;
// Isolate the executor.
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/include/mesos/slave/isolator.proto
----------------------------------------------------------------------
diff --git a/include/mesos/slave/isolator.proto b/include/mesos/slave/isolator.proto
index c4b7b1f..8b7c54a 100644
--- a/include/mesos/slave/isolator.proto
+++ b/include/mesos/slave/isolator.proto
@@ -68,21 +68,24 @@ message ContainerState
* during `prepare`.
*/
message ContainerConfig {
- // The root filesystem for the container.
- optional string rootfs = 1;
+ required ExecutorInfo executorInfo = 1;
+ optional TaskInfo taskInfo = 2;
// The work directory for the container in the host filesystem.
- required string directory = 2;
+ required string directory = 3;
// The user the task will be run as.
- optional string user = 3;
+ optional string user = 4;
+
+ // The root filesystem for the container.
+ optional string rootfs = 5;
// Docker v1 image manifest.
message Docker {
optional docker.spec.v1.ImageManifest manifest = 1;
}
- optional Docker docker = 4;
+ optional Docker docker = 7;
// TODO(gilbert): Add appc image manifest.
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/containerizer.cpp b/src/slave/containerizer/containerizer.cpp
index 298acb0..fa6e279 100644
--- a/src/slave/containerizer/containerizer.cpp
+++ b/src/slave/containerizer/containerizer.cpp
@@ -355,7 +355,6 @@ map<string, string> executorEnvironment(
return environment;
}
-
} // namespace slave {
} // namespace internal {
} // namespace mesos {
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp
index 075b3ab..624cd1a 100644
--- a/src/slave/containerizer/mesos/containerizer.cpp
+++ b/src/slave/containerizer/mesos/containerizer.cpp
@@ -647,7 +647,7 @@ Future<bool> MesosContainerizerProcess::launch(
containers_.put(containerId, Owned<Container>(container));
if (!executorInfo.has_container()) {
- return prepare(containerId, executorInfo, directory, user, None())
+ return prepare(containerId, taskInfo, executorInfo, directory, user, None())
.then(defer(self(),
&Self::__launch,
containerId,
@@ -665,6 +665,7 @@ Future<bool> MesosContainerizerProcess::launch(
if (!executorInfo.container().mesos().has_image()) {
return _launch(containerId,
+ taskInfo,
executorInfo,
directory,
user,
@@ -680,6 +681,7 @@ Future<bool> MesosContainerizerProcess::launch(
.then(defer(PID<MesosContainerizerProcess>(this),
&MesosContainerizerProcess::_launch,
containerId,
+ taskInfo,
executorInfo,
directory,
user,
@@ -692,6 +694,7 @@ Future<bool> MesosContainerizerProcess::launch(
Future<bool> MesosContainerizerProcess::_launch(
const ContainerID& containerId,
+ const Option<TaskInfo>& taskInfo,
const ExecutorInfo& executorInfo,
const string& directory,
const Option<string>& user,
@@ -737,6 +740,7 @@ Future<bool> MesosContainerizerProcess::_launch(
return collect(futures)
.then([=]() -> Future<bool> {
return prepare(containerId,
+ taskInfo,
*_executorInfo,
directory,
user,
@@ -767,18 +771,18 @@ static list<Option<ContainerLaunchInfo>> accumulate(
static Future<list<Option<ContainerLaunchInfo>>> _prepare(
const Owned<Isolator>& isolator,
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig,
const list<Option<ContainerLaunchInfo>> launchInfos)
{
// Propagate any failure.
- return isolator->prepare(containerId, executorInfo, containerConfig)
+ return isolator->prepare(containerId, containerConfig)
.then(lambda::bind(&accumulate, launchInfos, lambda::_1));
}
Future<list<Option<ContainerLaunchInfo>>> MesosContainerizerProcess::prepare(
const ContainerID& containerId,
+ const Option<TaskInfo>& taskInfo,
const ExecutorInfo& executorInfo,
const string& directory,
const Option<string>& user,
@@ -789,6 +793,11 @@ Future<list<Option<ContainerLaunchInfo>>> MesosContainerizerProcess::prepare(
// Construct ContainerConfig.
ContainerConfig containerConfig;
containerConfig.set_directory(directory);
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
+
+ if (taskInfo.isSome()) {
+ containerConfig.mutable_taskinfo()->CopyFrom(taskInfo.get());
+ }
if (user.isSome()) {
containerConfig.set_user(user.get());
@@ -809,7 +818,6 @@ Future<list<Option<ContainerLaunchInfo>>> MesosContainerizerProcess::prepare(
f = f.then(lambda::bind(&_prepare,
isolator,
containerId,
- executorInfo,
containerConfig,
lambda::_1));
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.hpp b/src/slave/containerizer/mesos/containerizer.hpp
index a8177fb..811ab79 100644
--- a/src/slave/containerizer/mesos/containerizer.hpp
+++ b/src/slave/containerizer/mesos/containerizer.hpp
@@ -185,6 +185,7 @@ private:
process::Future<std::list<Option<mesos::slave::ContainerLaunchInfo>>>
prepare(const ContainerID& containerId,
+ const Option<TaskInfo>& taskInfo,
const ExecutorInfo& executorInfo,
const std::string& directory,
const Option<std::string>& user,
@@ -199,6 +200,7 @@ private:
process::Future<bool> _launch(
const ContainerID& containerId,
+ const Option<TaskInfo>& taskInfo,
const ExecutorInfo& executorInfo,
const std::string& directory,
const Option<std::string>& user,
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolator.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolator.cpp b/src/slave/containerizer/mesos/isolator.cpp
index 4de9810..6d68638 100644
--- a/src/slave/containerizer/mesos/isolator.cpp
+++ b/src/slave/containerizer/mesos/isolator.cpp
@@ -59,13 +59,11 @@ Future<Nothing> MesosIsolator::recover(
Future<Option<ContainerLaunchInfo>> MesosIsolator::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
return dispatch(process.get(),
&MesosIsolatorProcess::prepare,
containerId,
- executorInfo,
containerConfig);
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolator.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolator.hpp b/src/slave/containerizer/mesos/isolator.hpp
index 8bdccde..b3babd0 100644
--- a/src/slave/containerizer/mesos/isolator.hpp
+++ b/src/slave/containerizer/mesos/isolator.hpp
@@ -47,7 +47,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
@@ -83,7 +82,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig) = 0;
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/cgroups/cpushare.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/cpushare.cpp b/src/slave/containerizer/mesos/isolators/cgroups/cpushare.cpp
index afab0b4..57168c8 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/cpushare.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/cpushare.cpp
@@ -246,7 +246,6 @@ Future<Nothing> CgroupsCpushareIsolatorProcess::recover(
Future<Option<ContainerLaunchInfo>> CgroupsCpushareIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
if (infos.contains(containerId)) {
@@ -289,7 +288,7 @@ Future<Option<ContainerLaunchInfo>> CgroupsCpushareIsolatorProcess::prepare(
}
}
- return update(containerId, executorInfo.resources())
+ return update(containerId, containerConfig.executorinfo().resources())
.then([]() -> Future<Option<ContainerLaunchInfo>> {
return None();
});
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/cgroups/cpushare.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/cpushare.hpp b/src/slave/containerizer/mesos/isolators/cgroups/cpushare.hpp
index 9c331eb..74982a6 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/cpushare.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/cpushare.hpp
@@ -54,7 +54,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/cgroups/mem.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/mem.cpp b/src/slave/containerizer/mesos/isolators/cgroups/mem.cpp
index bc76a0b..34aa660 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/mem.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/mem.cpp
@@ -233,7 +233,6 @@ Future<Nothing> CgroupsMemIsolatorProcess::recover(
Future<Option<ContainerLaunchInfo>> CgroupsMemIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
if (infos.contains(containerId)) {
@@ -279,7 +278,7 @@ Future<Option<ContainerLaunchInfo>> CgroupsMemIsolatorProcess::prepare(
oomListen(containerId);
pressureListen(containerId);
- return update(containerId, executorInfo.resources())
+ return update(containerId, containerConfig.executorinfo().resources())
.then([]() -> Future<Option<ContainerLaunchInfo>> {
return None();
});
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/cgroups/mem.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/mem.hpp b/src/slave/containerizer/mesos/isolators/cgroups/mem.hpp
index 944544d..b3ce6ed 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/mem.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/mem.hpp
@@ -49,7 +49,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/cgroups/net_cls.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/net_cls.cpp b/src/slave/containerizer/mesos/isolators/cgroups/net_cls.cpp
index 0798de7..03a488e 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/net_cls.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/net_cls.cpp
@@ -185,7 +185,6 @@ Future<ResourceStatistics> CgroupsNetClsIsolatorProcess::usage(
Future<Option<ContainerLaunchInfo>> CgroupsNetClsIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
if (infos.contains(containerId)) {
@@ -227,7 +226,7 @@ Future<Option<ContainerLaunchInfo>> CgroupsNetClsIsolatorProcess::prepare(
infos.emplace(containerId, info);
- return update(containerId, executorInfo.resources())
+ return update(containerId, containerConfig.executorinfo().resources())
.then([]() -> Future<Option<ContainerLaunchInfo>> {
return None();
});
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/cgroups/net_cls.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/net_cls.hpp b/src/slave/containerizer/mesos/isolators/cgroups/net_cls.hpp
index 7ce5243..b4bc521 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/net_cls.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/net_cls.hpp
@@ -47,7 +47,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/cgroups/perf_event.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/perf_event.cpp b/src/slave/containerizer/mesos/isolators/cgroups/perf_event.cpp
index 5736214..5ef4ae5 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/perf_event.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/perf_event.cpp
@@ -208,7 +208,6 @@ Future<Nothing> CgroupsPerfEventIsolatorProcess::recover(
Future<Option<ContainerLaunchInfo>> CgroupsPerfEventIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
if (infos.contains(containerId)) {
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/cgroups/perf_event.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/perf_event.hpp b/src/slave/containerizer/mesos/isolators/cgroups/perf_event.hpp
index a996b10..65e7318 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/perf_event.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/perf_event.hpp
@@ -45,7 +45,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp b/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
index 96aac81..24ff819 100644
--- a/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
+++ b/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
@@ -258,7 +258,6 @@ Future<Nothing> LinuxFilesystemIsolatorProcess::recover(
Future<Option<ContainerLaunchInfo>> LinuxFilesystemIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
const string& directory = containerConfig.directory();
@@ -349,6 +348,8 @@ Future<Option<ContainerLaunchInfo>> LinuxFilesystemIsolatorProcess::prepare(
launchInfo.set_rootfs(rootfs);
}
+ const ExecutorInfo& executorInfo = containerConfig.executorinfo();
+
// Prepare the commands that will be run in the container's mount
// namespace right after forking the executor process. We use these
// commands to mount those volumes specified in the container info
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp b/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp
index 3acbd69..cb18126 100644
--- a/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp
+++ b/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp
@@ -52,7 +52,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/filesystem/posix.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/filesystem/posix.cpp b/src/slave/containerizer/mesos/isolators/filesystem/posix.cpp
index b5fede8..bce5ab9 100644
--- a/src/slave/containerizer/mesos/isolators/filesystem/posix.cpp
+++ b/src/slave/containerizer/mesos/isolators/filesystem/posix.cpp
@@ -71,13 +71,14 @@ Future<Nothing> PosixFilesystemIsolatorProcess::recover(
Future<Option<ContainerLaunchInfo>> PosixFilesystemIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
if (infos.contains(containerId)) {
return Failure("Container has already been prepared");
}
+ const ExecutorInfo& executorInfo = containerConfig.executorinfo();
+
if (executorInfo.has_container()) {
CHECK_EQ(executorInfo.container().type(), ContainerInfo::MESOS);
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp b/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp
index b36a196..c6cea98 100644
--- a/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp
+++ b/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp
@@ -40,7 +40,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp b/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
index c1b6e08..59ffd13 100644
--- a/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
+++ b/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
@@ -77,9 +77,10 @@ Future<Nothing> SharedFilesystemIsolatorProcess::recover(
Future<Option<ContainerLaunchInfo>> SharedFilesystemIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
+ const ExecutorInfo& executorInfo = containerConfig.executorinfo();
+
if (executorInfo.has_container() &&
executorInfo.container().type() != ContainerInfo::MESOS) {
return Failure("Can only prepare filesystem for a MESOS container");
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp b/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp
index c3ac448..dd0481c 100644
--- a/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp
+++ b/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp
@@ -43,7 +43,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp b/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
index fb21e6c..5970d22 100644
--- a/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
+++ b/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
@@ -154,7 +154,6 @@ Future<Nothing> NamespacesPidIsolatorProcess::recover(
Future<Option<ContainerLaunchInfo>> NamespacesPidIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
ContainerLaunchInfo launchInfo;
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp b/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp
index e20b584..c8f389d 100644
--- a/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp
+++ b/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp
@@ -60,7 +60,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
index c8e5281..d5dd93d 100644
--- a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
+++ b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
@@ -2109,7 +2109,6 @@ PortMappingIsolatorProcess::_recover(pid_t pid)
Future<Option<ContainerLaunchInfo>> PortMappingIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
if (unmanaged.contains(containerId)) {
@@ -2120,6 +2119,8 @@ Future<Option<ContainerLaunchInfo>> PortMappingIsolatorProcess::prepare(
return Failure("Container has already been prepared");
}
+ const ExecutorInfo& executorInfo = containerConfig.executorinfo();
+
Resources resources(executorInfo.resources());
IntervalSet<uint16_t> nonEphemeralPorts;
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/network/port_mapping.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/network/port_mapping.hpp b/src/slave/containerizer/mesos/isolators/network/port_mapping.hpp
index ea58c42..ebf820a 100644
--- a/src/slave/containerizer/mesos/isolators/network/port_mapping.hpp
+++ b/src/slave/containerizer/mesos/isolators/network/port_mapping.hpp
@@ -156,7 +156,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/posix.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/posix.hpp b/src/slave/containerizer/mesos/isolators/posix.hpp
index 7cdf9ed..227505a 100644
--- a/src/slave/containerizer/mesos/isolators/posix.hpp
+++ b/src/slave/containerizer/mesos/isolators/posix.hpp
@@ -63,7 +63,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig)
{
if (promises.contains(containerId)) {
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/posix/disk.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/posix/disk.cpp b/src/slave/containerizer/mesos/isolators/posix/disk.cpp
index 5d43810..23e4dcd 100644
--- a/src/slave/containerizer/mesos/isolators/posix/disk.cpp
+++ b/src/slave/containerizer/mesos/isolators/posix/disk.cpp
@@ -105,7 +105,6 @@ Future<Nothing> PosixDiskIsolatorProcess::recover(
Future<Option<ContainerLaunchInfo>> PosixDiskIsolatorProcess::prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
if (infos.contains(containerId)) {
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/slave/containerizer/mesos/isolators/posix/disk.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/posix/disk.hpp b/src/slave/containerizer/mesos/isolators/posix/disk.hpp
index e718a11..8e87432 100644
--- a/src/slave/containerizer/mesos/isolators/posix/disk.hpp
+++ b/src/slave/containerizer/mesos/isolators/posix/disk.hpp
@@ -82,7 +82,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig);
virtual process::Future<Nothing> isolate(
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/tests/containerizer/isolator.hpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/isolator.hpp b/src/tests/containerizer/isolator.hpp
index 0f9b21a..fbe80aa 100644
--- a/src/tests/containerizer/isolator.hpp
+++ b/src/tests/containerizer/isolator.hpp
@@ -45,7 +45,6 @@ public:
virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const mesos::slave::ContainerConfig& containerConfig)
{
return launchInfo;
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/tests/containerizer/isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/isolator_tests.cpp b/src/tests/containerizer/isolator_tests.cpp
index 6510553..7033ac1 100644
--- a/src/tests/containerizer/isolator_tests.cpp
+++ b/src/tests/containerizer/isolator_tests.cpp
@@ -166,11 +166,11 @@ TYPED_TEST(CpuIsolatorTest, UserCpuUsage)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
AWAIT_READY(isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig));
const string& file = path::join(dir.get(), "mesos_isolator_test_ready");
@@ -278,11 +278,11 @@ TYPED_TEST(CpuIsolatorTest, SystemCpuUsage)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
AWAIT_READY(isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig));
const string& file = path::join(dir.get(), "mesos_isolator_test_ready");
@@ -392,11 +392,11 @@ TEST_F(RevocableCpuIsolatorTest, ROOT_CGROUPS_RevocableCpu)
containerId.set_value(UUID::random().toString());
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(os::getcwd());
AWAIT_READY(isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig));
vector<string> argv{"sleep", "100"};
@@ -474,12 +474,12 @@ TEST_F(LimitedCpuIsolatorTest, ROOT_CGROUPS_CFS_Enable_Cfs)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> prepare =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(prepare);
@@ -590,12 +590,12 @@ TEST_F(LimitedCpuIsolatorTest, ROOT_CGROUPS_CFS_Big_Quota)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> prepare =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(prepare);
@@ -678,12 +678,12 @@ TEST_F(LimitedCpuIsolatorTest, ROOT_CGROUPS_Pids_and_Tids)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> prepare =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(prepare);
@@ -805,11 +805,11 @@ TYPED_TEST(MemIsolatorTest, MemUsage)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
AWAIT_READY(isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig));
MemoryTestHelper helper;
@@ -983,11 +983,11 @@ TEST_F(PerfEventIsolatorTest, ROOT_CGROUPS_Sample)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
AWAIT_READY(isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig));
// This first sample is likely to be empty because perf hasn't
@@ -1080,12 +1080,12 @@ TEST_F(SharedFilesystemIsolatorTest, DISABLED_ROOT_RelativeVolume)
containerId.set_value(UUID::random().toString());
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(flags.work_dir);
Future<Option<ContainerLaunchInfo> > prepare =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(prepare);
@@ -1187,12 +1187,12 @@ TEST_F(SharedFilesystemIsolatorTest, DISABLED_ROOT_AbsoluteVolume)
containerId.set_value(UUID::random().toString());
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(flags.work_dir);
Future<Option<ContainerLaunchInfo> > prepare =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(prepare);
@@ -1365,12 +1365,12 @@ TYPED_TEST(UserCgroupIsolatorTest, ROOT_CGROUPS_UserCgroup)
containerId.set_value(UUID::random().toString());
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(os::getcwd());
containerConfig.set_user(UNPRIVILEGED_USERNAME);
AWAIT_READY(isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig));
// Isolators don't provide a way to determine the cgroups they use
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/tests/containerizer/mesos_containerizer_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/mesos_containerizer_tests.cpp b/src/tests/containerizer/mesos_containerizer_tests.cpp
index 677fcc1..a45ed1b 100644
--- a/src/tests/containerizer/mesos_containerizer_tests.cpp
+++ b/src/tests/containerizer/mesos_containerizer_tests.cpp
@@ -515,7 +515,7 @@ public:
EXPECT_CALL(*this, cleanup(_))
.WillRepeatedly(Return(Nothing()));
- EXPECT_CALL(*this, prepare(_, _, _))
+ EXPECT_CALL(*this, prepare(_, _))
.WillRepeatedly(Invoke(this, &MockIsolator::_prepare));
}
@@ -525,16 +525,14 @@ public:
const list<ContainerState>&,
const hashset<ContainerID>&));
- MOCK_METHOD3(
+ MOCK_METHOD2(
prepare,
Future<Option<ContainerLaunchInfo>>(
const ContainerID&,
- const ExecutorInfo&,
const ContainerConfig&));
virtual Future<Option<ContainerLaunchInfo>> _prepare(
const ContainerID& containerId,
- const ExecutorInfo& executorInfo,
const ContainerConfig& containerConfig)
{
return None();
@@ -645,7 +643,7 @@ TEST_F(MesosContainerizerDestroyTest, DestroyWhilePreparing)
Promise<Option<ContainerLaunchInfo>> promise;
// Simulate a long prepare from the isolator.
- EXPECT_CALL(*isolator, prepare(_, _, _))
+ EXPECT_CALL(*isolator, prepare(_, _))
.WillOnce(DoAll(FutureSatisfy(&prepare),
Return(promise.future())));
http://git-wip-us.apache.org/repos/asf/mesos/blob/2c913620/src/tests/containerizer/port_mapping_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/port_mapping_tests.cpp b/src/tests/containerizer/port_mapping_tests.cpp
index fab16f6..182fe92 100644
--- a/src/tests/containerizer/port_mapping_tests.cpp
+++ b/src/tests/containerizer/port_mapping_tests.cpp
@@ -457,12 +457,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_NC_ContainerToContainerTCP)
ASSERT_SOME(dir1);
ContainerConfig containerConfig1;
+ containerConfig1.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig1.set_directory(dir1.get());
Future<Option<ContainerLaunchInfo>> launchInfo1 =
isolator.get()->prepare(
containerId1,
- executorInfo,
containerConfig1);
AWAIT_READY(launchInfo1);
@@ -526,12 +526,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_NC_ContainerToContainerTCP)
ASSERT_SOME(dir2);
ContainerConfig containerConfig2;
+ containerConfig2.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig2.set_directory(dir2.get());
Future<Option<ContainerLaunchInfo>> launchInfo2 =
isolator.get()->prepare(
containerId2,
- executorInfo,
containerConfig2);
AWAIT_READY(launchInfo2);
@@ -620,12 +620,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_NC_ContainerToContainerUDP)
ASSERT_SOME(dir1);
ContainerConfig containerConfig1;
+ containerConfig1.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig1.set_directory(dir1.get());
Future<Option<ContainerLaunchInfo>> launchInfo1 =
isolator.get()->prepare(
containerId1,
- executorInfo,
containerConfig1);
AWAIT_READY(launchInfo1);
@@ -689,12 +689,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_NC_ContainerToContainerUDP)
ASSERT_SOME(dir2);
ContainerConfig containerConfig2;
+ containerConfig2.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig2.set_directory(dir2.get());
Future<Option<ContainerLaunchInfo>> launchInfo2 =
isolator.get()->prepare(
containerId2,
- executorInfo,
containerConfig2);
AWAIT_READY(launchInfo2);
@@ -785,12 +785,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_NC_HostToContainerUDP)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> launchInfo =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(launchInfo);
@@ -903,12 +903,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_NC_HostToContainerTCP)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> launchInfo =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(launchInfo);
@@ -1029,12 +1029,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_ContainerICMPExternal)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> launchInfo =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(launchInfo);
@@ -1116,12 +1116,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_ContainerICMPInternal)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> launchInfo =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(launchInfo);
@@ -1206,12 +1206,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_ContainerARPExternal)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> launchInfo =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(launchInfo);
@@ -1302,12 +1302,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_DNS)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> launchInfo =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(launchInfo);
@@ -1394,12 +1394,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_TooManyContainers)
ASSERT_SOME(dir1);
ContainerConfig containerConfig1;
+ containerConfig1.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig1.set_directory(dir1.get());
Future<Option<ContainerLaunchInfo>> launchInfo1 =
isolator.get()->prepare(
containerId1,
- executorInfo,
containerConfig1);
AWAIT_READY(launchInfo1);
@@ -1447,12 +1447,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_TooManyContainers)
ASSERT_SOME(dir2);
ContainerConfig containerConfig2;
+ containerConfig2.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig2.set_directory(dir2.get());
Future<Option<ContainerLaunchInfo>> launchInfo2 =
isolator.get()->prepare(
containerId2,
- executorInfo,
containerConfig2);
AWAIT_FAILED(launchInfo2);
@@ -1513,12 +1513,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_NC_SmallEgressLimit)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> launchInfo =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(launchInfo);
@@ -1668,12 +1668,12 @@ TEST_F(PortMappingIsolatorTest, ROOT_NC_PortMappingStatistics)
ASSERT_SOME(dir);
ContainerConfig containerConfig;
+ containerConfig.mutable_executorinfo()->CopyFrom(executorInfo);
containerConfig.set_directory(dir.get());
Future<Option<ContainerLaunchInfo>> launchInfo =
isolator.get()->prepare(
containerId,
- executorInfo,
containerConfig);
AWAIT_READY(launchInfo);