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 2015/07/10 00:02:29 UTC
mesos git commit: Ensure StatusUpdate.uuid is set for backwards
compatiblity with 0.22.x scheduler drivers.
Repository: mesos
Updated Branches:
refs/heads/master 83ad6e62b -> b56b3b049
Ensure StatusUpdate.uuid is set for backwards compatiblity with 0.22.x scheduler drivers.
Review: https://reviews.apache.org/r/36361
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b56b3b04
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b56b3b04
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b56b3b04
Branch: refs/heads/master
Commit: b56b3b0499934c028e21c9659f3e7a67dabb827b
Parents: 83ad6e6
Author: Benjamin Mahler <be...@gmail.com>
Authored: Thu Jul 9 11:15:36 2015 -0700
Committer: Benjamin Mahler <be...@gmail.com>
Committed: Thu Jul 9 15:02:20 2015 -0700
----------------------------------------------------------------------
src/common/protobuf_utils.cpp | 9 +++++++++
src/master/master.cpp | 2 +-
src/sched/sched.cpp | 5 +++--
src/scheduler/scheduler.cpp | 2 +-
4 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/b56b3b04/src/common/protobuf_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.cpp b/src/common/protobuf_utils.cpp
index 8a51daa..9ac81c3 100644
--- a/src/common/protobuf_utils.cpp
+++ b/src/common/protobuf_utils.cpp
@@ -83,6 +83,15 @@ StatusUpdate createStatusUpdate(
if (uuid.isSome()) {
update.set_uuid(uuid.get().toBytes());
status->set_uuid(uuid.get().toBytes());
+ } else {
+ // Note that in 0.22.x, the StatusUpdate.uuid was required
+ // even though the scheduler driver ignores it for master
+ // and scheduler driver generated updates. So we continue
+ // to "set" it here so that updates coming from a 0.23.x
+ // master can be parsed by a 0.22.x scheduler driver.
+ //
+ // TODO(bmahler): In 0.24.x, leave the uuid unset.
+ update.set_uuid("");
}
if (reason.isSome()) {
http://git-wip-us.apache.org/repos/asf/mesos/blob/b56b3b04/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 35e1475..b877676 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -5148,7 +5148,7 @@ void Master::updateTask(Task* task, const StatusUpdate& update)
// Set the status update state and uuid for the task. Note that
// master-generated updates are terminal and do not have a uuid
// (in which case the master also calls removeTask()).
- if (update.has_uuid()) {
+ if (update.has_uuid() && update.uuid() != "") {
task->set_status_update_state(status.state());
task->set_status_update_uuid(update.uuid());
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/b56b3b04/src/sched/sched.cpp
----------------------------------------------------------------------
diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp
index a748686..e372a15 100644
--- a/src/sched/sched.cpp
+++ b/src/sched/sched.cpp
@@ -702,7 +702,7 @@ protected:
// TODO(bmahler): For the HTTP API, we will have to update the
// master and slave to ensure the 'uuid' in TaskStatus is set
// correctly.
- if (!update.has_uuid()) {
+ if (!update.has_uuid() || update.uuid() == "") {
status.clear_uuid();
} else if (from == UPID() || pid == UPID()) {
status.clear_uuid();
@@ -730,7 +730,8 @@ protected:
}
// See above for when we don't need to acknowledge.
- if (update.has_uuid() && from != UPID() && pid != UPID()) {
+ if (update.has_uuid() && update.uuid() != "" &&
+ from != UPID() && pid != UPID()) {
// We drop updates while we're disconnected.
CHECK(connected);
CHECK_SOME(master);
http://git-wip-us.apache.org/repos/asf/mesos/blob/b56b3b04/src/scheduler/scheduler.cpp
----------------------------------------------------------------------
diff --git a/src/scheduler/scheduler.cpp b/src/scheduler/scheduler.cpp
index d5ac04c..ac23585 100644
--- a/src/scheduler/scheduler.cpp
+++ b/src/scheduler/scheduler.cpp
@@ -620,7 +620,7 @@ protected:
// TODO(bmahler): For the HTTP API, we will have to update the
// master and slave to ensure the 'uuid' in TaskStatus is set
// correctly.
- if (!message.update().has_uuid()) {
+ if (!message.update().has_uuid() || message.update().uuid() == "") {
update->mutable_status()->clear_uuid();
} else if (UPID(message.pid()) == UPID()) {
update->mutable_status()->clear_uuid();