You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by an...@apache.org on 2017/07/27 21:41:05 UTC

[3/4] mesos git commit: Added 'FRAMEWORK_REMOVED' event for master streaming api.

Added 'FRAMEWORK_REMOVED' event for master streaming api.

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


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

Branch: refs/heads/master
Commit: bb0e4f2c3ac4a24d995acc14440838b11932b95a
Parents: 77486d7
Author: Zhitao Li <zh...@gmail.com>
Authored: Thu Jul 27 14:31:32 2017 -0700
Committer: Anand Mazumdar <an...@apache.org>
Committed: Thu Jul 27 14:38:35 2017 -0700

----------------------------------------------------------------------
 include/mesos/master/master.proto    |  9 +++++++++
 include/mesos/v1/master/master.proto |  9 +++++++++
 src/common/protobuf_utils.cpp        | 12 ++++++++++++
 src/common/protobuf_utils.hpp        |  4 ++++
 src/master/master.cpp                |  5 +++++
 5 files changed, 39 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/bb0e4f2c/include/mesos/master/master.proto
----------------------------------------------------------------------
diff --git a/include/mesos/master/master.proto b/include/mesos/master/master.proto
index c387504..0e4c30e 100644
--- a/include/mesos/master/master.proto
+++ b/include/mesos/master/master.proto
@@ -482,6 +482,7 @@ message Event {
     AGENT_REMOVED = 5; // See `AgentRemoved` below.
     FRAMEWORK_ADDED = 6; // See `FrameworkAdded` below.
     FRAMEWORK_UPDATED = 7; // See `FrameworkUpdated` below.
+    FRAMEWORK_REMOVED = 8; // See `FrameworkRemoved` below.
 
     // TODO(vinod): Fill in more events.
   }
@@ -524,6 +525,13 @@ message Event {
     required Response.GetFrameworks.Framework framework = 1;
   }
 
+  // Forwarded by the master when a framework is removed. This can happen when
+  // a framework is explicitly teardown by the operator or if it fails to
+  // re-register with the master within the failover timeout.
+  message FrameworkRemoved {
+    required FrameworkInfo framework_info = 1;
+  }
+
   // Forwarded by the master when an agent becomes known to it.
   // This can happen when an agent registered for the first
   // time, or reregistered after a master failover.
@@ -551,4 +559,5 @@ message Event {
   optional AgentRemoved agent_removed = 6;
   optional FrameworkAdded framework_added = 7;
   optional FrameworkUpdated framework_updated = 8;
+  optional FrameworkRemoved framework_removed = 9;
 }

http://git-wip-us.apache.org/repos/asf/mesos/blob/bb0e4f2c/include/mesos/v1/master/master.proto
----------------------------------------------------------------------
diff --git a/include/mesos/v1/master/master.proto b/include/mesos/v1/master/master.proto
index b79143a..c04fd16 100644
--- a/include/mesos/v1/master/master.proto
+++ b/include/mesos/v1/master/master.proto
@@ -482,6 +482,7 @@ message Event {
     AGENT_REMOVED = 5; // See `AgentRemoved` below.
     FRAMEWORK_ADDED = 6; // See `FrameworkAdded` below.
     FRAMEWORK_UPDATED = 7; // See `FrameworkUpdated` below.
+    FRAMEWORK_REMOVED = 8; // See `FrameworkRemoved` below.
 
     // TODO(vinod): Fill in more events.
   }
@@ -525,6 +526,13 @@ message Event {
     required Response.GetFrameworks.Framework framework = 1;
   }
 
+  // Forwarded by the master when a framework is removed. This can happen when
+  // a framework is explicitly teardown by the operator or if it fails to
+  // re-register with the master within the failover timeout.
+  message FrameworkRemoved {
+    required FrameworkInfo framework_info = 1;
+  }
+
   // Forwarded by the master when an agent becomes known to it.
   // This can happen when an agent registered for the first
   // time, or reregistered after a master failover.
@@ -552,4 +560,5 @@ message Event {
   optional AgentRemoved agent_removed = 6;
   optional FrameworkAdded framework_added = 7;
   optional FrameworkUpdated framework_updated = 8;
+  optional FrameworkRemoved framework_removed = 9;
 }

http://git-wip-us.apache.org/repos/asf/mesos/blob/bb0e4f2c/src/common/protobuf_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.cpp b/src/common/protobuf_utils.cpp
index 1ab168a..49d3a22 100644
--- a/src/common/protobuf_utils.cpp
+++ b/src/common/protobuf_utils.cpp
@@ -866,6 +866,18 @@ mesos::master::Event createFrameworkUpdated(
 }
 
 
+mesos::master::Event createFrameworkRemoved(const FrameworkInfo& frameworkInfo)
+{
+  mesos::master::Event event;
+  event.set_type(mesos::master::Event::FRAMEWORK_REMOVED);
+
+  event.mutable_framework_removed()->mutable_framework_info()->CopyFrom(
+      frameworkInfo);
+
+  return event;
+}
+
+
 mesos::master::Response::GetAgents::Agent createAgentResponse(
     const mesos::internal::master::Slave& slave)
 {

http://git-wip-us.apache.org/repos/asf/mesos/blob/bb0e4f2c/src/common/protobuf_utils.hpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.hpp b/src/common/protobuf_utils.hpp
index 2060e52..80d2edd 100644
--- a/src/common/protobuf_utils.hpp
+++ b/src/common/protobuf_utils.hpp
@@ -314,6 +314,10 @@ mesos::master::Event createFrameworkUpdated(
     const mesos::internal::master::Framework& framework);
 
 
+// Helper for creating a 'FRAMEWORK_REMOVED' event from a `FrameworkInfo`.
+mesos::master::Event createFrameworkRemoved(const FrameworkInfo& frameworkInfo);
+
+
 // Helper for creating an `Agent` response.
 mesos::master::Response::GetAgents::Agent createAgentResponse(
     const mesos::internal::master::Slave& slave);

http://git-wip-us.apache.org/repos/asf/mesos/blob/bb0e4f2c/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index a80cc5e..dbf5dac 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -8499,6 +8499,11 @@ void Master::removeFramework(Framework* framework)
 
   // The framework pointer is now owned by `frameworks.completed`.
   frameworks.completed.set(framework->id(), Owned<Framework>(framework));
+
+  if (!subscribers.subscribed.empty()) {
+    subscribers.send(
+        protobuf::master::event::createFrameworkRemoved(framework->info));
+  }
 }