Repository: mesos
Updated Branches:
  refs/heads/master 39b949b31 -> 6d28a8474


Made slave version required in master.cpp.

Slave version is being set by the slave since 0.21.0. Cleaned up the
code in master that expected it to be optional.

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


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

Branch: refs/heads/master
Commit: c8277ef2a7a4ec88b1d09d8cdc35d1cd5e1e0e20
Parents: 48a96ac
Author: Vinod Kone <[email protected]>
Authored: Fri Nov 6 09:28:42 2015 -0800
Committer: Vinod Kone <[email protected]>
Committed: Fri Nov 6 10:09:58 2015 -0800

----------------------------------------------------------------------
 src/master/http.cpp   |  4 +--
 src/master/master.cpp | 64 +++++++++++++++-------------------------------
 src/master/master.hpp |  6 ++---
 3 files changed, 23 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/c8277ef2/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index 9d20346..3b2cded 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -295,10 +295,8 @@ JSON::Object summarize(const Slave& slave)
 
   object.values["attributes"] = model(slave.info.attributes());
   object.values["active"] = slave.active;
+  object.values["version"] = slave.version;
 
-  if (slave.version.isSome()) {
-    object.values["version"] = slave.version.get();
-  }
   return object;
 }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/c8277ef2/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 8107960..bad38ff 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -3906,7 +3906,7 @@ void Master::_registerSlave(
         slaveInfo,
         pid,
         machineId,
-        version.empty() ? Option<string>::none() : version,
+        version,
         Clock::now(),
         checkpointedResources);
 
@@ -4147,7 +4147,7 @@ void Master::_reregisterSlave(
         slaveInfo,
         pid,
         machineId,
-        version.empty() ? Option<string>::none() : version,
+        version,
         Clock::now(),
         checkpointedResources,
         executorInfos,
@@ -5243,51 +5243,27 @@ void Master::reconcile(
         LOG(WARNING) << "Task " << task->task_id()
                      << " of framework " << task->framework_id()
                      << " unknown to the slave " << *slave
-                     << " during re-registration"
-                     << (slave->version.isSome()
-                         ? ": reconciling with the slave"
-                         : ": sending TASK_LOST");
-
-        if (slave->version.isSome()) {
-          // NOTE: Currently the slave doesn't look at the task state
-          // when it reconciles the task state; we include the correct
-          // state for correctness and consistency.
-          const TaskState& state = task->has_status_update_state()
-              ? task->status_update_state()
-              : task->state();
-
-          TaskStatus* status = reconcile.add_statuses();
-          status->mutable_task_id()->CopyFrom(task->task_id());
-          status->mutable_slave_id()->CopyFrom(slave->id);
-          status->set_state(state);
-          status->set_source(TaskStatus::SOURCE_MASTER);
-          status->set_message("Reconciliation request");
-          status->set_reason(TaskStatus::REASON_RECONCILIATION);
-          status->set_timestamp(Clock::now().secs());
-        } else {
-          // TODO(bmahler): Remove this case in 0.22.0.
-          const StatusUpdate& update = protobuf::createStatusUpdate(
-              task->framework_id(),
-              slave->id,
-              task->task_id(),
-              TASK_LOST,
-              TaskStatus::SOURCE_MASTER,
-              None(),
-              "Task is unknown to the slave",
-              TaskStatus::REASON_TASK_UNKNOWN);
-
-          updateTask(task, update);
-          removeTask(task);
-
-          Framework* framework = getFramework(frameworkId);
-          if (framework != NULL) {
-            forward(update, UPID(), framework);
-          }
-        }
+                     << " during re-registration : reconciling with the slave";
+
+        // NOTE: Currently the slave doesn't look at the task state
+        // when it reconciles the task state; we include the correct
+        // state for correctness and consistency.
+        const TaskState& state = task->has_status_update_state()
+            ? task->status_update_state()
+            : task->state();
+
+        TaskStatus* status = reconcile.add_statuses();
+        status->mutable_task_id()->CopyFrom(task->task_id());
+        status->mutable_slave_id()->CopyFrom(slave->id);
+        status->set_state(state);
+        status->set_source(TaskStatus::SOURCE_MASTER);
+        status->set_message("Reconciliation request");
+        status->set_reason(TaskStatus::REASON_RECONCILIATION);
+        status->set_timestamp(Clock::now().secs());
       }
     }
 
-    if (slave->version.isSome() && reconcile.statuses_size() > 0) {
+    if (reconcile.statuses_size() > 0) {
       reregistered.add_reconciliations()->CopyFrom(reconcile);
     }
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/c8277ef2/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index d692185..ead8520 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -111,7 +111,7 @@ struct Slave
   Slave(const SlaveInfo& _info,
         const process::UPID& _pid,
         const MachineID& _machineId,
-        const Option<std::string> _version,
+        const std::string& _version,
         const process::Time& _registeredTime,
         const Resources& _checkpointedResources,
         const std::vector<ExecutorInfo> executorInfos =
@@ -303,10 +303,8 @@ struct Slave
 
   process::UPID pid;
 
-  // The Mesos version of the slave. If set, the slave is >= 0.21.0.
   // TODO(bmahler): Use stout's Version when it can parse labels, etc.
-  // TODO(bmahler): Make this required once it is always set.
-  const Option<std::string> version;
+  const std::string version;
 
   process::Time registeredTime;
   Option<process::Time> reregisteredTime;

Reply via email to