You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2016/12/10 01:03:33 UTC
mesos git commit: Updated master and agent endpoints to expose
FrameworkInfo::roles.
Repository: mesos
Updated Branches:
refs/heads/master 244f593ff -> 8a6bdb8e6
Updated master and agent endpoints to expose FrameworkInfo::roles.
Review: https://reviews.apache.org/r/54529/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/8a6bdb8e
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/8a6bdb8e
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/8a6bdb8e
Branch: refs/heads/master
Commit: 8a6bdb8e69fc7419b5b93fd95d18d6bcae30fa68
Parents: 244f593
Author: Benjamin Bannier <be...@mesosphere.io>
Authored: Fri Dec 9 16:43:10 2016 -0800
Committer: Benjamin Mahler <bm...@apache.org>
Committed: Fri Dec 9 17:02:57 2016 -0800
----------------------------------------------------------------------
src/master/http.cpp | 13 ++++++++++++-
src/slave/http.cpp | 13 ++++++++++++-
2 files changed, 24 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/8a6bdb8e/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index d8cff31..d52806d 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -207,7 +207,6 @@ struct FullFrameworkWriter {
writer->field("user", framework_->info.user());
writer->field("failover_timeout", framework_->info.failover_timeout());
writer->field("checkpoint", framework_->info.checkpoint());
- writer->field("role", framework_->info.role());
writer->field("registered_time", framework_->registeredTime.secs());
writer->field("unregistered_time", framework_->unregisteredTime.secs());
@@ -226,6 +225,18 @@ struct FullFrameworkWriter {
writer->field("reregistered_time", framework_->reregisteredTime.secs());
}
+ // For multi-role frameworks the `role` field will be unset.
+ // Note that we could set `roles` here both both cases, which
+ // would make tooling simpler (only need to look for `roles`).
+ // However, we opted to just mirror the protobuf akin to how
+ // generic protobuf -> JSON translation works.
+ if (protobuf::frameworkHasCapability(
+ framework_->info, FrameworkInfo::Capability::MULTI_ROLE)) {
+ writer->field("roles", framework_->info.roles());
+ } else {
+ writer->field("role", framework_->info.role());
+ }
+
// Model all of the tasks associated with a framework.
writer->field("tasks", [this](JSON::ArrayWriter* writer) {
foreachvalue (const TaskInfo& taskInfo, framework_->pendingTasks) {
http://git-wip-us.apache.org/repos/asf/mesos/blob/8a6bdb8e/src/slave/http.cpp
----------------------------------------------------------------------
diff --git a/src/slave/http.cpp b/src/slave/http.cpp
index f672a4c..372cd61 100644
--- a/src/slave/http.cpp
+++ b/src/slave/http.cpp
@@ -238,9 +238,20 @@ struct FrameworkWriter
writer->field("user", framework_->info.user());
writer->field("failover_timeout", framework_->info.failover_timeout());
writer->field("checkpoint", framework_->info.checkpoint());
- writer->field("role", framework_->info.role());
writer->field("hostname", framework_->info.hostname());
+ // For multi-role frameworks the `role` field will be unset.
+ // Note that we could set `roles` here both both cases, which
+ // would make tooling simpler (only need to look for `roles`).
+ // However, we opted to just mirror the protobuf akin to how
+ // generic protobuf -> JSON translation works.
+ if (protobuf::frameworkHasCapability(
+ framework_->info, FrameworkInfo::Capability::MULTI_ROLE)) {
+ writer->field("roles", framework_->info.roles());
+ } else {
+ writer->field("role", framework_->info.role());
+ }
+
writer->field("executors", [this](JSON::ArrayWriter* writer) {
foreachvalue (Executor* executor, framework_->executors) {
if (!approveViewExecutorInfo(