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
