You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2015/06/25 02:28:18 UTC

[2/9] mesos git commit: Refactor executorEnvironment to take slave::Flags.

Refactor executorEnvironment to take slave::Flags.

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


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

Branch: refs/heads/master
Commit: 3f11340a4b053ad36db5762b445c3b4c1086a271
Parents: 4d37ed6
Author: Benjamin Hindman <be...@gmail.com>
Authored: Mon Jun 15 00:28:27 2015 -0700
Committer: Benjamin Hindman <be...@gmail.com>
Committed: Wed Jun 24 17:27:24 2015 -0700

----------------------------------------------------------------------
 src/slave/containerizer/containerizer.cpp       |  4 ++--
 src/slave/containerizer/containerizer.hpp       | 16 +++++++++++--
 src/slave/containerizer/docker.cpp              |  4 ++--
 src/slave/containerizer/docker.hpp              |  2 +-
 .../containerizer/external_containerizer.cpp    |  2 +-
 src/slave/containerizer/mesos/containerizer.cpp |  2 +-
 src/tests/containerizer.cpp                     | 25 ++++++++++++--------
 7 files changed, 36 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/3f11340a/src/slave/containerizer/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/containerizer.cpp b/src/slave/containerizer/containerizer.cpp
index 57343fd..ca1c3c1 100644
--- a/src/slave/containerizer/containerizer.cpp
+++ b/src/slave/containerizer/containerizer.cpp
@@ -240,7 +240,7 @@ map<string, string> executorEnvironment(
     const SlaveID& slaveId,
     const PID<Slave>& slavePid,
     bool checkpoint,
-    const Duration& recoveryTimeout)
+    const Flags& flags)
 {
   map<string, string> environment = os::environment();
 
@@ -289,7 +289,7 @@ map<string, string> executorEnvironment(
   environment["MESOS_CHECKPOINT"] = checkpoint ? "1" : "0";
 
   if (checkpoint) {
-    environment["MESOS_RECOVERY_TIMEOUT"] = stringify(recoveryTimeout);
+    environment["MESOS_RECOVERY_TIMEOUT"] = stringify(flags.recovery_timeout);
   }
 
   if (HookManager::hooksAvailable()) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3f11340a/src/slave/containerizer/containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/containerizer.hpp b/src/slave/containerizer/containerizer.hpp
index 0b67d1b..0ee17e6 100644
--- a/src/slave/containerizer/containerizer.hpp
+++ b/src/slave/containerizer/containerizer.hpp
@@ -129,14 +129,26 @@ public:
 };
 
 
-// Executor environment variables returned as (name, value) map.
+/**
+ * Returns a map of environment variables necessary in order to launch
+ * an executor.
+ *
+ * @param executorInfo ExecutorInfo being launched.
+ * @param directory Path to the sandbox directory.
+ * @param slaveId SlaveID where this executor is being launched.
+ * @param slavePid PID of the slave launching the executor.
+ * @param checkpoint Whether or not the slave is checkpointing.
+ * @param flags Flags used to launch the slave.
+ *
+ * @return Map of environment variables (name, value).
+ */
 std::map<std::string, std::string> executorEnvironment(
     const ExecutorInfo& executorInfo,
     const std::string& directory,
     const SlaveID& slaveId,
     const process::PID<Slave>& slavePid,
     bool checkpoint,
-    const Duration& recoveryTimeout);
+    const Flags& flags);
 
 } // namespace slave {
 } // namespace internal {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3f11340a/src/slave/containerizer/docker.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp
index 00db981..6eb1c84 100644
--- a/src/slave/containerizer/docker.cpp
+++ b/src/slave/containerizer/docker.cpp
@@ -302,7 +302,7 @@ DockerContainerizerProcess::Container::create(
         slaveId,
         slavePid,
         checkpoint,
-        flags.recovery_timeout);
+        flags);
     launchesExecutorContainer = true;
   }
 
