Repository: mesos Updated Branches: refs/heads/master 0071a9020 -> e28858eb5
Modifed execute cli to run docker images. Review: https://reviews.apache.org/r/24808 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/e28858eb Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/e28858eb Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/e28858eb Branch: refs/heads/master Commit: e28858eb5b2b0ffbb49cfbb7b7b2c0317d9733b6 Parents: 0071a90 Author: Timothy Chen <[email protected]> Authored: Thu Aug 28 11:44:45 2014 -0700 Committer: Niklas Q. Nielsen <[email protected]> Committed: Thu Aug 28 11:44:45 2014 -0700 ---------------------------------------------------------------------- src/cli/execute.cpp | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/e28858eb/src/cli/execute.cpp ---------------------------------------------------------------------- diff --git a/src/cli/execute.cpp b/src/cli/execute.cpp index 7e20f4c..ddaa20d 100644 --- a/src/cli/execute.cpp +++ b/src/cli/execute.cpp @@ -102,6 +102,11 @@ public: "checkpoint", "Enable checkpointing for the framework (requires slave checkpointing)", false); + + add(&docker_image, + "docker_image", + "Docker image that follows the Docker CLI naming <image>:<tag>." + "(ie: ubuntu, busybox:latest)."); } Option<string> master; @@ -113,6 +118,7 @@ public: Option<string> package; bool overwrite; bool checkpoint; + Option<string> docker_image; }; @@ -123,11 +129,13 @@ public: const string& _name, const string& _command, const string& _resources, - const Option<string>& _uri) + const Option<string>& _uri, + const Option<string>& _dockerImage) : name(_name), command(_command), resources(_resources), uri(_uri), + dockerImage(_dockerImage), launched(false) {} virtual ~CommandScheduler() {} @@ -173,6 +181,17 @@ public: task.mutable_command()->add_uris()->set_value(uri.get()); } + if (dockerImage.isSome()) { + ContainerInfo containerInfo; + containerInfo.set_type(ContainerInfo::DOCKER); + + ContainerInfo::DockerInfo dockerInfo; + dockerInfo.set_image(dockerImage.get()); + + containerInfo.mutable_docker()->CopyFrom(dockerInfo); + task.mutable_container()->CopyFrom(containerInfo); + } + vector<TaskInfo> tasks; tasks.push_back(task); @@ -228,7 +247,7 @@ private: const string command; const string resources; const Option<string> uri; - + const Option<string> dockerImage; bool launched; }; @@ -336,11 +355,18 @@ int main(int argc, char** argv) uri = "hdfs://" + flags.hdfs + path; } + Option<string> dockerImage; + + if (flags.docker_image.isSome()) { + dockerImage = flags.docker_image.get(); + } + CommandScheduler scheduler( flags.name.get(), flags.command.get(), flags.resources, - uri); + uri, + dockerImage); FrameworkInfo framework; framework.set_user(user.get());
