MCPcopy Create free account
hub / github.com/apache/mesos / validateSingleResourceProvider

Function validateSingleResourceProvider

src/master/validation.cpp:1028–1059  ·  view source on GitHub ↗

Validates that all the given resources are from the same resource provider. Resources that do not have resource provider ID are assumed to be from the agent (default resource provider).

Source from the content-addressed store, hash-verified

1026// provider. Resources that do not have resource provider ID are
1027// assumed to be from the agent (default resource provider).
1028Option<Error> validateSingleResourceProvider(
1029 const RepeatedPtrField<Resource>& resources)
1030{
1031 hashset<Option<ResourceProviderID>> resourceProviderIds;
1032
1033 foreach (const Resource& resource, resources) {
1034 resourceProviderIds.insert(resource.has_provider_id()
1035 ? resource.provider_id()
1036 : Option<ResourceProviderID>::none());
1037 }
1038
1039 if (resourceProviderIds.size() != 1) {
1040 if (resourceProviderIds.contains(None())) {
1041 return Error("Some resources have a resource provider and some do not");
1042 }
1043
1044 vector<ResourceProviderID> ids;
1045 std::transform(
1046 resourceProviderIds.begin(),
1047 resourceProviderIds.end(),
1048 std::back_inserter(ids),
1049 [](const Option<ResourceProviderID>& id) {
1050 return id.get();
1051 });
1052
1053 return Error(
1054 "The resources have multiple resource providers: " +
1055 strings::join(", ", ids));
1056 }
1057
1058 return None();
1059}
1060
1061} // namespace internal {
1062

Callers 2

TEST_FFunction · 0.85
validateFunction · 0.85

Calls 9

NoneClass · 0.85
transformFunction · 0.85
ErrorFunction · 0.50
joinFunction · 0.50
sizeMethod · 0.45
containsMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
getMethod · 0.45

Tested by 1

TEST_FFunction · 0.68