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

Function getResourceProviderId

src/common/resources_utils.cpp:286–343  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

284
285
286Result<ResourceProviderID> getResourceProviderId(
287 const Offer::Operation& operation)
288{
289 Option<Resource> resource;
290
291 switch (operation.type()) {
292 case Offer::Operation::LAUNCH:
293 return Error("Unexpected LAUNCH operation");
294 case Offer::Operation::LAUNCH_GROUP:
295 return Error("Unexpected LAUNCH_GROUP operation");
296 case Offer::Operation::RESERVE:
297 if (operation.reserve().resources().empty()) {
298 return Error("Operation contains no resources");
299 }
300 resource = operation.reserve().resources(0);
301 break;
302 case Offer::Operation::UNRESERVE:
303 if (operation.unreserve().resources().empty()) {
304 return Error("Operation contains no resources");
305 }
306 resource = operation.unreserve().resources(0);
307 break;
308 case Offer::Operation::CREATE:
309 if (operation.create().volumes().empty()) {
310 return Error("Operation contains no resources");
311 }
312 resource = operation.create().volumes(0);
313 break;
314 case Offer::Operation::DESTROY:
315 if (operation.destroy().volumes().empty()) {
316 return Error("Operation contains no resources");
317 }
318 resource = operation.destroy().volumes(0);
319 break;
320 case Offer::Operation::GROW_VOLUME:
321 resource = operation.grow_volume().volume();
322 break;
323 case Offer::Operation::SHRINK_VOLUME:
324 resource = operation.shrink_volume().volume();
325 break;
326 case Offer::Operation::CREATE_DISK:
327 resource = operation.create_disk().source();
328 break;
329 case Offer::Operation::DESTROY_DISK:
330 resource = operation.destroy_disk().source();
331 break;
332 case Offer::Operation::UNKNOWN:
333 return Error("Unknown offer operation");
334 }
335
336 CHECK_SOME(resource);
337
338 if (resource->has_provider_id()) {
339 return resource->provider_id();
340 }
341
342 return None();
343}

Callers 15

applyOperationMethod · 0.85
applyOperationMethod · 0.85
foreachFunction · 0.85
foreachvalueFunction · 0.85
addOperationMethod · 0.85
removeOperationMethod · 0.85
applyMethod · 0.85
foreachFunction · 0.85
updateOperationStatusMethod · 0.85
foreachvalueFunction · 0.85

Calls 10

NoneClass · 0.85
typeMethod · 0.80
ErrorFunction · 0.50
emptyMethod · 0.45
resourcesMethod · 0.45
reserveMethod · 0.45
unreserveMethod · 0.45
createMethod · 0.45
destroyMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected