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 2016/10/07 01:42:58 UTC

[3/4] mesos git commit: Implemented `AGENT_ADDED` and `AGENT_REMOVED` events.

Implemented `AGENT_ADDED` and `AGENT_REMOVED` events.

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


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

Branch: refs/heads/master
Commit: a68671a9ba696a65c14750c8b3e4c4f0e0188a86
Parents: c9c7f33
Author: Zhitao Li <zh...@gmail.com>
Authored: Thu Oct 6 14:45:30 2016 -0700
Committer: Anand Mazumdar <an...@apache.org>
Committed: Thu Oct 6 18:42:44 2016 -0700

----------------------------------------------------------------------
 src/common/protobuf_utils.cpp | 25 +++++++++++++++++++++++++
 src/common/protobuf_utils.hpp |  9 +++++++++
 src/master/master.cpp         |  8 ++++++++
 3 files changed, 42 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/a68671a9/src/common/protobuf_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.cpp b/src/common/protobuf_utils.cpp
index 5d46672..f09b069 100644
--- a/src/common/protobuf_utils.cpp
+++ b/src/common/protobuf_utils.cpp
@@ -529,6 +529,31 @@ mesos::master::Response::GetAgents::Agent createAgentResponse(
   return agent;
 }
 
+
+mesos::master::Event createAgentAdded(
+    const mesos::internal::master::Slave& slave)
+{
+  mesos::master::Event event;
+  event.set_type(mesos::master::Event::AGENT_ADDED);
+
+  event.mutable_agent_added()->mutable_agent()->CopyFrom(
+      createAgentResponse(slave));
+
+  return event;
+}
+
+
+mesos::master::Event createAgentRemoved(const SlaveID& slaveId)
+{
+  mesos::master::Event event;
+  event.set_type(mesos::master::Event::AGENT_REMOVED);
+
+  event.mutable_agent_removed()->mutable_agent_id()->CopyFrom(
+      slaveId);
+
+  return event;
+}
+
 } // namespace event {
 } // namespace master {
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a68671a9/src/common/protobuf_utils.hpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.hpp b/src/common/protobuf_utils.hpp
index 5895da7..96df060 100644
--- a/src/common/protobuf_utils.hpp
+++ b/src/common/protobuf_utils.hpp
@@ -187,6 +187,15 @@ mesos::master::Event createTaskAdded(const Task& task);
 mesos::master::Response::GetAgents::Agent createAgentResponse(
     const mesos::internal::master::Slave& slave);
 
+
+// Helper for creating an `AGENT_ADDED` event from a `Slave`.
+mesos::master::Event createAgentAdded(
+    const mesos::internal::master::Slave& slave);
+
+
+// Helper for creating an `AGENT_REMOVED` event from a `SlaveID`.
+mesos::master::Event createAgentRemoved(const SlaveID& slaveId);
+
 } // namespace event {
 } // namespace master {
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a68671a9/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 02a2fb2..c7e74df 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -7341,6 +7341,10 @@ void Master::addSlave(
       unavailability,
       slave->totalResources,
       slave->usedResources);
+
+  if (!subscribers.subscribed.empty()) {
+    subscribers.send(protobuf::master::event::createAgentAdded(*slave));
+  }
 }
 
 
@@ -7507,6 +7511,10 @@ void Master::_removeSlave(
 
   sendSlaveLost(slave->info);
 
+  if (!subscribers.subscribed.empty()) {
+    subscribers.send(protobuf::master::event::createAgentRemoved(slave->id));
+  }
+
   delete slave;
 }