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

Method applyOperation

src/resource_provider/manager.cpp:436–506  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

434
435
436void ResourceProviderManagerProcess::applyOperation(
437 const ApplyOperationMessage& message)
438{
439 const Offer::Operation& operation = message.operation_info();
440 const Option<FrameworkID> frameworkId = message.has_framework_id()
441 ? message.framework_id()
442 : Option<FrameworkID>::none();
443 const UUID& operationUUID = message.operation_uuid();
444
445 Result<ResourceProviderID> resourceProviderId =
446 getResourceProviderId(operation);
447
448 if (!resourceProviderId.isSome()) {
449 LOG(ERROR) << "Failed to get the resource provider ID of operation "
450 << "'" << operation.id() << "' (uuid: " << operationUUID
451 << ") from "
452 << (frameworkId.isSome()
453 ? "framework " + stringify(frameworkId.get())
454 : "an operator API call")
455 << ": "
456 << (resourceProviderId.isError() ? resourceProviderId.error()
457 : "Not found");
458 return;
459 }
460
461 if (!resourceProviders.subscribed.contains(resourceProviderId.get())) {
462 LOG(WARNING) << "Dropping operation '" << operation.id() << "' (uuid: "
463 << operationUUID << ") from "
464 << (frameworkId.isSome()
465 ? "framework " + stringify(frameworkId.get())
466 : "an operator API call")
467 << " because resource provider " << resourceProviderId.get()
468 << " is not subscribed";
469 return;
470 }
471
472 ResourceProvider* resourceProvider =
473 resourceProviders.subscribed.at(resourceProviderId.get()).get();
474
475 CHECK(message.resource_version_uuid().has_resource_provider_id());
476
477 CHECK_EQ(message.resource_version_uuid().resource_provider_id(),
478 resourceProviderId.get())
479 << "Resource provider ID "
480 << message.resource_version_uuid().resource_provider_id()
481 << " in resource version UUID does not match that in the operation "
482 << resourceProviderId.get();
483
484 Event event;
485 event.set_type(Event::APPLY_OPERATION);
486 if (frameworkId.isSome()) {
487 event.mutable_apply_operation()
488 ->mutable_framework_id()->CopyFrom(frameworkId.get());
489 }
490 event.mutable_apply_operation()->mutable_info()->CopyFrom(operation);
491 event.mutable_apply_operation()
492 ->mutable_operation_uuid()->CopyFrom(message.operation_uuid());
493 event.mutable_apply_operation()

Callers

nothing calls this directly

Calls 12

getResourceProviderIdFunction · 0.85
atMethod · 0.80
CopyFromMethod · 0.80
errorMethod · 0.65
sendMethod · 0.65
stringifyFunction · 0.50
dispatchFunction · 0.50
isSomeMethod · 0.45
idMethod · 0.45
getMethod · 0.45
isErrorMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected