You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by tn...@apache.org on 2015/06/04 20:11:42 UTC
[2/3] mesos git commit: Updated callers of os::getenv() and removed
calls to os::hasenv().
Updated callers of os::getenv() and removed calls to os::hasenv().
Review: https://reviews.apache.org/r/34317
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/dc216463
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/dc216463
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/dc216463
Branch: refs/heads/master
Commit: dc2164631ba4dd4e104370a1cb1ca3812cba1d99
Parents: 2a74bcb
Author: Greg Mann <Gr...@gmail.com>
Authored: Thu Jun 4 10:52:26 2015 -0700
Committer: Timothy Chen <tn...@apache.org>
Committed: Thu Jun 4 11:11:30 2015 -0700
----------------------------------------------------------------------
src/cli/mesos.cpp | 39 +++++++++-----
src/examples/balloon_framework.cpp | 36 ++++++++-----
src/examples/docker_no_executor_framework.cpp | 22 ++++----
src/examples/load_generator_framework.cpp | 6 ++-
src/examples/long_lived_framework.cpp | 36 ++++++++-----
src/examples/low_level_scheduler_libprocess.cpp | 36 ++++++++-----
src/examples/low_level_scheduler_pthread.cpp | 35 ++++++++-----
src/examples/no_executor_framework.cpp | 25 +++++----
src/examples/test_framework.cpp | 35 ++++++++-----
src/exec/exec.cpp | 55 +++++++++++---------
src/hdfs/hdfs.hpp | 8 +--
src/jvm/jvm.cpp | 7 +--
src/launcher/executor.cpp | 7 ++-
src/launcher/fetcher.cpp | 8 +--
src/slave/containerizer/containerizer.cpp | 5 +-
src/slave/containerizer/docker.cpp | 5 +-
src/tests/anonymous_tests.cpp | 2 +-
src/tests/environment.cpp | 2 +-
18 files changed, 221 insertions(+), 148 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/cli/mesos.cpp
----------------------------------------------------------------------
diff --git a/src/cli/mesos.cpp b/src/cli/mesos.cpp
index 1121e19..bb92b68 100644
--- a/src/cli/mesos.cpp
+++ b/src/cli/mesos.cpp
@@ -3,6 +3,7 @@
#include <iostream>
#include <list>
+#include <stout/option.hpp>
#include <stout/os.hpp>
#include <stout/path.hpp>
#include <stout/strings.hpp>
@@ -18,19 +19,21 @@ using std::string;
void usage(const char* argv0)
{
// Get a list of available commands.
- const string& PATH = os::getenv("PATH");
+ const Option<string> PATH = os::getenv("PATH");
list<string> commands;
- foreach (const string& path, strings::split(PATH, ":")) {
- Try<list<string> > matches = os::glob(path::join(path, "mesos-*"));
- if (matches.isSome()) {
- foreach (const string& match, matches.get()) {
- Try<bool> access = os::access(match, X_OK);
- if (access.isSome() && access.get()) {
- Try<string> basename = os::basename(match);
- if (basename.isSome()) {
- commands.push_back(basename.get().substr(6));
+ if (PATH.isSome()) {
+ foreach (const string& path, strings::split(PATH.get(), ":")) {
+ Try<list<string> > matches = os::glob(path::join(path, "mesos-*"));
+ if (matches.isSome()) {
+ foreach (const string& match, matches.get()) {
+ Try<bool> access = os::access(match, X_OK);
+ if (access.isSome() && access.get()) {
+ Try<string> basename = os::basename(match);
+ if (basename.isSome()) {
+ commands.push_back(basename.get().substr(6));
+ }
}
}
}
@@ -52,6 +55,8 @@ void usage(const char* argv0)
int main(int argc, char** argv)
{
+ Option<string> value;
+
// Try and add the absolute dirname of argv[0] to PATH so we can
// find commands (since our installation directory might not be on
// the path).
@@ -59,7 +64,12 @@ int main(int argc, char** argv)
if (dirname.isSome()) {
Result<string> realpath = os::realpath(dirname.get());
if (realpath.isSome()) {
- os::setenv("PATH", realpath.get() + ":" + os::getenv("PATH"));
+ value = os::getenv("PATH");
+ if (value.isSome()) {
+ os::setenv("PATH", realpath.get() + ":" + value.get());
+ } else {
+ os::setenv("PATH", realpath.get());
+ }
}
}
@@ -72,7 +82,12 @@ int main(int argc, char** argv)
// TODO(benh): Remove this if/when we install the 'mesos' module via
// PIP and setuptools.
string path = path::join(PKGLIBEXECDIR, "python");
- os::setenv("PYTHONPATH", os::getenv("PYTHONPATH", false) + ":" + path);
+ value = os::getenv("PYTHONPATH");
+ if (value.isSome()) {
+ os::setenv("PYTHONPATH", value.get() + ":" + path);
+ } else {
+ os::setenv("PYTHONPATH", path);
+ }
// Now dispatch to any mesos-'command' on PATH.
if (string(argv[1]) == "help") {
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/examples/balloon_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/balloon_framework.cpp b/src/examples/balloon_framework.cpp
index c2337ba..1eb5945 100644
--- a/src/examples/balloon_framework.cpp
+++ b/src/examples/balloon_framework.cpp
@@ -29,6 +29,7 @@
#include <mesos/scheduler.hpp>
#include <stout/numify.hpp>
+#include <stout/option.hpp>
#include <stout/os.hpp>
#include <stout/stringify.hpp>
@@ -200,10 +201,12 @@ int main(int argc, char** argv)
}
// Find this executable's directory to locate executor.
- std::string path = os::realpath(::dirname(argv[0])).get();
- std::string uri = path + "/balloon-executor";
- if (getenv("MESOS_BUILD_DIR")) {
- uri = std::string(::getenv("MESOS_BUILD_DIR")) + "/src/balloon-executor";
+ string uri;
+ Option<string> value = os::getenv("MESOS_BUILD_DIR");
+ if (value.isSome()) {
+ uri = path::join(value.get(), "src", "balloon-executor");
+ } else {
+ uri = path::join(os::realpath(dirname(argv[0])).get(), "balloon-executor");
}
ExecutorInfo executor;
@@ -223,28 +226,33 @@ int main(int argc, char** argv)
framework.set_user(""); // Have Mesos fill in the current user.
framework.set_name("Balloon Framework (C++)");
- if (os::hasenv("MESOS_CHECKPOINT")) {
+ value = os::getenv("MESOS_CHECKPOINT");
+ if (value.isSome()) {
framework.set_checkpoint(
- numify<bool>(os::getenv("MESOS_CHECKPOINT")).get());
+ numify<bool>(value.get()).get());
}
MesosSchedulerDriver* driver;
- if (os::hasenv("MESOS_AUTHENTICATE")) {
+ value = os::getenv("MESOS_AUTHENTICATE");
+ if (value.isSome()) {
cout << "Enabling authentication for the framework" << endl;
- if (!os::hasenv("DEFAULT_PRINCIPAL")) {
+ value = os::getenv("DEFAULT_PRINCIPAL");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication principal in the environment";
}
- if (!os::hasenv("DEFAULT_SECRET")) {
+ Credential credential;
+ credential.set_principal(value.get());
+
+ framework.set_principal(value.get());
+
+ value = os::getenv("DEFAULT_SECRET");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication secret in the environment";
}
- Credential credential;
- credential.set_principal(getenv("DEFAULT_PRINCIPAL"));
- credential.set_secret(getenv("DEFAULT_SECRET"));
-
- framework.set_principal(getenv("DEFAULT_PRINCIPAL"));
+ credential.set_secret(value.get());
driver = new MesosSchedulerDriver(
&scheduler, framework, argv[1], credential);
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/examples/docker_no_executor_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/docker_no_executor_framework.cpp b/src/examples/docker_no_executor_framework.cpp
index df8b910..7993fcd 100644
--- a/src/examples/docker_no_executor_framework.cpp
+++ b/src/examples/docker_no_executor_framework.cpp
@@ -26,6 +26,7 @@
#include <mesos/scheduler.hpp>
#include <stout/exit.hpp>
+#include <stout/option.hpp>
#include <stout/os.hpp>
using namespace mesos;
@@ -185,28 +186,31 @@ int main(int argc, char** argv)
// TODO(vinod): Make checkpointing the default when it is default
// on the slave.
- if (os::hasenv("MESOS_CHECKPOINT")) {
+ if (os::getenv("MESOS_CHECKPOINT").isSome()) {
cout << "Enabling checkpoint for the framework" << endl;
framework.set_checkpoint(true);
}
MesosSchedulerDriver* driver;
- if (os::hasenv("MESOS_AUTHENTICATE")) {
+ if (os::getenv("MESOS_AUTHENTICATE").isSome()) {
cout << "Enabling authentication for the framework" << endl;
- if (!os::hasenv("DEFAULT_PRINCIPAL")) {
+ Option<string> value = os::getenv("DEFAULT_PRINCIPAL");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication principal in the environment";
}
- if (!os::hasenv("DEFAULT_SECRET")) {
+ Credential credential;
+ credential.set_principal(value.get());
+
+ framework.set_principal(value.get());
+
+ value = os::getenv("DEFAULT_SECRET");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication secret in the environment";
}
- Credential credential;
- credential.set_principal(getenv("DEFAULT_PRINCIPAL"));
- credential.set_secret(getenv("DEFAULT_SECRET"));
-
- framework.set_principal(getenv("DEFAULT_PRINCIPAL"));
+ credential.set_secret(value.get());
driver = new MesosSchedulerDriver(
&scheduler, framework, argv[1], credential);
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/examples/load_generator_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/load_generator_framework.cpp b/src/examples/load_generator_framework.cpp
index 6e83308..725478f 100644
--- a/src/examples/load_generator_framework.cpp
+++ b/src/examples/load_generator_framework.cpp
@@ -26,6 +26,7 @@
#include <process/timeout.hpp>
#include <stout/numify.hpp>
+#include <stout/option.hpp>
#include <stout/os.hpp>
#include <stout/stopwatch.hpp>
#include <stout/strings.hpp>
@@ -321,9 +322,10 @@ int main(int argc, char** argv)
framework.set_user(""); // Have Mesos fill in the current user.
framework.set_name("Load Generator Framework (C++)");
- if (os::hasenv("MESOS_CHECKPOINT")) {
+ const Option<string> checkpoint = os::getenv("MESOS_CHECKPOINT");
+ if (checkpoint.isSome()) {
framework.set_checkpoint(
- numify<bool>(os::getenv("MESOS_CHECKPOINT")).get());
+ numify<bool>(checkpoint.get()).get());
}
MesosSchedulerDriver* driver;
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/examples/long_lived_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/long_lived_framework.cpp b/src/examples/long_lived_framework.cpp
index d1d577e..3f2ebe0 100644
--- a/src/examples/long_lived_framework.cpp
+++ b/src/examples/long_lived_framework.cpp
@@ -26,6 +26,7 @@
#include <mesos/scheduler.hpp>
#include <stout/numify.hpp>
+#include <stout/option.hpp>
#include <stout/os.hpp>
#include <stout/stringify.hpp>
@@ -161,10 +162,13 @@ int main(int argc, char** argv)
}
// Find this executable's directory to locate executor.
- string path = os::realpath(dirname(argv[0])).get();
- string uri = path + "/long-lived-executor";
- if (getenv("MESOS_BUILD_DIR")) {
- uri = string(getenv("MESOS_BUILD_DIR")) + "/src/long-lived-executor";
+ string uri;
+ Option<string> value = os::getenv("MESOS_BUILD_DIR");
+ if (value.isSome()) {
+ uri = path::join(value.get(), "src", "long-lived-executor");
+ } else {
+ uri =
+ path::join(os::realpath(dirname(argv[0])).get(), "long-lived-executor");
}
ExecutorInfo executor;
@@ -179,28 +183,32 @@ int main(int argc, char** argv)
framework.set_user(""); // Have Mesos fill in the current user.
framework.set_name("Long Lived Framework (C++)");
- if (os::hasenv("MESOS_CHECKPOINT")) {
+ value = os::getenv("MESOS_CHECKPOINT");
+ if (value.isSome()) {
framework.set_checkpoint(
- numify<bool>(os::getenv("MESOS_CHECKPOINT")).get());
+ numify<bool>(value.get()).get());
}
MesosSchedulerDriver* driver;
- if (os::hasenv("MESOS_AUTHENTICATE")) {
+ if (os::getenv("MESOS_AUTHENTICATE").isSome()) {
cout << "Enabling authentication for the framework" << endl;
- if (!os::hasenv("DEFAULT_PRINCIPAL")) {
+ value = os::getenv("DEFAULT_PRINCIPAL");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication principal in the environment";
}
- if (!os::hasenv("DEFAULT_SECRET")) {
+ Credential credential;
+ credential.set_principal(value.get());
+
+ framework.set_principal(value.get());
+
+ value = os::getenv("DEFAULT_SECRET");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication secret in the environment";
}
- Credential credential;
- credential.set_principal(getenv("DEFAULT_PRINCIPAL"));
- credential.set_secret(getenv("DEFAULT_SECRET"));
-
- framework.set_principal(getenv("DEFAULT_PRINCIPAL"));
+ credential.set_secret(value.get());
driver = new MesosSchedulerDriver(
&scheduler, framework, argv[1], credential);
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/examples/low_level_scheduler_libprocess.cpp
----------------------------------------------------------------------
diff --git a/src/examples/low_level_scheduler_libprocess.cpp b/src/examples/low_level_scheduler_libprocess.cpp
index df92e8d..fe4eb29 100644
--- a/src/examples/low_level_scheduler_libprocess.cpp
+++ b/src/examples/low_level_scheduler_libprocess.cpp
@@ -42,6 +42,7 @@
#include <stout/numify.hpp>
#include <stout/option.hpp>
#include <stout/os.hpp>
+#include <stout/option.hpp>
#include <stout/stringify.hpp>
#include "common/status_utils.hpp"
@@ -344,10 +345,13 @@ void usage(const char* argv0, const flags::FlagsBase& flags)
int main(int argc, char** argv)
{
// Find this executable's directory to locate executor.
- string uri =
- path::join(os::realpath(dirname(argv[0])).get(), "src", "test-executor");
- if (getenv("MESOS_BUILD_DIR")) {
- uri = path::join(os::getenv("MESOS_BUILD_DIR"), "src", "test-executor");
+ string uri;
+ Option<string> value = os::getenv("MESOS_BUILD_DIR");
+ if (value.isSome()) {
+ uri = path::join(value.get(), "src", "test-executor");
+ } else {
+ uri =
+ path::join(os::realpath(dirname(argv[0])).get(), "src", "test-executor");
}
mesos::internal::logging::Flags flags;
@@ -383,9 +387,10 @@ int main(int argc, char** argv)
framework.set_name("Low-Level Scheduler using libprocess (C++)");
framework.set_role(role);
- if (os::hasenv("MESOS_CHECKPOINT")) {
+ value = os::getenv("MESOS_CHECKPOINT");
+ if (value.isSome()) {
framework.set_checkpoint(
- numify<bool>(os::getenv("MESOS_CHECKPOINT")).get());
+ numify<bool>(value.get()).get());
}
ExecutorInfo executor;
@@ -395,22 +400,25 @@ int main(int argc, char** argv)
executor.set_source("cpp_test");
LowLevelScheduler* scheduler;
- if (os::hasenv("MESOS_AUTHENTICATE")) {
+ if (os::getenv("MESOS_AUTHENTICATE").isSome()) {
cout << "Enabling authentication for the scheduler" << endl;
- if (!os::hasenv("DEFAULT_PRINCIPAL")) {
+ value = os::getenv("DEFAULT_PRINCIPAL");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication principal in the environment";
}
- if (!os::hasenv("DEFAULT_SECRET")) {
+ Credential credential;
+ credential.set_principal(value.get());
+
+ framework.set_principal(value.get());
+
+ value = os::getenv("DEFAULT_SECRET");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication secret in the environment";
}
- Credential credential;
- credential.set_principal(getenv("DEFAULT_PRINCIPAL"));
- credential.set_secret(getenv("DEFAULT_SECRET"));
-
- framework.set_principal(getenv("DEFAULT_PRINCIPAL"));
+ credential.set_secret(value.get());
scheduler =
new LowLevelScheduler(framework, executor, master.get(), credential);
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/examples/low_level_scheduler_pthread.cpp
----------------------------------------------------------------------
diff --git a/src/examples/low_level_scheduler_pthread.cpp b/src/examples/low_level_scheduler_pthread.cpp
index 175ee4d..1d285d8 100644
--- a/src/examples/low_level_scheduler_pthread.cpp
+++ b/src/examples/low_level_scheduler_pthread.cpp
@@ -402,10 +402,13 @@ void usage(const char* argv0, const flags::FlagsBase& flags)
int main(int argc, char** argv)
{
// Find this executable's directory to locate executor.
- string uri =
- path::join(os::realpath(dirname(argv[0])).get(), "src", "test-executor");
- if (getenv("MESOS_BUILD_DIR")) {
- uri = path::join(os::getenv("MESOS_BUILD_DIR"), "src", "test-executor");
+ string uri;
+ Option<string> value = os::getenv("MESOS_BUILD_DIR");
+ if (value.isSome()) {
+ uri = path::join(value.get(), "src", "test-executor");
+ } else {
+ uri =
+ path::join(os::realpath(dirname(argv[0])).get(), "src", "test-executor");
}
mesos::internal::logging::Flags flags;
@@ -440,9 +443,10 @@ int main(int argc, char** argv)
framework.set_name("Low-Level Scheduler using pthread (C++)");
framework.set_role(role);
- if (os::hasenv("MESOS_CHECKPOINT")) {
+ value = os::getenv("MESOS_CHECKPOINT");
+ if (value.isSome()) {
framework.set_checkpoint(
- numify<bool>(os::getenv("MESOS_CHECKPOINT")).get());
+ numify<bool>(value.get()).get());
}
ExecutorInfo executor;
@@ -452,22 +456,25 @@ int main(int argc, char** argv)
executor.set_source("cpp_test");
LowLevelScheduler* scheduler;
- if (os::hasenv("MESOS_AUTHENTICATE")) {
+ if (os::getenv("MESOS_AUTHENTICATE").isSome()) {
cout << "Enabling authentication for the scheduler" << endl;
- if (!os::hasenv("DEFAULT_PRINCIPAL")) {
+ value = os::getenv("DEFAULT_PRINCIPAL");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication principal in the environment";
}
- if (!os::hasenv("DEFAULT_SECRET")) {
+ Credential credential;
+ credential.set_principal(value.get());
+
+ framework.set_principal(value.get());
+
+ value = os::getenv("DEFAULT_SECRET");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication secret in the environment";
}
- Credential credential;
- credential.set_principal(getenv("DEFAULT_PRINCIPAL"));
- credential.set_secret(getenv("DEFAULT_SECRET"));
-
- framework.set_principal(getenv("DEFAULT_PRINCIPAL"));
+ credential.set_secret(value.get());
scheduler =
new LowLevelScheduler(framework, executor, master.get(), credential);
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/examples/no_executor_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/no_executor_framework.cpp b/src/examples/no_executor_framework.cpp
index 37001c3..1fb853d 100644
--- a/src/examples/no_executor_framework.cpp
+++ b/src/examples/no_executor_framework.cpp
@@ -30,6 +30,7 @@
#include <stout/check.hpp>
#include <stout/exit.hpp>
#include <stout/numify.hpp>
+#include <stout/option.hpp>
#include <stout/os.hpp>
#include <stout/stringify.hpp>
@@ -170,28 +171,32 @@ int main(int argc, char** argv)
framework.set_user(""); // Have Mesos fill in the current user.
framework.set_name("No Executor Framework (C++)");
- if (os::hasenv("MESOS_CHECKPOINT")) {
+ Option<string> value = os::getenv("MESOS_CHECKPOINT");
+ if (value.isSome()) {
framework.set_checkpoint(
- numify<bool>(os::getenv("MESOS_CHECKPOINT")).get());
+ numify<bool>(value.get()).get());
}
MesosSchedulerDriver* driver;
- if (os::hasenv("MESOS_AUTHENTICATE")) {
+ if (os::getenv("MESOS_AUTHENTICATE").isSome()) {
cout << "Enabling authentication for the framework" << endl;
- if (!os::hasenv("DEFAULT_PRINCIPAL")) {
+ value = os::getenv("DEFAULT_PRINCIPAL");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication principal in the environment";
}
- if (!os::hasenv("DEFAULT_SECRET")) {
+ Credential credential;
+ credential.set_principal(value.get());
+
+ framework.set_principal(value.get());
+
+ value = os::getenv("DEFAULT_SECRET");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication secret in the environment";
}
- Credential credential;
- credential.set_principal(getenv("DEFAULT_PRINCIPAL"));
- credential.set_secret(getenv("DEFAULT_SECRET"));
-
- framework.set_principal(getenv("DEFAULT_PRINCIPAL"));
+ credential.set_secret(value.get());
driver = new MesosSchedulerDriver(
&scheduler, framework, argv[1], credential);
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/examples/test_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_framework.cpp b/src/examples/test_framework.cpp
index 25f5f8c..99b981d 100644
--- a/src/examples/test_framework.cpp
+++ b/src/examples/test_framework.cpp
@@ -31,6 +31,7 @@
#include <stout/exit.hpp>
#include <stout/flags.hpp>
#include <stout/numify.hpp>
+#include <stout/option.hpp>
#include <stout/os.hpp>
#include <stout/stringify.hpp>
@@ -195,10 +196,12 @@ void usage(const char* argv0, const flags::FlagsBase& flags)
int main(int argc, char** argv)
{
// Find this executable's directory to locate executor.
- string path = os::realpath(dirname(argv[0])).get();
- string uri = path + "/test-executor";
- if (getenv("MESOS_BUILD_DIR")) {
- uri = string(getenv("MESOS_BUILD_DIR")) + "/src/test-executor";
+ string uri;
+ Option<string> value = os::getenv("MESOS_BUILD_DIR");
+ if (value.isSome()) {
+ uri = path::join(value.get(), "src", "test-executor");
+ } else {
+ uri = path::join(os::realpath(dirname(argv[0])).get(), "test-executor");
}
mesos::internal::logging::Flags flags;
@@ -239,13 +242,14 @@ int main(int argc, char** argv)
framework.set_name("Test Framework (C++)");
framework.set_role(role);
- if (os::hasenv("MESOS_CHECKPOINT")) {
+ value = os::getenv("MESOS_CHECKPOINT");
+ if (value.isSome()) {
framework.set_checkpoint(
- numify<bool>(os::getenv("MESOS_CHECKPOINT")).get());
+ numify<bool>(value.get()).get());
}
bool implicitAcknowledgements = true;
- if (os::hasenv("MESOS_EXPLICIT_ACKNOWLEDGEMENTS")) {
+ if (os::getenv("MESOS_EXPLICIT_ACKNOWLEDGEMENTS").isSome()) {
cout << "Enabling explicit acknowledgements for status updates" << endl;
implicitAcknowledgements = false;
@@ -254,20 +258,25 @@ int main(int argc, char** argv)
MesosSchedulerDriver* driver;
TestScheduler scheduler(implicitAcknowledgements, executor, role);
- if (os::hasenv("MESOS_AUTHENTICATE")) {
+ if (os::getenv("MESOS_AUTHENTICATE").isSome()) {
cout << "Enabling authentication for the framework" << endl;
- if (!os::hasenv("DEFAULT_PRINCIPAL")) {
+ value = os::getenv("DEFAULT_PRINCIPAL");
+ if (value.isNone()) {
EXIT(1) << "Expecting authentication principal in the environment";
}
Credential credential;
- credential.set_principal(getenv("DEFAULT_PRINCIPAL"));
- if (os::hasenv("DEFAULT_SECRET")) {
- credential.set_secret(getenv("DEFAULT_SECRET"));
+ credential.set_principal(value.get());
+
+ framework.set_principal(value.get());
+
+ value = os::getenv("DEFAULT_SECRET");
+ if (value.isNone()) {
+ EXIT(1) << "Expecting authentication secret in the environment";
}
- framework.set_principal(getenv("DEFAULT_PRINCIPAL"));
+ credential.set_secret(value.get());
driver = new MesosSchedulerDriver(
&scheduler,
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/exec/exec.cpp
----------------------------------------------------------------------
diff --git a/src/exec/exec.cpp b/src/exec/exec.cpp
index a22e8bb..0dfd5a6 100644
--- a/src/exec/exec.cpp
+++ b/src/exec/exec.cpp
@@ -631,59 +631,64 @@ Status MesosExecutorDriver::start()
string workDirectory;
bool checkpoint;
- string value;
+ Option<string> value;
std::istringstream iss;
// Check if this is local (for example, for testing).
- value = os::getenv("MESOS_LOCAL", false);
-
- if (!value.empty()) {
- local = true;
- } else {
- local = false;
- }
+ local = os::getenv("MESOS_LOCAL").isSome();
// Get slave PID from environment.
value = os::getenv("MESOS_SLAVE_PID");
- slave = UPID(value);
- CHECK(slave) << "Cannot parse MESOS_SLAVE_PID '" << value << "'";
+ if (value.isNone()) {
+ EXIT(1) << "Expecting 'MESOS_SLAVE_PID' to be set in the environment.";
+ }
+
+ slave = UPID(value.get());
+ CHECK(slave) << "Cannot parse MESOS_SLAVE_PID '" << value.get() << "'";
// Get slave ID from environment.
value = os::getenv("MESOS_SLAVE_ID");
- slaveId.set_value(value);
+ if (value.isNone()) {
+ EXIT(1) << "Expecting 'MESOS_SLAVE_ID' to be set in the environment.";
+ }
+ slaveId.set_value(value.get());
// Get framework ID from environment.
value = os::getenv("MESOS_FRAMEWORK_ID");
- frameworkId.set_value(value);
+ if (value.isNone()) {
+ EXIT(1) << "Expecting 'MESOS_FRAMEWORK_ID' to be set in the environment.";
+ }
+ frameworkId.set_value(value.get());
// Get executor ID from environment.
value = os::getenv("MESOS_EXECUTOR_ID");
- executorId.set_value(value);
+ if (value.isNone()) {
+ EXIT(1) << "Expecting 'MESOS_EXECUTOR_ID' to be set in the environment.";
+ }
+ executorId.set_value(value.get());
// Get working directory from environment.
value = os::getenv("MESOS_DIRECTORY");
- workDirectory = value;
+ if (value.isNone()) {
+ EXIT(1) << "Expecting 'MESOS_DIRECTORY' to be set in the environment.";
+ }
+ workDirectory = value.get();
// Get checkpointing status from environment.
- value = os::getenv("MESOS_CHECKPOINT", false);
-
- if (!value.empty()) {
- checkpoint = value == "1";
- } else {
- checkpoint = false;
- }
+ value = os::getenv("MESOS_CHECKPOINT");
+ checkpoint = value.isSome() && value.get() == "1";
Duration recoveryTimeout = slave::RECOVERY_TIMEOUT;
// Get the recovery timeout if checkpointing is enabled.
if (checkpoint) {
- value = os::getenv("MESOS_RECOVERY_TIMEOUT", false);
+ value = os::getenv("MESOS_RECOVERY_TIMEOUT");
- if (!value.empty()) {
- Try<Duration> _recoveryTimeout = Duration::parse(value);
+ if (value.isSome()) {
+ Try<Duration> _recoveryTimeout = Duration::parse(value.get());
CHECK_SOME(_recoveryTimeout)
- << "Cannot parse MESOS_RECOVERY_TIMEOUT '" << value << "': "
+ << "Cannot parse MESOS_RECOVERY_TIMEOUT '" << value.get() << "': "
<< _recoveryTimeout.error();
recoveryTimeout = _recoveryTimeout.get();
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/hdfs/hdfs.hpp
----------------------------------------------------------------------
diff --git a/src/hdfs/hdfs.hpp b/src/hdfs/hdfs.hpp
index 0b0312c..cba386a 100644
--- a/src/hdfs/hdfs.hpp
+++ b/src/hdfs/hdfs.hpp
@@ -33,14 +33,14 @@ struct HDFS
explicit HDFS(const std::string& _hadoop)
: hadoop(os::exists(_hadoop)
? _hadoop
- : (os::hasenv("HADOOP_HOME")
- ? path::join(os::getenv("HADOOP_HOME"), "bin/hadoop")
+ : (os::getenv("HADOOP_HOME").isSome()
+ ? path::join(os::getenv("HADOOP_HOME").get(), "bin/hadoop")
: "hadoop")) {}
// Look for `hadoop' in HADOOP_HOME or assume it's on the PATH.
HDFS()
- : hadoop(os::hasenv("HADOOP_HOME")
- ? path::join(os::getenv("HADOOP_HOME"), "bin/hadoop")
+ : hadoop(os::getenv("HADOOP_HOME").isSome()
+ ? path::join(os::getenv("HADOOP_HOME").get(), "bin/hadoop")
: "hadoop") {}
// Check if hadoop client is available at the path that was set.
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/jvm/jvm.cpp
----------------------------------------------------------------------
diff --git a/src/jvm/jvm.cpp b/src/jvm/jvm.cpp
index 0fda513..3fda5a7 100644
--- a/src/jvm/jvm.cpp
+++ b/src/jvm/jvm.cpp
@@ -29,6 +29,7 @@
#include <stout/dynamiclibrary.hpp>
#include <stout/exit.hpp>
#include <stout/foreach.hpp>
+#include <stout/option.hpp>
#include <stout/os.hpp>
#include "common/build.hpp"
@@ -75,14 +76,14 @@ Try<Jvm*> Jvm::create(
JavaVM* jvm = NULL;
JNIEnv* env = NULL;
- std::string libJvmPath = os::getenv("JAVA_JVM_LIBRARY", false);
+ Option<std::string> libJvmPath = os::getenv("JAVA_JVM_LIBRARY");
- if (libJvmPath.empty()) {
+ if (libJvmPath.isNone()) {
libJvmPath = mesos::internal::build::JAVA_JVM_LIBRARY;
}
static DynamicLibrary* libJvm = new DynamicLibrary();
- Try<Nothing> openResult = libJvm->open(libJvmPath);
+ Try<Nothing> openResult = libJvm->open(libJvmPath.get());
if (openResult.isError()) {
return Error(openResult.error());
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/launcher/executor.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/executor.cpp b/src/launcher/executor.cpp
index f79dc60..9a3a1c3 100644
--- a/src/launcher/executor.cpp
+++ b/src/launcher/executor.cpp
@@ -631,10 +631,9 @@ int main(int argc, char** argv)
}
}
- string path = os::getenv("MESOS_LAUNCHER_DIR", false);
- if (path.empty()) {
- path = os::realpath(dirname(argv[0])).get();
- }
+ const Option<string> envPath = os::getenv("MESOS_LAUNCHER_DIR");
+ string path = envPath.isSome() ? envPath.get()
+ : os::realpath(dirname(argv[0])).get();
mesos::internal::CommandExecutor executor(override, path);
mesos::MesosExecutorDriver driver(&executor);
return driver.run() == mesos::DRIVER_STOPPED ? EXIT_SUCCESS : EXIT_FAILURE;
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/launcher/fetcher.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/fetcher.cpp b/src/launcher/fetcher.cpp
index c32106f..a3d27dc 100644
--- a/src/launcher/fetcher.cpp
+++ b/src/launcher/fetcher.cpp
@@ -384,13 +384,13 @@ int main(int argc, char* argv[])
logging::initialize(argv[0], flags, true); // Catch signals.
- CHECK(os::hasenv("MESOS_FETCHER_INFO"))
+ const Option<std::string> jsonFetcherInfo = os::getenv("MESOS_FETCHER_INFO");
+ CHECK(jsonFetcherInfo.isSome())
<< "Missing MESOS_FETCHER_INFO environment variable";
- string jsonFetcherInfo = os::getenv("MESOS_FETCHER_INFO");
- LOG(INFO) << "Fetcher Info: " << jsonFetcherInfo;
+ LOG(INFO) << "Fetcher Info: " << jsonFetcherInfo.get();
- Try<JSON::Object> parse = JSON::parse<JSON::Object>(jsonFetcherInfo);
+ Try<JSON::Object> parse = JSON::parse<JSON::Object>(jsonFetcherInfo.get());
CHECK_SOME(parse) << "Failed to parse MESOS_FETCHER_INFO: " << parse.error();
Try<FetcherInfo> fetcherInfo = ::protobuf::parse<FetcherInfo>(parse.get());
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/slave/containerizer/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/containerizer.cpp b/src/slave/containerizer/containerizer.cpp
index 4d66e76..e995ce6 100644
--- a/src/slave/containerizer/containerizer.cpp
+++ b/src/slave/containerizer/containerizer.cpp
@@ -24,6 +24,7 @@
#include <stout/fs.hpp>
#include <stout/hashmap.hpp>
+#include <stout/os.hpp>
#include <stout/stringify.hpp>
#include <stout/strings.hpp>
#include <stout/uuid.hpp>
@@ -252,7 +253,7 @@ map<string, string> executorEnvironment(
// case the framework wants to override).
// TODO(tillt): Adapt library towards JNI specific name once libmesos
// has been split.
- if (!os::hasenv("MESOS_NATIVE_JAVA_LIBRARY")) {
+ if (os::getenv("MESOS_NATIVE_JAVA_LIBRARY").isNone()) {
string path =
#ifdef __APPLE__
LIBDIR "/libmesos-" VERSION ".dylib";
@@ -267,7 +268,7 @@ map<string, string> executorEnvironment(
// Also add MESOS_NATIVE_LIBRARY if it's not already present.
// This environment variable is kept for offering non JVM-based
// frameworks a more compact and JNI independent library.
- if (!os::hasenv("MESOS_NATIVE_LIBRARY")) {
+ if (os::getenv("MESOS_NATIVE_LIBRARY").isNone()) {
string path =
#ifdef __APPLE__
LIBDIR "/libmesos-" VERSION ".dylib";
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/slave/containerizer/docker.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.cpp b/src/slave/containerizer/docker.cpp
index 41e0b98..00db981 100644
--- a/src/slave/containerizer/docker.cpp
+++ b/src/slave/containerizer/docker.cpp
@@ -884,8 +884,9 @@ Future<pid_t> DockerContainerizerProcess::launchExecutorProcess(
}
// Pass GLOG flag to the executor.
- if (os::hasenv("GLOG_v")) {
- environment["GLOG_v"] = os::getenv("GLOG_v");
+ const Option<string> glog = os::getenv("GLOG_v");
+ if (glog.isSome()) {
+ environment["GLOG_v"] = glog.get();
}
vector<string> argv;
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/tests/anonymous_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/anonymous_tests.cpp b/src/tests/anonymous_tests.cpp
index 12d4eb4..3ddd79d 100644
--- a/src/tests/anonymous_tests.cpp
+++ b/src/tests/anonymous_tests.cpp
@@ -67,7 +67,7 @@ TEST_F(AnonymousTest, Running)
// Test if the environment variables have been created by the
// anonymous module.
- EXPECT_EQ("42", os::getenv(TEST_ANONYMOUS_ENVIRONMENT_VARIABLE));
+ EXPECT_EQ("42", os::getenv(TEST_ANONYMOUS_ENVIRONMENT_VARIABLE).get());
// Clear test relevant environment.
os::unsetenv(TEST_ANONYMOUS_ENVIRONMENT_VARIABLE);
http://git-wip-us.apache.org/repos/asf/mesos/blob/dc216463/src/tests/environment.cpp
----------------------------------------------------------------------
diff --git a/src/tests/environment.cpp b/src/tests/environment.cpp
index e002363..2b6bc0c 100644
--- a/src/tests/environment.cpp
+++ b/src/tests/environment.cpp
@@ -367,7 +367,7 @@ void Environment::SetUp()
// Set the path to the native JNI library for running JVM tests.
// TODO(tillt): Adapt library towards JNI specific name once libmesos
// has been split.
- if (!os::hasenv("MESOS_NATIVE_JAVA_LIBRARY")) {
+ if (os::getenv("MESOS_NATIVE_JAVA_LIBRARY").isNone()) {
string path = path::join(tests::flags.build_dir, "src", ".libs");
#ifdef __APPLE__
path = path::join(path, "libmesos-" VERSION ".dylib");