Added containerInfo support for tasks in mesos containerizer. Review: https://reviews.apache.org/r/39866
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/6314fec3 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/6314fec3 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/6314fec3 Branch: refs/heads/master Commit: 6314fec3700c1f63a5518f2b1cfda4442d5bdbf9 Parents: 38996a7 Author: Timothy Chen <[email protected]> Authored: Mon Nov 2 18:55:31 2015 +0000 Committer: Timothy Chen <[email protected]> Committed: Thu Nov 5 18:16:00 2015 -0800 ---------------------------------------------------------------------- src/slave/containerizer/mesos/containerizer.cpp | 35 +++++--------------- src/slave/containerizer/mesos/containerizer.hpp | 11 +----- 2 files changed, 9 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/6314fec3/src/slave/containerizer/mesos/containerizer.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp index 9fd69c1..a1c06b1 100644 --- a/src/slave/containerizer/mesos/containerizer.cpp +++ b/src/slave/containerizer/mesos/containerizer.cpp @@ -302,6 +302,7 @@ Future<bool> MesosContainerizer::launch( return dispatch(process.get(), &MesosContainerizerProcess::launch, containerId, + None(), executorInfo, directory, user, @@ -563,33 +564,6 @@ void MesosContainerizerProcess::___recover( } -Future<bool> MesosContainerizerProcess::launch( - const ContainerID& containerId, - const TaskInfo& taskInfo, - const ExecutorInfo& executorInfo, - const string& directory, - const Option<string>& user, - const SlaveID& slaveId, - const PID<Slave>& slavePid, - bool checkpoint) -{ - if (taskInfo.has_container()) { - // We return false as this containerizer does not support - // handling TaskInfo::ContainerInfo. - return false; - } - - return launch( - containerId, - executorInfo, - directory, - user, - slaveId, - slavePid, - checkpoint); -} - - // Launching an executor involves the following steps: // 1. Call prepare on each isolator. // 2. Fork the executor. The forked child is blocked from exec'ing until it has @@ -601,6 +575,7 @@ Future<bool> MesosContainerizerProcess::launch( // executor. Future<bool> MesosContainerizerProcess::launch( const ContainerID& containerId, + const Option<TaskInfo>& taskInfo, const ExecutorInfo& _executorInfo, const string& directory, const Option<string>& user, @@ -612,6 +587,12 @@ Future<bool> MesosContainerizerProcess::launch( return Failure("Container already started"); } + if (taskInfo.isSome() && + taskInfo.get().has_container() && + taskInfo.get().container().type() != ContainerInfo::MESOS) { + return false; + } + // NOTE: We make a copy of the executor info because we may mutate // it with default container info. ExecutorInfo executorInfo = _executorInfo; http://git-wip-us.apache.org/repos/asf/mesos/blob/6314fec3/src/slave/containerizer/mesos/containerizer.hpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/containerizer.hpp b/src/slave/containerizer/mesos/containerizer.hpp index 4aad8a3..3d134ca 100644 --- a/src/slave/containerizer/mesos/containerizer.hpp +++ b/src/slave/containerizer/mesos/containerizer.hpp @@ -127,16 +127,7 @@ public: virtual process::Future<bool> launch( const ContainerID& containerId, - const ExecutorInfo& executorInfo, - const std::string& directory, - const Option<std::string>& user, - const SlaveID& slaveId, - const process::PID<Slave>& slavePid, - bool checkpoint); - - virtual process::Future<bool> launch( - const ContainerID& containerId, - const TaskInfo& taskInfo, + const Option<TaskInfo>& taskInfo, const ExecutorInfo& executorInfo, const std::string& directory, const Option<std::string>& user,
