Update process::subprocess callees per new semantics. Review: https://reviews.apache.org/r/35564
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/a6483ee5 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/a6483ee5 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/a6483ee5 Branch: refs/heads/master Commit: a6483ee5676cdf33ea20300bd821df0042e95735 Parents: 4b39a66 Author: Benjamin Hindman <[email protected]> Authored: Sun Jun 14 11:55:57 2015 -0700 Committer: Benjamin Hindman <[email protected]> Committed: Wed Jun 24 17:27:24 2015 -0700 ---------------------------------------------------------------------- src/docker/docker.cpp | 4 +-- src/health-check/main.cpp | 7 +++-- src/slave/containerizer/containerizer.cpp | 29 ++++++++++---------- .../containerizer/external_containerizer.cpp | 3 +- src/slave/containerizer/fetcher.cpp | 2 +- src/slave/containerizer/mesos/containerizer.cpp | 6 ++-- src/tests/slave_tests.cpp | 2 +- 7 files changed, 28 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/a6483ee5/src/docker/docker.cpp ---------------------------------------------------------------------- diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp index 4e13003..62aac27 100644 --- a/src/docker/docker.cpp +++ b/src/docker/docker.cpp @@ -503,7 +503,7 @@ Future<Nothing> Docker::run( VLOG(1) << "Running " << cmd; - map<string, string> environment; + map<string, string> environment = os::environment(); // Currently the Docker CLI picks up dockerconfig by looking for // the config file in the $HOME directory. If one of the URIs @@ -956,7 +956,7 @@ Future<Docker::Image> Docker::__pull( VLOG(1) << "Running " << cmd; // Set HOME variable to pick up .dockercfg. - map<string, string> environment; + map<string, string> environment = os::environment(); environment["HOME"] = directory; http://git-wip-us.apache.org/repos/asf/mesos/blob/a6483ee5/src/health-check/main.cpp ---------------------------------------------------------------------- diff --git a/src/health-check/main.cpp b/src/health-check/main.cpp index 857764a..97b2571 100644 --- a/src/health-check/main.cpp +++ b/src/health-check/main.cpp @@ -152,14 +152,15 @@ private: const CommandInfo& command = check.command(); - map<string, string> environment; - foreach (const Environment_Variable& variable, + map<string, string> environment = os::environment(); + + foreach (const Environment::Variable& variable, command.environment().variables()) { environment[variable.name()] = variable.value(); } // Launch the subprocess. - Option<Try<Subprocess> > external; + Option<Try<Subprocess>> external = None(); if (command.shell()) { // Use the shell variant. http://git-wip-us.apache.org/repos/asf/mesos/blob/a6483ee5/src/slave/containerizer/containerizer.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/containerizer.cpp b/src/slave/containerizer/containerizer.cpp index c5ffc49..57343fd 100644 --- a/src/slave/containerizer/containerizer.cpp +++ b/src/slave/containerizer/containerizer.cpp @@ -242,11 +242,12 @@ map<string, string> executorEnvironment( bool checkpoint, const Duration& recoveryTimeout) { - map<string, string> env; + map<string, string> environment = os::environment(); + // Set LIBPROCESS_PORT so that we bind to a random free port (since // this might have been set via --port option). We do this before // the environment variables below in case it is included. - env["LIBPROCESS_PORT"] = "0"; + environment["LIBPROCESS_PORT"] = "0"; // Also add MESOS_NATIVE_JAVA_LIBRARY if it's not already present (and // like above, we do this before the environment variables below in @@ -261,7 +262,7 @@ map<string, string> executorEnvironment( LIBDIR "/libmesos-" VERSION ".so"; #endif if (os::exists(path)) { - env["MESOS_NATIVE_JAVA_LIBRARY"] = path; + environment["MESOS_NATIVE_JAVA_LIBRARY"] = path; } } @@ -276,19 +277,19 @@ map<string, string> executorEnvironment( LIBDIR "/libmesos-" VERSION ".so"; #endif if (os::exists(path)) { - env["MESOS_NATIVE_LIBRARY"] = path; + environment["MESOS_NATIVE_LIBRARY"] = path; } } - env["MESOS_FRAMEWORK_ID"] = executorInfo.framework_id().value(); - env["MESOS_EXECUTOR_ID"] = executorInfo.executor_id().value(); - env["MESOS_DIRECTORY"] = directory; - env["MESOS_SLAVE_ID"] = slaveId.value(); - env["MESOS_SLAVE_PID"] = stringify(slavePid); - env["MESOS_CHECKPOINT"] = checkpoint ? "1" : "0"; + environment["MESOS_FRAMEWORK_ID"] = executorInfo.framework_id().value(); + environment["MESOS_EXECUTOR_ID"] = executorInfo.executor_id().value(); + environment["MESOS_DIRECTORY"] = directory; + environment["MESOS_SLAVE_ID"] = slaveId.value(); + environment["MESOS_SLAVE_PID"] = stringify(slavePid); + environment["MESOS_CHECKPOINT"] = checkpoint ? "1" : "0"; if (checkpoint) { - env["MESOS_RECOVERY_TIMEOUT"] = stringify(recoveryTimeout); + environment["MESOS_RECOVERY_TIMEOUT"] = stringify(recoveryTimeout); } if (HookManager::hooksAvailable()) { @@ -302,15 +303,15 @@ map<string, string> executorEnvironment( // TODO(karya): Provide a mechanism to pass the new environment // variables created above (MESOS_*) on to the hook modules. const Environment& hooksEnvironment = - HookManager::slaveExecutorEnvironmentDecorator(executorInfo); + HookManager::slaveExecutorEnvironmentDecorator(executorInfo); foreach (const Environment::Variable& variable, hooksEnvironment.variables()) { - env[variable.name()] = variable.value(); + environment[variable.name()] = variable.value(); } } - return env; + return environment; } http://git-wip-us.apache.org/repos/asf/mesos/blob/a6483ee5/src/slave/containerizer/external_containerizer.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/external_containerizer.cpp b/src/slave/containerizer/external_containerizer.cpp index 33fc010..113dd3a 100644 --- a/src/slave/containerizer/external_containerizer.cpp +++ b/src/slave/containerizer/external_containerizer.cpp @@ -1094,7 +1094,8 @@ Try<Subprocess> ExternalContainerizerProcess::invoke( VLOG(1) << "Invoking external containerizer for method '" << command << "'"; // Prepare a default environment. - map<string, string> environment; + map<string, string> environment = os::environment(); + environment["MESOS_LIBEXEC_DIRECTORY"] = flags.launcher_dir; environment["MESOS_WORK_DIRECTORY"] = flags.work_dir; http://git-wip-us.apache.org/repos/asf/mesos/blob/a6483ee5/src/slave/containerizer/fetcher.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/fetcher.cpp b/src/slave/containerizer/fetcher.cpp index 6bafa33..e030dea 100644 --- a/src/slave/containerizer/fetcher.cpp +++ b/src/slave/containerizer/fetcher.cpp @@ -745,7 +745,7 @@ Future<Nothing> FetcherProcess::run( // We pass arguments to the fetcher program by means of an // environment variable. - map<string, string> environment; + map<string, string> environment = os::environment(); environment["MESOS_FETCHER_INFO"] = stringify(JSON::Protobuf(info)); http://git-wip-us.apache.org/repos/asf/mesos/blob/a6483ee5/src/slave/containerizer/mesos/containerizer.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos/containerizer.cpp b/src/slave/containerizer/mesos/containerizer.cpp index 7e3d4ba..0ea8ab5 100644 --- a/src/slave/containerizer/mesos/containerizer.cpp +++ b/src/slave/containerizer/mesos/containerizer.cpp @@ -692,7 +692,7 @@ Future<bool> MesosContainerizerProcess::_launch( } // Prepare environment variables for the executor. - map<string, string> env = executorEnvironment( + map<string, string> environment = executorEnvironment( executorInfo, directory, slaveId, @@ -703,7 +703,7 @@ Future<bool> MesosContainerizerProcess::_launch( // Include any enviroment variables from CommandInfo. foreach (const Environment::Variable& variable, executorInfo.command().environment().variables()) { - env[variable.name()] = variable.value(); + environment[variable.name()] = variable.value(); } // Use a pipe to block the child until it's been isolated. @@ -750,7 +750,7 @@ Future<bool> MesosContainerizerProcess::_launch( (local ? Subprocess::FD(STDERR_FILENO) : Subprocess::PATH(path::join(directory, "stderr"))), launchFlags, - env, + environment, None()); if (forked.isError()) { http://git-wip-us.apache.org/repos/asf/mesos/blob/a6483ee5/src/tests/slave_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/slave_tests.cpp b/src/tests/slave_tests.cpp index 027da84..8bb5a97 100644 --- a/src/tests/slave_tests.cpp +++ b/src/tests/slave_tests.cpp @@ -383,7 +383,7 @@ TEST_F(SlaveTest, CommandExecutorWithOverride) AWAIT_READY(launch); // Set up fake environment for executor. - map<string, string> environment; + map<string, string> environment = os::environment(); environment["MESOS_SLAVE_PID"] = stringify(slave.get()); environment["MESOS_SLAVE_ID"] = stringify(offers.get()[0].slave_id()); environment["MESOS_FRAMEWORK_ID"] = stringify(offers.get()[0].framework_id());
