You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2014/08/05 00:09:33 UTC
[12/43] git commit: Modify validate Docker to call 'info' instead.
Modify validate Docker to call 'info' instead.
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/9bd535e8
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/9bd535e8
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/9bd535e8
Branch: refs/heads/master
Commit: 9bd535e81b1bf8526f916cdcdd3ac1d1e7164a8f
Parents: d60cc83
Author: Timothy Chen <tn...@gmail.com>
Authored: Wed Jun 25 06:56:57 2014 +0000
Committer: Benjamin Hindman <be...@gmail.com>
Committed: Mon Aug 4 15:08:15 2014 -0700
----------------------------------------------------------------------
src/docker/docker.cpp | 37 +++++++++++++++++++++++++++++++++----
src/docker/docker.hpp | 2 ++
src/tests/environment.cpp | 8 ++++++++
3 files changed, 43 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/9bd535e8/src/docker/docker.cpp
----------------------------------------------------------------------
diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp
index 500517c..1e3ed71 100644
--- a/src/docker/docker.cpp
+++ b/src/docker/docker.cpp
@@ -23,12 +23,12 @@ using std::vector;
Try<Nothing> Docker::validateDocker(const Docker &docker)
{
- Future<list<Docker::Container> > containers = docker.ps();
+ Future<std::string> info = docker.info();
- if (!containers.await(Seconds(3))) {
+ if (!info.await(Seconds(3))) {
return Error("Failed to use Docker: Timed out");
- } else if (containers.isFailed()) {
- return Error("Failed to use Docker: " + containers.failure());
+ } else if (info.isFailed()) {
+ return Error("Failed to use Docker: " + info.failure());
}
return Nothing();
@@ -300,3 +300,32 @@ Future<list<Docker::Container> > Docker::_ps(
return collect(futures);
}
+
+Future<std::string> Docker::info() const
+{
+ std::string cmd = path + " info";
+
+ VLOG(1) << "Running " << cmd;
+
+ Try<Subprocess> s = subprocess(
+ cmd,
+ Subprocess::PIPE(),
+ Subprocess::PIPE(),
+ Subprocess::PIPE());
+
+ if (s.isError()) {
+ return Failure(s.error());
+ }
+
+ Result<string> output = os::read(s.get().out().get());
+
+ if (output.isError()) {
+ // TODO(benh): Include stderr in error message.
+ return Failure("Failed to read output: " + output.error());
+ } else if (output.isNone()) {
+ // TODO(benh): Include stderr in error message.
+ return Failure("No output available");
+ }
+
+ return output.get();
+}
http://git-wip-us.apache.org/repos/asf/mesos/blob/9bd535e8/src/docker/docker.hpp
----------------------------------------------------------------------
diff --git a/src/docker/docker.hpp b/src/docker/docker.hpp
index b0d0a3a..080e341 100644
--- a/src/docker/docker.hpp
+++ b/src/docker/docker.hpp
@@ -81,6 +81,8 @@ public:
process::Future<std::list<Container> > ps(
const bool all = true) const;
+ process::Future<std::string> info() const;
+
private:
// Continuations.
static process::Future<Container> _inspect(
http://git-wip-us.apache.org/repos/asf/mesos/blob/9bd535e8/src/tests/environment.cpp
----------------------------------------------------------------------
diff --git a/src/tests/environment.cpp b/src/tests/environment.cpp
index 5c14cca..11a08e3 100644
--- a/src/tests/environment.cpp
+++ b/src/tests/environment.cpp
@@ -133,6 +133,14 @@ static bool enable(const ::testing::TestInfo& test)
if (strings::contains(name, "DOCKER_")) {
Docker docker("docker");
Try<Nothing> validate = Docker::validateDocker(docker);
+ if (validate.isError()) {
+ std::cerr
+ << "-------------------------------------------------------------\n"
+ << "Skipping Docker tests because validation failed\n"
+ << "[Error] " + validate.error() + "\n"
+ << "-------------------------------------------------------------"
+ << std::endl;
+ }
return !validate.isError();
}