You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2013/11/02 03:03:53 UTC

git commit: Modified mesos-execute so that it reports the framework id and task id.

Updated Branches:
  refs/heads/master 006b712ba -> b12ef3fb2


Modified mesos-execute so that it reports the framework id and task id.

From: Shingo Omura <ev...@gmail.com>
Review: https://reviews.apache.org/r/15161


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

Branch: refs/heads/master
Commit: b12ef3fb201897e22c84b70130415a8a80e66c67
Parents: 006b712
Author: Benjamin Mahler <bm...@twitter.com>
Authored: Fri Nov 1 18:54:32 2013 -0700
Committer: Benjamin Mahler <bm...@twitter.com>
Committed: Fri Nov 1 18:55:43 2013 -0700

----------------------------------------------------------------------
 src/cli/execute.cpp | 63 +++++++++++++++++++++++++++---------------------
 1 file changed, 36 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/b12ef3fb/src/cli/execute.cpp
----------------------------------------------------------------------
diff --git a/src/cli/execute.cpp b/src/cli/execute.cpp
index ac2f299..c46e3db 100644
--- a/src/cli/execute.cpp
+++ b/src/cli/execute.cpp
@@ -30,6 +30,9 @@
 #include <stout/option.hpp>
 #include <stout/os.hpp>
 
+#include <common/type_utils.hpp>
+#include <common/protobuf_utils.hpp>
+
 #include "hdfs/hdfs.hpp"
 
 using namespace mesos;
@@ -124,13 +127,17 @@ public:
   virtual ~CommandScheduler() {}
 
   virtual void registered(
-      SchedulerDriver*,
-      const FrameworkID&,
-      const MasterInfo&) {}
+      SchedulerDriver* _driver,
+      const FrameworkID& _frameworkId,
+      const MasterInfo& _masterInfo) {
+    cout << "Framework registered with " << _frameworkId << endl;
+  }
 
   virtual void reregistered(
-      SchedulerDriver*,
-      const MasterInfo& masterInfo) {}
+      SchedulerDriver* _driver,
+      const MasterInfo& _masterInfo) {
+    cout << "Framework re-registered" << endl;
+  }
 
   virtual void disconnected(
       SchedulerDriver* driver) {}
@@ -148,30 +155,30 @@ public:
       return;
     }
 
-    if (launched) {
-      foreach (const Offer& offer, offers) {
+    foreach (const Offer& offer, offers) {
+      if (!launched && TASK_RESOURCES.get() <= offer.resources()) {
+        TaskInfo task;
+        task.set_name(name);
+        task.mutable_task_id()->set_value(name);
+        task.mutable_slave_id()->MergeFrom(offer.slave_id());
+        task.mutable_resources()->CopyFrom(TASK_RESOURCES.get());
+        task.mutable_command()->set_value(command);
+        if (uri.isSome()) {
+          task.mutable_command()->add_uris()->set_value(uri.get());
+        }
+
+        vector<TaskInfo> tasks;
+        tasks.push_back(task);
+
+        driver->launchTasks(offer.id(), tasks);
+        cout << "task " << name << " submitted to slave "
+             << offer.slave_id() << endl;
+
+        launched = true;
+      } else {
         driver->declineOffer(offer.id());
       }
     }
-
-    const Offer& offer = offers.front();
-
-    // TODO(benh): Make sure offer has enough resources.
-
-    TaskInfo task;
-    task.set_name(name);
-    task.mutable_task_id()->set_value(name);
-    task.mutable_slave_id()->MergeFrom(offer.slave_id());
-    task.mutable_resources()->CopyFrom(TASK_RESOURCES.get());
-    task.mutable_command()->set_value(command);
-    if (uri.isSome()) task.mutable_command()->add_uris()->set_value(uri.get());
-
-    vector<TaskInfo> tasks;
-    tasks.push_back(task);
-
-    driver->launchTasks(offer.id(), tasks);
-
-    launched = true;
   }
 
   virtual void offerRescinded(
@@ -183,7 +190,9 @@ public:
       const TaskStatus& status)
   {
     CHECK_EQ(name, status.task_id().value());
-    if (status.state() == TASK_FINISHED || status.state() == TASK_FAILED) {
+    cout << "Received status update " << status.state()
+         << " for task " << status.task_id() << endl;
+    if (protobuf::isTerminalState(status.state())) {
       driver->stop();
     }
   }