You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2016/01/19 01:12:33 UTC

[2/9] mesos git commit: Added docker image manifest parsing functions for strings.

Added docker image manifest parsing functions for strings.

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


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

Branch: refs/heads/master
Commit: f07079904270eb4685eba57c537d59092d52543a
Parents: 6815d3f
Author: Jie Yu <yu...@gmail.com>
Authored: Tue Jan 12 16:53:51 2016 -0800
Committer: Jie Yu <yu...@gmail.com>
Committed: Mon Jan 18 16:09:14 2016 -0800

----------------------------------------------------------------------
 include/mesos/docker/spec.hpp | 12 ++++++++++++
 src/docker/spec.cpp           | 22 ++++++++++++++++++++++
 2 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/f0707990/include/mesos/docker/spec.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/docker/spec.hpp b/include/mesos/docker/spec.hpp
index 61b55b4..b42f422 100644
--- a/include/mesos/docker/spec.hpp
+++ b/include/mesos/docker/spec.hpp
@@ -64,6 +64,12 @@ Option<Error> validate(const ImageManifest& manifest);
  */
 Try<ImageManifest> parse(const JSON::Object& json);
 
+
+/**
+ * Returns the docker v1 image manifest from the given string.
+ */
+Try<ImageManifest> parse(const std::string& s);
+
 } // namespace v1 {
 
 
@@ -81,6 +87,12 @@ Option<Error> validate(const ImageManifest& manifest);
  */
 Try<ImageManifest> parse(const JSON::Object& json);
 
+
+/**
+ * Returns the docker v2 image manifest from the given string.
+ */
+Try<ImageManifest> parse(const std::string& s);
+
 } // namespace v2 {
 } // namespace spec {
 } // namespace docker {

http://git-wip-us.apache.org/repos/asf/mesos/blob/f0707990/src/docker/spec.cpp
----------------------------------------------------------------------
diff --git a/src/docker/spec.cpp b/src/docker/spec.cpp
index 29d2f11..1f7adf7 100644
--- a/src/docker/spec.cpp
+++ b/src/docker/spec.cpp
@@ -106,6 +106,17 @@ Try<ImageManifest> parse(const JSON::Object& json)
   return manifest.get();
 }
 
+
+Try<ImageManifest> parse(const string& s)
+{
+  Try<JSON::Object> json = JSON::parse<JSON::Object>(s);
+  if (json.isError()) {
+    return Error("JSON parse failed: " + json.error());
+  }
+
+  return parse(json.get());
+}
+
 } // namespace v1 {
 
 
@@ -180,6 +191,17 @@ Try<ImageManifest> parse(const JSON::Object& json)
   return manifest.get();
 }
 
+
+Try<ImageManifest> parse(const string& s)
+{
+  Try<JSON::Object> json = JSON::parse<JSON::Object>(s);
+  if (json.isError()) {
+    return Error("JSON parse failed: " + json.error());
+  }
+
+  return parse(json.get());
+}
+
 } // namespace v2 {
 } // namespace spec {
 } // namespace docker {