Repository: mesos
Updated Branches:
  refs/heads/master 0fbc6be02 -> ef338465c


Fixed uncorrect launcher dir in docker executor.

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


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

Branch: refs/heads/master
Commit: ef338465c3f0cec23cd489917eb1f671d550cc02
Parents: 0fbc6be
Author: haosdent huang <[email protected]>
Authored: Thu Oct 29 14:17:35 2015 +0000
Committer: Timothy Chen <[email protected]>
Committed: Thu Oct 29 14:18:33 2015 +0000

----------------------------------------------------------------------
 docs/configuration.md              |  4 +++-
 src/docker/executor.cpp            | 12 ++++++------
 src/docker/executor.hpp            |  7 +++++++
 src/slave/containerizer/docker.cpp |  1 +
 src/slave/flags.cpp                |  4 +++-
 5 files changed, 20 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/ef338465/docs/configuration.md
----------------------------------------------------------------------
diff --git a/docs/configuration.md b/docs/configuration.md
index ae9f261..e66013a 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -1210,7 +1210,9 @@ file:///path/to/file (where file contains one of the 
above)</code></pre>
       --launcher_dir=VALUE
     </td>
     <td>
-      Directory path of Mesos binaries (default: /usr/local/lib/mesos)
+      Directory path of Mesos binaries. Mesos would find health-check, fetcher,
+      containerizer and executor binary files under this directory.
+      (default: /usr/local/libexec/mesos)
     </td>
   </tr>
   <tr>

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef338465/src/docker/executor.cpp
----------------------------------------------------------------------
diff --git a/src/docker/executor.cpp b/src/docker/executor.cpp
index 1e49013..d4c05c2 100644
--- a/src/docker/executor.cpp
+++ b/src/docker/executor.cpp
@@ -559,6 +559,11 @@ int main(int argc, char** argv)
     return EXIT_FAILURE;
   }
 
+  if (flags.launcher_dir.isNone()) {
+    cerr << flags.usage("Missing required option --launcher_dir") << endl;
+    return EXIT_FAILURE;
+  }
+
   // The 2nd argument for docker create is set to false so we skip
   // validation when creating a docker abstraction, as the slave
   // should have already validated docker.
@@ -570,18 +575,13 @@ int main(int argc, char** argv)
     return EXIT_FAILURE;
   }
 
-  const Option<string> envPath = os::getenv("MESOS_LAUNCHER_DIR");
-  string path =
-    envPath.isSome() ? envPath.get()
-                     : os::realpath(Path(argv[0]).dirname()).get();
-
   mesos::internal::docker::DockerExecutor executor(
       process::Owned<Docker>(docker.get()),
       flags.container.get(),
       flags.sandbox_directory.get(),
       flags.mapped_directory.get(),
       flags.stop_timeout.get(),
-      path);
+      flags.launcher_dir.get());
 
   mesos::MesosExecutorDriver driver(&executor);
   return driver.run() == mesos::DRIVER_STOPPED ? EXIT_SUCCESS : EXIT_FAILURE;

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef338465/src/docker/executor.hpp
----------------------------------------------------------------------
diff --git a/src/docker/executor.hpp b/src/docker/executor.hpp
index 8ab4e98..99becee 100644
--- a/src/docker/executor.hpp
+++ b/src/docker/executor.hpp
@@ -58,6 +58,12 @@ struct Flags : public mesos::internal::logging::Flags
         "stop_timeout",
         "The duration for docker to wait after stopping a running container\n"
         "before it kills that container.");
+
+    add(&launcher_dir,
+        "launcher_dir",
+        "Directory path of Mesos binaries. Mesos would find health-check,\n"
+        "fetcher, containerizer and executor binary files under this\n"
+        "directory.");
   }
 
   Option<std::string> container;
@@ -66,6 +72,7 @@ struct Flags : public mesos::internal::logging::Flags
   Option<std::string> sandbox_directory;
   Option<std::string> mapped_directory;
   Option<Duration> stop_timeout;
+  Option<std::string> launcher_dir;
 };
 
 } // namespace docker {

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef338465/src/slave/containerizer/docker.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.cpp 
b/src/slave/containerizer/docker.cpp
index 276b6e0..5e5e0f9 100644
--- a/src/slave/containerizer/docker.cpp
+++ b/src/slave/containerizer/docker.cpp
@@ -180,6 +180,7 @@ docker::Flags dockerFlags(
   dockerFlags.mapped_directory = flags.sandbox_directory;
   dockerFlags.stop_timeout = flags.docker_stop_timeout;
   dockerFlags.docker_socket = flags.docker_socket;
+  dockerFlags.launcher_dir = flags.launcher_dir;
   return dockerFlags;
 }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef338465/src/slave/flags.cpp
----------------------------------------------------------------------
diff --git a/src/slave/flags.cpp b/src/slave/flags.cpp
index 1362dce..ed9b0b8 100644
--- a/src/slave/flags.cpp
+++ b/src/slave/flags.cpp
@@ -147,7 +147,9 @@ mesos::internal::slave::Flags::Flags()
 
   add(&Flags::launcher_dir, // TODO(benh): This needs a better name.
       "launcher_dir",
-      "Directory path of Mesos binaries",
+      "Directory path of Mesos binaries. Mesos would find health-check,\n"
+      "fetcher, containerizer and executor binary files under this\n"
+      "directory.",
       PKGLIBEXECDIR);
 
   add(&Flags::hadoop_home,

Reply via email to