Added pid() in docker/docker.cpp to get the pid of the container.
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/bd8f0637 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/bd8f0637 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/bd8f0637 Branch: refs/heads/master Commit: bd8f063715cac1547b35bfee20d3a117667d3753 Parents: 4406fb5 Author: Yifan Gu <[email protected]> Authored: Mon Jun 23 22:52:52 2014 -0700 Committer: Benjamin Hindman <[email protected]> Committed: Mon Aug 4 15:08:15 2014 -0700 ---------------------------------------------------------------------- src/docker/docker.cpp | 15 +++++++++++++++ src/docker/docker.hpp | 4 ++++ 2 files changed, 19 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/bd8f0637/src/docker/docker.cpp ---------------------------------------------------------------------- diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp index 53c0805..1e4f62f 100644 --- a/src/docker/docker.cpp +++ b/src/docker/docker.cpp @@ -55,6 +55,21 @@ string Docker::Container::name() const return value.as<JSON::String>().value; } +pid_t Docker::Container::pid() const +{ + map<string, JSON::Value>::const_iterator state = + json.values.find("State"); + CHECK(state != json.values.end()); + JSON::Value value = state->second; + CHECK(value.is<JSON::Object>()); + + map<string, JSON::Value>::const_iterator entry = + value.as<JSON::Object>().values.find("Pid"); + CHECK(entry != json.values.end()); + JSON::Value pid = entry->second; + CHECK(pid.is<JSON::Number>()); + return pid_t(pid.as<JSON::Number>().value); +} Future<Option<int> > Docker::run( const string& image, http://git-wip-us.apache.org/repos/asf/mesos/blob/bd8f0637/src/docker/docker.hpp ---------------------------------------------------------------------- diff --git a/src/docker/docker.hpp b/src/docker/docker.hpp index a43fa58..264dc79 100644 --- a/src/docker/docker.hpp +++ b/src/docker/docker.hpp @@ -47,6 +47,10 @@ public: // Returns the name of the container. std::string name() const; + // Returns the Pid of the container. + // Note: If it returns 0, it means the container is not running. + pid_t pid() const; + private: JSON::Object json; // JSON returned from 'docker inspect'. };
