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/05/25 07:31:47 UTC
[12/20] mesos git commit: Fix docker tests and warnings running in
verbose logging.
Fix docker tests and warnings running in verbose logging.
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/72f62aa3
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/72f62aa3
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/72f62aa3
Branch: refs/heads/master
Commit: 72f62aa35d4ed060faaa863718cc0e1e416c7e52
Parents: 9f91e07
Author: Timothy Chen <tn...@gmail.com>
Authored: Fri Jan 16 23:09:43 2015 +0000
Committer: Timothy Chen <tn...@gmail.com>
Committed: Sun May 24 22:27:40 2015 -0700
----------------------------------------------------------------------
src/docker/docker.hpp | 2 +-
src/docker/executor.cpp | 7 ++-
src/tests/docker_containerizer_tests.cpp | 64 ++++++++++++++++++---------
3 files changed, 49 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/72f62aa3/src/docker/docker.hpp
----------------------------------------------------------------------
diff --git a/src/docker/docker.hpp b/src/docker/docker.hpp
index 0ba7e0e..2e2053e 100644
--- a/src/docker/docker.hpp
+++ b/src/docker/docker.hpp
@@ -98,7 +98,7 @@ public:
// time for docker to wait after stopping a container before killing it.
// A value of zero (the default value) is the same as issuing a
// 'docker kill CONTAINER'.
- process::Future<Nothing> stop(
+ virtual process::Future<Nothing> stop(
const std::string& container,
const Duration& timeout = Seconds(0),
bool remove = false) const;
http://git-wip-us.apache.org/repos/asf/mesos/blob/72f62aa3/src/docker/executor.cpp
----------------------------------------------------------------------
diff --git a/src/docker/executor.cpp b/src/docker/executor.cpp
index 227b3d1..fda7b2a 100644
--- a/src/docker/executor.cpp
+++ b/src/docker/executor.cpp
@@ -36,6 +36,7 @@
#include "docker/docker.hpp"
+#include "logging/flags.hpp"
#include "logging/logging.hpp"
using std::cerr;
@@ -305,7 +306,7 @@ void usage(const char* argv0, const flags::FlagsBase& flags)
}
-class Flags : public flags::FlagsBase
+class Flags : public mesos::internal::logging::Flags
{
public:
Flags()
@@ -337,6 +338,8 @@ public:
int main(int argc, char** argv)
{
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
Flags flags;
bool help;
@@ -354,6 +357,8 @@ int main(int argc, char** argv)
return -1;
}
+ mesos::internal::logging::initialize(argv[0], flags, true); // Catch signals.
+
if (help) {
usage(argv[0], flags);
return -1;
http://git-wip-us.apache.org/repos/asf/mesos/blob/72f62aa3/src/tests/docker_containerizer_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/docker_containerizer_tests.cpp b/src/tests/docker_containerizer_tests.cpp
index 378a526..7efaea4 100644
--- a/src/tests/docker_containerizer_tests.cpp
+++ b/src/tests/docker_containerizer_tests.cpp
@@ -203,7 +203,6 @@ public:
return false;
}
-
static bool running(
const process::Shared<Docker>& docker,
const SlaveID& slaveId,
@@ -232,6 +231,16 @@ public:
return false;
}
+ static bool containsLine(string text, string expectedLine)
+ {
+ foreach (const string& line, strings::split(text, "\n")) {
+ if (line == expectedLine) {
+ return true;
+ }
+ }
+
+ return false;
+ }
virtual void TearDown()
{
@@ -836,6 +845,8 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Kill)
AWAIT_READY_FOR(statusRunning, Seconds(60));
EXPECT_EQ(TASK_RUNNING, statusRunning.get().state());
+ ASSERT_TRUE(running(docker, slaveId, containerId.get()));
+
Future<TaskStatus> statusKilled;
EXPECT_CALL(sched, statusUpdate(&driver, _))
.WillOnce(FutureArg<1>(&statusKilled));
@@ -1156,6 +1167,11 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Recover)
MockDocker* mockDocker = new MockDocker(tests::flags.docker);
Shared<Docker> docker(mockDocker);
+ Future<string> stoppedContainer;
+ EXPECT_CALL(*mockDocker, stop(_, _, _))
+ .WillOnce(DoAll(FutureArg<0>(&stoppedContainer),
+ Return(Nothing())));
+
Fetcher fetcher;
MockDockerContainerizer dockerContainerizer(flags, &fetcher, docker);
@@ -1207,6 +1223,12 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Recover)
AWAIT_READY(d1);
AWAIT_READY(d2);
+ ASSERT_TRUE(running(docker, slaveId, containerId));
+ ASSERT_TRUE(running(docker, slaveId, reapedContainerId));
+
+ Future<Docker::Container> inspect = docker->inspect(container2);
+ AWAIT_READY(inspect);
+
SlaveState slaveState;
slaveState.id = slaveId;
FrameworkState frameworkState;
@@ -1224,11 +1246,6 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Recover)
ASSERT_SOME(wait);
- Try<process::Subprocess> reaped =
- process::subprocess(tests::flags.docker + " wait " + container2);
-
- ASSERT_SOME(reaped);
-
FrameworkID frameworkId;
RunState runState;
@@ -1250,7 +1267,7 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Recover)
AWAIT_FAILED(dockerContainerizer.wait(reapedContainerId));
- AWAIT_READY(reaped.get().status());
+ AWAIT_EQ(inspect.get().id, stoppedContainer);
Shutdown();
}
@@ -1406,14 +1423,14 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Logs)
Try<string> read = os::read(path::join(directory.get(), "stderr"));
ASSERT_SOME(read);
- EXPECT_TRUE(strings::contains(read.get(), "err" + uuid));
- EXPECT_FALSE(strings::contains(read.get(), "out" + uuid));
+ EXPECT_TRUE(containsLine(read.get(), "err" + uuid));
+ EXPECT_FALSE(containsLine(read.get(), "out" + uuid));
read = os::read(path::join(directory.get(), "stdout"));
ASSERT_SOME(read);
- EXPECT_TRUE(strings::contains(read.get(), "out" + uuid));
- EXPECT_FALSE(strings::contains(read.get(), "err" + uuid));
+ EXPECT_TRUE(containsLine(read.get(), "out" + uuid));
+ EXPECT_FALSE(containsLine(read.get(), "err" + uuid));
driver.stop();
driver.join();
@@ -1469,6 +1486,8 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Default_CMD)
const Offer& offer = offers.get()[0];
+ SlaveID slaveId = offer.slave_id();
+
TaskInfo task;
task.set_name("");
task.mutable_task_id()->set_value("1");
@@ -1526,11 +1545,12 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Default_CMD)
// Since we're not passing any command value, we're expecting the
// default entry point to be run which is 'echo' with the default
// command from the image which is 'inky'.
- EXPECT_TRUE(strings::contains(read.get(), "inky"));
+ EXPECT_TRUE(containsLine(read.get(), "inky"));
read = os::read(path::join(directory.get(), "stderr"));
ASSERT_SOME(read);
- EXPECT_FALSE(strings::contains(read.get(), "inky"));
+
+ EXPECT_FALSE(containsLine(read.get(), "inky"));
driver.stop();
driver.join();
@@ -1646,13 +1666,13 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Default_CMD_Override)
// We expect the passed in command value to override the image's
// default command, thus we should see the value of 'uuid' in the
// output instead of the default command which is 'inky'.
- EXPECT_TRUE(strings::contains(read.get(), uuid));
- EXPECT_FALSE(strings::contains(read.get(), "inky"));
+ EXPECT_TRUE(containsLine(read.get(), uuid));
+ EXPECT_FALSE(containsLine(read.get(), "inky"));
read = os::read(path::join(directory.get(), "stderr"));
ASSERT_SOME(read);
- EXPECT_FALSE(strings::contains(read.get(), "inky"));
- EXPECT_FALSE(strings::contains(read.get(), uuid));
+ EXPECT_FALSE(containsLine(read.get(), "inky"));
+ EXPECT_FALSE(containsLine(read.get(), uuid));
driver.stop();
driver.join();
@@ -1769,13 +1789,13 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Default_CMD_Args)
// We expect the passed in command arguments to override the image's
// default command, thus we should see the value of 'uuid' in the
// output instead of the default command which is 'inky'.
- EXPECT_TRUE(strings::contains(read.get(), uuid));
- EXPECT_FALSE(strings::contains(read.get(), "inky"));
+ EXPECT_TRUE(containsLine(read.get(), uuid));
+ EXPECT_FALSE(containsLine(read.get(), "inky"));
read = os::read(path::join(directory.get(), "stderr"));
ASSERT_SOME(read);
- EXPECT_FALSE(strings::contains(read.get(), "inky"));
- EXPECT_FALSE(strings::contains(read.get(), uuid));
+ EXPECT_FALSE(containsLine(read.get(), "inky"));
+ EXPECT_FALSE(containsLine(read.get(), uuid));
driver.stop();
driver.join();
@@ -2235,7 +2255,7 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_PortMapping)
// We expect the uuid that is sent to host port to be written
// to stdout by the docker container running nc -l.
- EXPECT_TRUE(strings::contains(read.get(), uuid));
+ EXPECT_TRUE(containsLine(read.get(), uuid));
driver.stop();
driver.join();