You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bb...@apache.org on 2019/01/11 08:37:44 UTC
[mesos] 01/02: Added resource provider information to v0 agent
state endpoint.
This is an automated email from the ASF dual-hosted git repository.
bbannier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
commit dd2605efabff656cfba0218855d4b2dbfcba3051
Author: Benjamin Bannier <be...@mesosphere.io>
AuthorDate: Fri Jan 11 09:27:58 2019 +0100
Added resource provider information to v0 agent state endpoint.
Review: https://reviews.apache.org/r/69661/
---
src/slave/http.cpp | 34 +++++++++++++++++++++++++++++++---
1 file changed, 31 insertions(+), 3 deletions(-)
diff --git a/src/slave/http.cpp b/src/slave/http.cpp
index 6ef99fb..e0dc091 100644
--- a/src/slave/http.cpp
+++ b/src/slave/http.cpp
@@ -1276,9 +1276,14 @@ Future<Response> Http::state(
}
return ObjectApprovers::create(
- slave->authorizer,
- principal,
- {VIEW_FRAMEWORK, VIEW_TASK, VIEW_EXECUTOR, VIEW_FLAGS, VIEW_ROLE})
+ slave->authorizer,
+ principal,
+ {VIEW_FRAMEWORK,
+ VIEW_TASK,
+ VIEW_EXECUTOR,
+ VIEW_FLAGS,
+ VIEW_ROLE,
+ VIEW_RESOURCE_PROVIDER})
.then(defer(
slave->self(),
[this, request](const Owned<ObjectApprovers>& approvers) -> Response {
@@ -1384,6 +1389,29 @@ Future<Response> Http::state(
"unreserved_resources_allocated",
allocatedResources.unreserved());
+ writer->field(
+ "resource_providers",
+ [this, &approvers](JSON::ArrayWriter* writer) {
+ if (!approvers->approved<VIEW_RESOURCE_PROVIDER>()) {
+ return;
+ }
+
+ foreachvalue (
+ ResourceProvider* resourceProvider,
+ slave->resourceProviders) {
+ agent::Response::GetResourceProviders::ResourceProvider
+ provider;
+
+ *provider.mutable_resource_provider_info() =
+ resourceProvider->info;
+
+ *provider.mutable_total_resources() =
+ resourceProvider->totalResources;
+
+ writer->element(JSON::Protobuf(provider));
+ }
+ });
+
writer->field("attributes", Attributes(slave->info.attributes()));
if (slave->master.isSome()) {