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 {