@@ -875,7 +875,7 @@ Future<pid_t> DockerContainerizerProcess::launchExecutorProcess(
       container->slaveId,
       container->slavePid,
       container->checkpoint,
-      flags.recovery_timeout);
+      flags);
 
   // Include any enviroment variables from ExecutorInfo.
   foreach (const Environment::Variable& variable,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3f11340a/src/slave/containerizer/docker.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.hpp b/src/slave/containerizer/docker.hpp
index 395d535..646a277 100644
--- a/src/slave/containerizer/docker.hpp
+++ b/src/slave/containerizer/docker.hpp
@@ -332,7 +332,7 @@ private:
             slaveId,
             slavePid,
             checkpoint,
-            flags.recovery_timeout);
+            flags);
       }
     }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3f11340a/src/slave/containerizer/external_containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/external_containerizer.cpp b/src/slave/containerizer/external_containerizer.cpp
index 113dd3a..d3640e7 100644
--- a/src/slave/containerizer/external_containerizer.cpp
+++ b/src/slave/containerizer/external_containerizer.cpp
@@ -454,7 +454,7 @@ Future<bool> ExternalContainerizerProcess::launch(
       slaveId,
       slavePid,
       checkpoint,
-      flags.recovery_timeout);
+      flags);
 
   // TODO(tillt): Consider moving this into
   // Containerizer::executorEnvironment.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3f11340a/src/slave/containerizer/mesos/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp
index 0ea8ab5..313e9b7 100644
--- a/src/slave/containerizer/mesos/containerizer.cpp
+++ b/src/slave/containerizer/mesos/containerizer.cpp
@@ -698,7 +698,7 @@ Future<bool> MesosContainerizerProcess::_launch(
       slaveId,
       slavePid,
       checkpoint,
-      flags.recovery_timeout);
+      flags);
 
   // Include any enviroment variables from CommandInfo.
   foreach (const Environment::Variable& variable,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3f11340a/src/tests/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer.cpp b/src/tests/containerizer.cpp
index 68c6f98..355fb90 100644
--- a/src/tests/containerizer.cpp
+++ b/src/tests/containerizer.cpp
@@ -103,39 +103,44 @@ Future<bool> TestContainerizer::_launch(
   drivers[containerId] = driver;
 
   // Prepare additional environment variables for the executor.
-  const map<string, string>& env = executorEnvironment(
+  // TODO(benh): Need to get flags passed into the TestContainerizer
+  // in order to properly use here.
+  slave::Flags flags;
+  flags.recovery_timeout = Duration::zero();
+
+  const map<string, string> environment = executorEnvironment(
       executorInfo,
       directory,
       slaveId,
       slavePid,
       checkpoint,
-      Duration::zero());
+      flags);
 
-  foreachpair (const string& name, const string variable, env) {
+  foreachpair (const string& name, const string variable, environment) {
     os::setenv(name, variable);
   }
 
-  foreach (const Environment_Variable& variable,
-      executorInfo.command().environment().variables()) {
+  foreach (const Environment::Variable& variable,
+           executorInfo.command().environment().variables()) {
     os::setenv(variable.name(), variable.value());
   }
   os::setenv("MESOS_LOCAL", "1");
 
   driver->start();
 
-  foreachkey (const string& name, env) {
+  foreachkey (const string& name, environment) {
     os::unsetenv(name);
   }
 
-  foreach(const Environment_Variable& variable,
-      executorInfo.command().environment().variables()) {
+  foreach (const Environment::Variable& variable,
+           executorInfo.command().environment().variables()) {
     os::unsetenv(variable.name());
   }
   os::unsetenv("MESOS_LOCAL");
 
-  Owned<Promise<containerizer::Termination> > promise(
+  promises[containerId] =
+    Owned<Promise<containerizer::Termination>>(
       new Promise<containerizer::Termination>());
-  promises[containerId] = promise;
 
   return true;
 }