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:57 UTC

[2/4] mesos git commit: Added helper function `createAgentResponse`.

Added helper function `createAgentResponse`.

This helper would be used by `_getAgents()` initially. Later,
`createAgentAdded()` would use this helper too to avoid
duplicating common code.

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


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

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

----------------------------------------------------------------------
 src/common/protobuf_utils.cpp | 37 +++++++++++++++++++++++++++++++++++++
 src/common/protobuf_utils.hpp | 11 +++++++++++
 src/master/http.cpp           | 27 +--------------------------
 3 files changed, 49 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/c9c7f33e/src/common/protobuf_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.cpp b/src/common/protobuf_utils.cpp
index 1f08868..5d46672 100644
--- a/src/common/protobuf_utils.cpp
+++ b/src/common/protobuf_utils.cpp
@@ -44,6 +44,8 @@
 
 #include "common/protobuf_utils.hpp"
 
+#include "master/master.hpp"
+
 #include "messages/messages.hpp"
 
 using std::string;
@@ -492,6 +494,41 @@ mesos::master::Event createTaskAdded(const Task& task)
   return event;
 }
 
+
+mesos::master::Response::GetAgents::Agent createAgentResponse(
+    const mesos::internal::master::Slave& slave)
+{
+  mesos::master::Response::GetAgents::Agent agent;
+
+  agent.mutable_agent_info()->CopyFrom(slave.info);
+
+  agent.set_pid(string(slave.pid));
+  agent.set_active(slave.active);
+  agent.set_version(slave.version);
+
+  agent.mutable_registered_time()->set_nanoseconds(
+      slave.registeredTime.duration().ns());
+
+  if (slave.reregisteredTime.isSome()) {
+    agent.mutable_reregistered_time()->set_nanoseconds(
+        slave.reregisteredTime.get().duration().ns());
+  }
+
+  foreach (const Resource& resource, slave.totalResources) {
+    agent.add_total_resources()->CopyFrom(resource);
+  }
+
+  foreach (const Resource& resource, Resources::sum(slave.usedResources)) {
+    agent.add_allocated_resources()->CopyFrom(resource);
+  }
+
+  foreach (const Resource& resource, slave.offeredResources) {
+    agent.add_offered_resources()->CopyFrom(resource);
+  }
+
+  return agent;
+}
+
 } // namespace event {
 } // namespace master {
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/c9c7f33e/src/common/protobuf_utils.hpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.hpp b/src/common/protobuf_utils.hpp
index 0c6405f..5895da7 100644
--- a/src/common/protobuf_utils.hpp
+++ b/src/common/protobuf_utils.hpp
@@ -47,6 +47,12 @@ struct UPID;
 
 namespace mesos {
 namespace internal {
+
+namespace master {
+// Forward declaration (in lieu of an include).
+struct Slave;
+} // namespace master {
+
 namespace protobuf {
 
 bool frameworkHasCapability(
@@ -176,6 +182,11 @@ mesos::master::Event createTaskUpdated(
 // Helper for creating a `TASK_ADDED` event from a `Task`.
 mesos::master::Event createTaskAdded(const Task& task);
 
+
+// Helper for creating an `Agent` response.
+mesos::master::Response::GetAgents::Agent createAgentResponse(
+    const mesos::internal::master::Slave& slave);
+
 } // namespace event {
 } // namespace master {
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/c9c7f33e/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index 402b5fd..bb9c873 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -2308,32 +2308,7 @@ mesos::master::Response::GetAgents Master::Http::_getAgents() const
   mesos::master::Response::GetAgents getAgents;
   foreachvalue (const Slave* slave, master->slaves.registered) {
     mesos::master::Response::GetAgents::Agent* agent = getAgents.add_agents();
-
-    agent->mutable_agent_info()->CopyFrom(slave->info);
-
-    agent->set_pid(string(slave->pid));
-    agent->set_active(slave->active);
-    agent->set_version(slave->version);
-
-    agent->mutable_registered_time()->set_nanoseconds(
-        slave->registeredTime.duration().ns());
-
-    if (slave->reregisteredTime.isSome()) {
-      agent->mutable_reregistered_time()->set_nanoseconds(
-          slave->reregisteredTime.get().duration().ns());
-    }
-
-    foreach (const Resource& resource, slave->totalResources) {
-      agent->add_total_resources()->CopyFrom(resource);
-    }
-
-    foreach (const Resource& resource, Resources::sum(slave->usedResources)) {
-      agent->add_allocated_resources()->CopyFrom(resource);
-    }
-
-    foreach (const Resource& resource, slave->offeredResources) {
-      agent->add_offered_resources()->CopyFrom(resource);
-    }
+    agent->CopyFrom(protobuf::master::event::createAgentResponse(*slave));
   }
 
   return getAgents;