Updated scheduler driver to send RECONCILE call.

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


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

Branch: refs/heads/master
Commit: e3bbdf882209178ee9a945fb851728b424d51e25
Parents: 90ed30d
Author: Vinod Kone <[email protected]>
Authored: Fri Jul 10 15:36:13 2015 -0700
Committer: Vinod Kone <[email protected]>
Committed: Fri Jul 17 10:44:00 2015 -0700

----------------------------------------------------------------------
 src/sched/sched.cpp                | 17 +++++++++++++----
 src/tests/reconciliation_tests.cpp | 18 ++++++++++--------
 2 files changed, 23 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/e3bbdf88/src/sched/sched.cpp
----------------------------------------------------------------------
diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp
index 4099bce..2dfa5c5 100644
--- a/src/sched/sched.cpp
+++ b/src/sched/sched.cpp
@@ -1273,15 +1273,24 @@ protected:
      return;
     }
 
-    ReconcileTasksMessage message;
-    message.mutable_framework_id()->MergeFrom(framework.id());
+    Call call;
+
+    CHECK(framework.has_id());
+    call.mutable_framework_id()->CopyFrom(framework.id());
+    call.set_type(Call::RECONCILE);
+
+    Call::Reconcile* reconcile = call.mutable_reconcile();
 
     foreach (const TaskStatus& status, statuses) {
-      message.add_statuses()->MergeFrom(status);
+      Call::Reconcile::Task* task = reconcile->add_tasks();
+      task->mutable_task_id()->CopyFrom(status.task_id());
+      if (status.has_slave_id()) {
+        task->mutable_slave_id()->CopyFrom(status.slave_id());
+      }
     }
 
     CHECK_SOME(master);
-    send(master.get(), message);
+    send(master.get(), call);
   }
 
 private:

http://git-wip-us.apache.org/repos/asf/mesos/blob/e3bbdf88/src/tests/reconciliation_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/reconciliation_tests.cpp 
b/src/tests/reconciliation_tests.cpp
index 6042d8c..aef245a 100644
--- a/src/tests/reconciliation_tests.cpp
+++ b/src/tests/reconciliation_tests.cpp
@@ -26,6 +26,8 @@
 #include <mesos/mesos.hpp>
 #include <mesos/scheduler.hpp>
 
+#include <mesos/scheduler/scheduler.hpp>
+
 #include <process/clock.hpp>
 #include <process/future.hpp>
 #include <process/pid.hpp>
@@ -446,15 +448,15 @@ TEST_F(ReconciliationTest, SlaveInTransition)
 
   statuses.push_back(status);
 
-  Future<ReconcileTasksMessage> reconcileTasksMessage =
-    FUTURE_PROTOBUF(ReconcileTasksMessage(), _ , _);
+  Future<mesos::scheduler::Call> reconcileCall = FUTURE_CALL(
+      mesos::scheduler::Call(), mesos::scheduler::Call::RECONCILE, _ , _);
 
   Clock::pause();
 
   driver.reconcileTasks(statuses);
 
-  // Make sure the master received the reconcile tasks message.
-  AWAIT_READY(reconcileTasksMessage);
+  // Make sure the master received the reconcile call.
+  AWAIT_READY(reconcileCall);
 
   // The Clock::settle() will ensure that framework would receive
   // a status update if it is sent by the master. In this test it
@@ -587,8 +589,8 @@ TEST_F(ReconciliationTest, ImplicitTerminalTask)
   EXPECT_CALL(exec, shutdown(_))
     .Times(AtMost(1));
 
-  Future<ReconcileTasksMessage> reconcileTasksMessage =
-    FUTURE_PROTOBUF(ReconcileTasksMessage(), _ , _);
+  Future<mesos::scheduler::Call> reconcileCall = FUTURE_CALL(
+      mesos::scheduler::Call(), mesos::scheduler::Call::RECONCILE, _ , _);
 
   Clock::pause();
 
@@ -597,8 +599,8 @@ TEST_F(ReconciliationTest, ImplicitTerminalTask)
   vector<TaskStatus> statuses;
   driver.reconcileTasks(statuses);
 
-  // Make sure the master received the reconcile tasks message.
-  AWAIT_READY(reconcileTasksMessage);
+  // Make sure the master received the reconcile call.
+  AWAIT_READY(reconcileCall);
 
   // The Clock::settle() will ensure that framework would receive
   // a status update if it is sent by the master. In this test it

Reply via email to