You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2014/06/25 23:37:44 UTC

[2/7] git commit: Updated mesos to adapt to the new Subprocess interfaces.

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 <yu...@gmail.com>
Authored: Fri Jun 20 12:46:08 2014 -0700
Committer: Jie Yu <yu...@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);