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 2019/07/11 19:45:29 UTC

[mesos] 03/05: Updated /role 'resources' to omit 0 values and include non-scalars.

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 <bm...@apache.org>
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\": {},"