Repository: mesos Updated Branches: refs/heads/master cd61a228e -> 190d15886
Converted bool returns to Try<Nothing> in stout/os.hpp. Review: https://reviews.apache.org/r/20493 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3cf732fc Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3cf732fc Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3cf732fc Branch: refs/heads/master Commit: 3cf732fc181bd1ade830e07c34b783271299dd5c Parents: cd61a22 Author: Dominic Hamon <[email protected]> Authored: Fri Apr 18 11:12:24 2014 -0700 Committer: Dominic Hamon <[email protected]> Committed: Tue Jul 29 14:33:40 2014 -0700 ---------------------------------------------------------------------- .../3rdparty/stout/include/stout/os.hpp | 36 ++++++++------------ .../stout/include/stout/tests/utils.hpp | 4 +-- .../3rdparty/stout/tests/os_tests.cpp | 4 +-- 3 files changed, 18 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/3cf732fc/3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp b/3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp index 0825172..85b49d9 100644 --- a/3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp +++ b/3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp @@ -578,7 +578,6 @@ inline int system(const std::string& command) } -// TODO(bmahler): Clean these bool functions to return Try<Nothing>. // Changes the specified path's user and group ownership to that of // the specified user.. inline Try<Nothing> chown( @@ -613,25 +612,23 @@ inline Try<Nothing> chown( } -inline bool chmod(const std::string& path, int mode) +inline Try<Nothing> chmod(const std::string& path, int mode) { if (::chmod(path.c_str(), mode) < 0) { - PLOG(ERROR) << "Failed to changed the mode of the path '" << path << "'"; - return false; + return ErrnoError(); } - return true; + return Nothing(); } -inline bool chdir(const std::string& directory) +inline Try<Nothing> chdir(const std::string& directory) { if (::chdir(directory.c_str()) < 0) { - PLOG(ERROR) << "Failed to change directory"; - return false; + return ErrnoError(); } - return true; + return Nothing(); } @@ -723,30 +720,25 @@ inline Result<gid_t> getgid(const Option<std::string>& user = None()) } -// TODO(idownes): Refactor to return a Try and to not log internally. -inline bool su(const std::string& user) +inline Try<Nothing> su(const std::string& user) { Result<gid_t> gid = os::getgid(user); if (gid.isError() || gid.isNone()) { - LOG(ERROR) << "Failed to set gid: " - << (gid.isError() ? gid.error() : "unknown user"); - return false; + return Error("Failed to getgid: " + + (gid.isError() ? gid.error() : "unknown user")); } else if (::setgid(gid.get())) { - PLOG(ERROR) << "Failed to setgid"; - return false; + return ErrnoError("Failed to set gid"); } Result<uid_t> uid = os::getuid(user); if (uid.isError() || uid.isNone()) { - LOG(ERROR) << "Failed to set uid: " - << (uid.isError() ? uid.error() : "unknown user"); - return false; + return Error("Failed to getuid: " + + (uid.isError() ? uid.error() : "unknown user")); } else if (::setuid(uid.get())) { - PLOG(ERROR) << "Failed to setuid"; - return false; + return ErrnoError("Failed to setuid"); } - return true; + return Nothing(); } http://git-wip-us.apache.org/repos/asf/mesos/blob/3cf732fc/3rdparty/libprocess/3rdparty/stout/include/stout/tests/utils.hpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/3rdparty/stout/include/stout/tests/utils.hpp b/3rdparty/libprocess/3rdparty/stout/include/stout/tests/utils.hpp index ff4907b..494baca 100644 --- a/3rdparty/libprocess/3rdparty/stout/include/stout/tests/utils.hpp +++ b/3rdparty/libprocess/3rdparty/stout/include/stout/tests/utils.hpp @@ -39,14 +39,14 @@ protected: sandbox = directory.get(); // Run the test out of the temporary directory we created. - ASSERT_TRUE(os::chdir(sandbox.get())) + ASSERT_SOME(os::chdir(sandbox.get())) << "Failed to chdir into '" << sandbox.get() << "'"; } virtual void TearDown() { // Return to previous working directory and cleanup the sandbox. - ASSERT_TRUE(os::chdir(cwd)); + ASSERT_SOME(os::chdir(cwd)); if (sandbox.isSome()) { ASSERT_SOME(os::rmdir(sandbox.get())); http://git-wip-us.apache.org/repos/asf/mesos/blob/3cf732fc/3rdparty/libprocess/3rdparty/stout/tests/os_tests.cpp ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/3rdparty/stout/tests/os_tests.cpp b/3rdparty/libprocess/3rdparty/stout/tests/os_tests.cpp index 7fa7346..3f2ba47 100644 --- a/3rdparty/libprocess/3rdparty/stout/tests/os_tests.cpp +++ b/3rdparty/libprocess/3rdparty/stout/tests/os_tests.cpp @@ -720,6 +720,6 @@ TEST_F(OsTest, user) EXPECT_NONE(os::getuid(UUID::random().toString())); EXPECT_NONE(os::getgid(UUID::random().toString())); - EXPECT_TRUE(os::su(user.get())); - EXPECT_FALSE(os::su(UUID::random().toString())); + EXPECT_SOME(os::su(user.get())); + EXPECT_ERROR(os::su(UUID::random().toString())); }
