You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by mp...@apache.org on 2016/04/10 02:43:30 UTC

mesos git commit: Allowed setting role in `mesos-execute`.

Repository: mesos
Updated Branches:
  refs/heads/master 9503be289 -> b0571b776


Allowed setting role in `mesos-execute`.

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


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

Branch: refs/heads/master
Commit: b0571b776bf28603420b69a0891861f85ceb9716
Parents: 9503be2
Author: Jian Qiu <qi...@cn.ibm.com>
Authored: Sat Apr 9 17:42:02 2016 -0700
Committer: Michael Park <mp...@apache.org>
Committed: Sat Apr 9 17:42:02 2016 -0700

----------------------------------------------------------------------
 src/cli/execute.cpp | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/b0571b77/src/cli/execute.cpp
----------------------------------------------------------------------
diff --git a/src/cli/execute.cpp b/src/cli/execute.cpp
index df93e92..763dd26 100644
--- a/src/cli/execute.cpp
+++ b/src/cli/execute.cpp
@@ -153,6 +153,11 @@ public:
         "containerizer",
         "Containerizer to be used (ie: docker, mesos)",
         "mesos");
+
+    add(&role,
+        "role",
+        "Role to use when registering",
+        "*");
   }
 
   Option<string> master;
@@ -169,6 +174,7 @@ public:
   Option<string> appc_image;
   Option<string> docker_image;
   string containerizer;
+  string role;
 };
 
 
@@ -264,13 +270,21 @@ protected:
     }
 
     foreach (const Offer& offer, offers) {
-      if (!launched &&
-          Resources(offer.resources()).contains(TASK_RESOURCES.get())) {
+      Resources offered = offer.resources();
+
+      if (!launched && offered.flatten().contains(TASK_RESOURCES.get())) {
         TaskInfo task;
         task.set_name(name);
         task.mutable_task_id()->set_value(name);
         task.mutable_agent_id()->MergeFrom(offer.agent_id());
-        task.mutable_resources()->CopyFrom(TASK_RESOURCES.get());
+
+        // Takes resources first from the specified role, then from '*'.
+        Option<Resources> resources =
+          offered.find(TASK_RESOURCES.get().flatten(frameworkInfo.role()));
+
+        CHECK_SOME(resources);
+
+        task.mutable_resources()->CopyFrom(resources.get());
 
         CommandInfo* commandInfo = task.mutable_command();
 
@@ -642,6 +656,7 @@ int main(int argc, char** argv)
   FrameworkInfo frameworkInfo;
   frameworkInfo.set_user(user.get());
   frameworkInfo.set_name("");
+  frameworkInfo.set_role(flags.role);
   frameworkInfo.set_checkpoint(flags.checkpoint);
 
   Owned<CommandScheduler> scheduler(