This is an automated email from the ASF dual-hosted git repository. bmahler pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 4a58fc791f65e61414e76e0803e28985ed19ccbf Author: Benjamin Mahler <[email protected]> AuthorDate: Wed Jul 10 19:56:23 2019 -0400 Updated /role 'resources' to omit 0 values and include non-scalars. To be consistent with quota and quota consumption, as well as to include resoures outside of {cpus,mem,disk,gpus}, this updates the field to be filled based on ResourceQuantities and include non-scalars. This should also help performance a bit. Review: https://reviews.apache.org/r/71051 --- src/master/readonly_handler.cpp | 13 +++++++------ src/tests/role_tests.cpp | 39 ++++++++++----------------------------- 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/src/master/readonly_handler.cpp b/src/master/readonly_handler.cpp index 27965e3..5f0ad1d 100644 --- a/src/master/readonly_handler.cpp +++ b/src/master/readonly_handler.cpp @@ -739,12 +739,13 @@ process::http::Response Master::ReadOnlyHandler::roles( writer->field("consumed", consumed); }); - if (role.isNone()) { - writer->field("resources", Resources()); - } else { - writer->field( - "resources", (*role)->allocatedAndOfferedResources()); - } + const ResourceQuantities allocated = role.isSome() ? + (*role)->allocated() : ResourceQuantities(); + + const ResourceQuantities offered = role.isSome() ? + (*role)->offered() : ResourceQuantities(); + + writer->field("resources", allocated + offered); if (role.isNone()) { writer->field("frameworks", [](JSON::ArrayWriter*) {}); diff --git a/src/tests/role_tests.cpp b/src/tests/role_tests.cpp index 63198b3..01c8014 100644 --- a/src/tests/role_tests.cpp +++ b/src/tests/role_tests.cpp @@ -348,9 +348,7 @@ TEST_F(RoleTest, EndpointNoFrameworks) " {" " \"frameworks\": []," " \"name\": \"*\"," - " \"resources\": {" - " \"cpus\": 0, \"disk\": 0, \"gpus\": 0, \"mem\": 0" - " }," + " \"resources\": {}," " \"quota\": {" " \"role\": \"*\"," " \"consumed\": {}," @@ -362,9 +360,7 @@ TEST_F(RoleTest, EndpointNoFrameworks) " {" " \"frameworks\": []," " \"name\": \"role1\"," - " \"resources\": {" - " \"cpus\": 0, \"disk\": 0, \"gpus\": 0, \"mem\": 0" - " }," + " \"resources\": {}," " \"quota\": {" " \"role\": \"role1\"," " \"consumed\": {}," @@ -376,9 +372,7 @@ TEST_F(RoleTest, EndpointNoFrameworks) " {" " \"frameworks\": []," " \"name\": \"role2\"," - " \"resources\": {" - " \"cpus\": 0, \"disk\": 0, \"gpus\": 0, \"mem\": 0" - " }," + " \"resources\": {}," " \"quota\": {" " \"role\": \"role2\"," " \"consumed\": {}," @@ -607,8 +601,7 @@ TEST_F(RoleTest, RolesEndpointContainsConsumedQuota) " \"resources\": {" " \"cpus\": 1111.0," " \"mem\": 11110.0," - " \"disk\": 0," - " \"gpus\": 0" + " \"ports\": 1100.0" " }," " \"quota\": {" " \"consumed\": {" @@ -693,9 +686,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(RoleTest, EndpointImplicitRolesWeights) " {" " \"frameworks\": [\"" + frameworkId1->value() + "\"]," " \"name\": \"roleX\"," - " \"resources\": {" - " \"cpus\": 0, \"disk\": 0, \"gpus\": 0, \"mem\": 0" - " }," + " \"resources\": {}," " \"quota\": {" " \"role\": \"roleX\"," " \"consumed\": {}," @@ -707,9 +698,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(RoleTest, EndpointImplicitRolesWeights) " {" " \"frameworks\": []," " \"name\": \"roleY\"," - " \"resources\": {" - " \"cpus\": 0, \"disk\": 0, \"gpus\": 0, \"mem\": 0" - " }," + " \"resources\": {}," " \"quota\": {" " \"role\": \"roleY\"," " \"consumed\": {}," @@ -721,9 +710,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(RoleTest, EndpointImplicitRolesWeights) " {" " \"frameworks\": [\"" + frameworkId2->value() + "\"]," " \"name\": \"roleZ\"," - " \"resources\": {" - " \"cpus\": 0, \"disk\": 0, \"gpus\": 0, \"mem\": 0" - " }," + " \"resources\": {}," " \"quota\": {" " \"role\": \"roleZ\"," " \"consumed\": {}," @@ -799,9 +786,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(RoleTest, EndpointImplicitRolesQuotas) " {" " \"frameworks\": []," " \"name\": \"non-existent-role\"," - " \"resources\": {" - " \"cpus\": 0, \"disk\": 0, \"gpus\": 0, \"mem\": 0" - " }," + " \"resources\": {}," " \"quota\": {" " \"role\": \"non-existent-role\"," " \"consumed\": {}," @@ -902,9 +887,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS( " {" " \"frameworks\": [\"" + frameworkId->value() + "\"]," " \"name\": \"role1\"," - " \"resources\": {" - " \"cpus\": 0, \"disk\": 0, \"gpus\": 0, \"mem\": 0" - " }," + " \"resources\": {}," " \"quota\": {" " \"role\": \"role1\"," " \"consumed\": {}," @@ -916,9 +899,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS( " {" " \"frameworks\": [\"" + frameworkId->value() + "\"]," " \"name\": \"role2\"," - " \"resources\": {" - " \"cpus\": 0, \"disk\": 0, \"gpus\": 0, \"mem\": 0" - " }," + " \"resources\": {}," " \"quota\": {" " \"role\": \"role2\"," " \"consumed\": {},"
