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;