Repository: mesos
Updated Branches:
  refs/heads/master b090b0b4b -> 6760601cb


Change docker version parsing.

Review: https://reviews.apache.org/r/36128


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/6760601c
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/6760601c
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/6760601c

Branch: refs/heads/master
Commit: 6760601cbe0b737047b75a8b058cba3fb892d128
Parents: b090b0b
Author: Isabel Jimenez <[email protected]>
Authored: Thu Jul 2 11:00:33 2015 -0700
Committer: Timothy Chen <[email protected]>
Committed: Thu Jul 2 11:00:34 2015 -0700

----------------------------------------------------------------------
 src/docker/docker.cpp | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/6760601c/src/docker/docker.cpp
----------------------------------------------------------------------
diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp
index cbcb16e..235ac4a 100644
--- a/src/docker/docker.cpp
+++ b/src/docker/docker.cpp
@@ -147,7 +147,7 @@ void commandDiscarded(const Subprocess& s, const string& 
cmd)
 
 Future<Version> Docker::version() const
 {
-  string cmd = path + " version";
+  string cmd = path + " --version";
 
   Try<Subprocess> s = subprocess(
       cmd,
@@ -186,14 +186,17 @@ Future<Version> Docker::_version(const string& cmd, const 
Subprocess& s)
 
 Future<Version> Docker::__version(const Future<string>& output)
 {
-  foreach (string line, strings::split(output.get(), "\n")) {
-    line = strings::trim(line);
-    if (strings::startsWith(line, "Client version: ")) {
-      line = line.substr(strlen("Client version: "));
-      Try<Version> version = Version::parse(line);
+  vector<string> parts = strings::split(output.get(), ",");
+
+  if (!parts.empty()) {
+    vector<string> subParts = strings::split(parts.front(), " ");
+
+    if (!subParts.empty()) {
+      Try<Version> version = Version::parse(subParts.back());
 
       if (version.isError()) {
-        return Failure("Failed to parse docker version: " + version.error());
+        return Failure("Failed to parse docker version: " +
+                       version.error());
       }
 
       return version;

Reply via email to