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:27 UTC

[mesos] 01/05: Expose non-scalar quantities in /roles consumed quota.

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 e24fef8ba27ea8e82ce31eacc252c08fdbdf3c61
Author: Benjamin Mahler <bm...@apache.org>
AuthorDate: Thu Jul 11 13:46:05 2019 -0400

    Expose non-scalar quantities in /roles consumed quota.
    
    Review: https://reviews.apache.org/r/71060
---
 src/master/master.hpp    | 16 ++++++----------
 src/tests/role_tests.cpp | 12 ++++++------
 2 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/src/master/master.hpp b/src/master/master.hpp
index 9b86155..a44caa4 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -2707,8 +2707,6 @@ struct Role
     frameworks.erase(framework->id());
   }
 
-  // TODO(bmahler): Include non-scalar quantities.
-  //
   // TODO(bmahler): This function is somewhat expensive,
   // it should ideally migrate into a field updated in an
   // event-driven manner within a role tree structure. Or,
@@ -2733,9 +2731,8 @@ struct Role
     // those that are directly subscribed to this role, and we
     // need to sum all descendant role allocations.
     foreachvalue (Framework* framework, master->frameworks.registered) {
-      allocation += ResourceQuantities::fromScalarResources(
-        framework->totalUsedResources.scalars()
-          .filter(allocatedToRoleSubtree));
+      allocation += ResourceQuantities::fromResources(
+        framework->totalUsedResources.filter(allocatedToRoleSubtree));
     }
 
     ResourceQuantities unallocatedReservation;
@@ -2748,14 +2745,13 @@ struct Role
 
     foreachvalue (Slave* slave, master->slaves.registered) {
       ResourceQuantities totalReservation =
-        ResourceQuantities::fromScalarResources(
-           slave->totalResources.scalars()
-             .filter(reservedToRoleSubtree));
+        ResourceQuantities::fromResources(
+           slave->totalResources.filter(reservedToRoleSubtree));
 
        ResourceQuantities usedReservation;
        foreachvalue (const Resources& r, slave->usedResources) {
-         usedReservation += ResourceQuantities::fromScalarResources(
-             r.scalars().filter(reservedToRoleSubtree));
+         usedReservation += ResourceQuantities::fromResources(
+             r.filter(reservedToRoleSubtree));
        }
 
        unallocatedReservation += totalReservation - usedReservation;
diff --git a/src/tests/role_tests.cpp b/src/tests/role_tests.cpp
index 67830bb..63198b3 100644
--- a/src/tests/role_tests.cpp
+++ b/src/tests/role_tests.cpp
@@ -566,9 +566,8 @@ TEST_F(RoleTest, RolesEndpointContainsConsumedQuota)
     .WillOnce(FutureSatisfy(&offer));
 
   slave::Flags agentFlags3 = CreateSlaveFlags();
-  agentFlags3.resources = "cpus(role):100;mem(role):1000;"
-                          "cpus:1000;mem:10000;"
-                          ";disk:0;ports:[]";
+  agentFlags3.resources = "cpus(role):100;mem(role):1000;ports(role):[100-199]"
+                          ";cpus:1000;mem:10000;disk:0;ports:[1000-1999]";
 
   // We need to use the posix launcher to avoid agents
   // seeing each other's containers as orphans and
@@ -582,8 +581,8 @@ TEST_F(RoleTest, RolesEndpointContainsConsumedQuota)
   // Now we have:
   //  - Allocated reservation: cpus:1;mem:10
   //  - Allocated unreserved resources: cpus:10;mem:100
-  //  - Offered reservation: cpus:100;mem:1000
-  //  - Offered unreserved resources: cpus:1000;mem:10000
+  //  - Offered reservation: cpus:100;mem:1000;ports:100
+  //  - Offered unreserved resources: cpus:1000;mem:10000;ports:1000
 
   // Check that the /roles endopint has the correct quota
   // consumption information.
@@ -614,7 +613,8 @@ TEST_F(RoleTest, RolesEndpointContainsConsumedQuota)
         "      \"quota\": {"
         "        \"consumed\": {"
         "          \"cpus\": 111.0,"
-        "          \"mem\": 1110.0"
+        "          \"mem\": 1110.0,"
+        "          \"ports\": 100.0"
         "        },"
         "        \"guarantee\": {},"
         "        \"limit\": {},"