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,
