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;
}