Updated mesos to adapt to the new Subprocess interfaces. Review: https://reviews.apache.org/r/22851
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/7f1774b8 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/7f1774b8 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/7f1774b8 Branch: refs/heads/master Commit: 7f1774b8aee8ad85f80c0d26fac1321cde3ee1cc Parents: 1b0fdf0 Author: Jie Yu <yujie....@gmail.com> Authored: Fri Jun 20 12:46:08 2014 -0700 Committer: Jie Yu <yujie....@gmail.com> Committed: Wed Jun 25 14:32:16 2014 -0700 ---------------------------------------------------------------------- src/health-check/main.cpp | 1 - src/launcher/executor.cpp | 41 +++++++++++--------- src/launcher/launcher.cpp | 1 - .../containerizer/external_containerizer.cpp | 1 - src/slave/containerizer/mesos_containerizer.cpp | 1 - src/tests/slave_tests.cpp | 1 - 6 files changed, 23 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/7f1774b8/src/health-check/main.cpp ---------------------------------------------------------------------- diff --git a/src/health-check/main.cpp b/src/health-check/main.cpp index 05e2924..707810a 100644 --- a/src/health-check/main.cpp +++ b/src/health-check/main.cpp @@ -154,7 +154,6 @@ private: Subprocess::PIPE(), Subprocess::FD(STDERR_FILENO), Subprocess::FD(STDERR_FILENO), - None(), environment); if (external.isError()) { http://git-wip-us.apache.org/repos/asf/mesos/blob/7f1774b8/src/launcher/executor.cpp ---------------------------------------------------------------------- diff --git a/src/launcher/executor.cpp b/src/launcher/executor.cpp index 9f48c88..9c80848 100644 --- a/src/launcher/executor.cpp +++ b/src/launcher/executor.cpp @@ -62,6 +62,7 @@ using std::cout; using std::cerr; using std::endl; using std::string; +using std::vector; namespace mesos { namespace internal { @@ -402,31 +403,35 @@ private: void launchHealthCheck(const TaskInfo& task) { if (task.has_health_check()) { - const HealthCheck& healthCheck = task.health_check(); - JSON::Object json = JSON::Protobuf(healthCheck); - // TODO(tnachen): Use flags when subprocess handle arguments - // with quotes. - const string& healthCommand = - path::join(healthCheckDir, "mesos-health-check") + " --executor=\"" + - stringify(self()) + "\" --health_check_json='" + stringify(json) + - "' --task_id=" + task.task_id().value(); - cout << "Launching health check process: " << healthCommand << endl; + JSON::Object json = JSON::Protobuf(task.health_check()); + + // Launch the subprocess using 'execve' style so that quotes can + // be properly handled. + vector<string> argv(4); + argv[0] = "mesos-health-check"; + argv[1] = "--executor=" + stringify(self()); + argv[2] = "--health_check_json=" + stringify(json); + argv[3] = "--task_id=" + task.task_id().value(); + + cout << "Launching health check process: " + << path::join(healthCheckDir, "mesos-health-check") + << " " << argv[1] << " " << argv[2] << " " << argv[3] << endl; + Try<Subprocess> healthProcess = process::subprocess( - healthCommand, + path::join(healthCheckDir, "mesos-health-check"), + argv, Subprocess::PIPE(), Subprocess::FD(STDOUT_FILENO), - Subprocess::FD(STDERR_FILENO), - None(), - None(), - None()); + Subprocess::FD(STDERR_FILENO)); + if (healthProcess.isError()) { cerr << "Unable to launch health process: " << healthProcess.error(); } else { - const Subprocess& health = healthProcess.get(); - healthPid = health.pid(); - cout << "Health check process launched at pid: " << stringify(healthPid) - << endl; + healthPid = healthProcess.get().pid(); + + cout << "Health check process launched at pid: " + << stringify(healthPid) << endl; } } } http://git-wip-us.apache.org/repos/asf/mesos/blob/7f1774b8/src/launcher/launcher.cpp ---------------------------------------------------------------------- diff --git a/src/launcher/launcher.cpp b/src/launcher/launcher.cpp index 872e2e8..5585aad 100644 --- a/src/launcher/launcher.cpp +++ b/src/launcher/launcher.cpp @@ -211,7 +211,6 @@ process::Future<Option<int> > Operation::launch( Subprocess::PIPE(), Subprocess::PIPE(), Subprocess::PIPE(), - None(), environment); if (s.isError()) { http://git-wip-us.apache.org/repos/asf/mesos/blob/7f1774b8/src/slave/containerizer/external_containerizer.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/external_containerizer.cpp b/src/slave/containerizer/external_containerizer.cpp index bb3e5cc..3f28d85 100644 --- a/src/slave/containerizer/external_containerizer.cpp +++ b/src/slave/containerizer/external_containerizer.cpp @@ -1117,7 +1117,6 @@ Try<Subprocess> ExternalContainerizerProcess::invoke( Subprocess::PIPE(), Subprocess::PIPE(), Subprocess::PIPE(), - None(), environment, lambda::bind(&setup, sandbox.isSome() ? sandbox.get().directory : string())); http://git-wip-us.apache.org/repos/asf/mesos/blob/7f1774b8/src/slave/containerizer/mesos_containerizer.cpp ---------------------------------------------------------------------- diff --git a/src/slave/containerizer/mesos_containerizer.cpp b/src/slave/containerizer/mesos_containerizer.cpp index 76c101c..8a109f4 100644 --- a/src/slave/containerizer/mesos_containerizer.cpp +++ b/src/slave/containerizer/mesos_containerizer.cpp @@ -666,7 +666,6 @@ Future<Nothing> MesosContainerizerProcess::fetch( Subprocess::PIPE(), Subprocess::PIPE(), Subprocess::PIPE(), - None(), environment); if (fetcher.isError()) { http://git-wip-us.apache.org/repos/asf/mesos/blob/7f1774b8/src/tests/slave_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/slave_tests.cpp b/src/tests/slave_tests.cpp index 21fe685..873f22d 100644 --- a/src/tests/slave_tests.cpp +++ b/src/tests/slave_tests.cpp @@ -351,7 +351,6 @@ TEST_F(SlaveTest, MesosExecutorWithOverride) process::Subprocess::PIPE(), process::Subprocess::PIPE(), process::Subprocess::PIPE(), - None(), environment); ASSERT_SOME(executor);