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,

Reply via email to