This is an automated email from the ASF dual-hosted git repository.

chhsiao pushed a commit to branch 1.7.x
in repository https://gitbox.apache.org/repos/asf/mesos.git

commit 79ed75719e98ba4e58803c2f64ccbbe6ac52b3f1
Author: Chun-Hung Hsiao <[email protected]>
AuthorDate: Thu Feb 28 21:23:13 2019 -0800

    Changed the `getResourceProviderId` helper to take a `Resources`.
    
    Review: https://reviews.apache.org/r/70080
---
 src/common/resources_utils.cpp | 27 ++++++++++++---------------
 src/common/resources_utils.hpp | 11 +++++------
 src/master/master.cpp          |  3 ++-
 3 files changed, 19 insertions(+), 22 deletions(-)

diff --git a/src/common/resources_utils.cpp b/src/common/resources_utils.cpp
index 3b4fcd6..3786bcf 100644
--- a/src/common/resources_utils.cpp
+++ b/src/common/resources_utils.cpp
@@ -334,34 +334,31 @@ Result<ResourceProviderID> getResourceProviderId(
 }
 
 
-Result<ResourceProviderID> getResourceProviderId(
-    const ResourceConversion& conversion)
+Result<ResourceProviderID> getResourceProviderId(const Resources& resources)
 {
-  if (conversion.consumed.empty()) {
-    return Error("Could not determine resource provider");
+  if (resources.empty()) {
+    return Error("Cannot determine resource provider for empty resources");
   }
 
-  const Resource& consumed = *conversion.consumed.begin();
-
+  const Resource resource = *resources.begin();
   const Option<ResourceProviderID> resourceProviderId =
-    consumed.has_provider_id()
-      ? consumed.provider_id()
-      : Option<ResourceProviderID>::none();
-
+    resource.has_provider_id() ? resource.provider_id()
+                               : Option<ResourceProviderID>::none();
 
-  foreach (const Resource& resource, conversion.consumed) {
+  foreach (const Resource& resource_, resources) {
     const Option<ResourceProviderID> resourceProviderId_ =
-      resource.has_provider_id()
-        ? resource.provider_id()
-        : Option<ResourceProviderID>::none();
+      resource_.has_provider_id() ? resource_.provider_id()
+                                  : Option<ResourceProviderID>::none();
+
     if (resourceProviderId_ != resourceProviderId) {
-      return Error("Conversion works on multiple resource providers");
+      return Error("Resources are from multiple resource providers");
     }
   }
 
   return resourceProviderId;
 }
 
+
 void convertResourceFormat(Resource* resource, ResourceFormat format)
 {
   switch (format) {
diff --git a/src/common/resources_utils.hpp b/src/common/resources_utils.hpp
index 74cf747..42b6caf 100644
--- a/src/common/resources_utils.hpp
+++ b/src/common/resources_utils.hpp
@@ -50,7 +50,7 @@ Try<Resources> applyCheckpointedResources(
 
 
 // Returns the resource provider ID associated with the given
-// operation. Returns None() if the operation is for agent default
+// operation. Returns None if the operation is for agent default
 // resources. We assume the given operation is validated. Therefore,
 // the specified operation should not contain resources from more than
 // one resource provider.
@@ -58,12 +58,11 @@ Result<ResourceProviderID> getResourceProviderId(
     const Offer::Operation& operation);
 
 
-// Returns the ID of the resource provider affected by a resource
-// conversion. Returns None() if the conversion is on agent default
-// resources. We assume a single conversion only being applied on
-// resources from a single resource provider.
+// Returns the resource provider ID associated with the given resources, None 
if
+// the given resources are agent default resources, or Error if the given
+// resources are from more than one resource providers.
 Result<ResourceProviderID> getResourceProviderId(
-    const ResourceConversion& conversion);
+    const Resources& resources);
 
 
 // Returns the resource conversions from the given offer operation.
diff --git a/src/master/master.cpp b/src/master/master.cpp
index a6bc23f..3733d5a 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -12538,7 +12538,8 @@ void Slave::apply(const vector<ResourceConversion>& 
conversions)
   // Also apply the conversion to the explicitly maintained resource
   // provider resources.
   foreach (const ResourceConversion& conversion, conversions) {
-    Result<ResourceProviderID> providerId = getResourceProviderId(conversion);
+    Result<ResourceProviderID> providerId =
+      getResourceProviderId(conversion.consumed);
 
     if (providerId.isNone()) {
       continue;

Reply via email to