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

Method _apply

src/master/master.cpp:11671–11802  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11669
11670
11671void Master::_apply(
11672 Slave* slave,
11673 Framework* framework,
11674 const Offer::Operation& operationInfo)
11675{
11676 CHECK_NOTNULL(slave);
11677
11678 if (slave->capabilities.resourceProvider) {
11679 Result<ResourceProviderID> resourceProviderId =
11680 getResourceProviderId(operationInfo);
11681
11682 // This must have been validated by the caller.
11683 CHECK(!resourceProviderId.isError());
11684
11685 CHECK(
11686 resourceProviderId.isNone() ||
11687 slave->resourceProviders.contains(resourceProviderId.get()))
11688 << "Resource provider " + stringify(resourceProviderId.get()) +
11689 " is unknown";
11690
11691 CHECK_SOME(slave->resourceVersion);
11692
11693 const UUID resourceVersion = resourceProviderId.isNone()
11694 ? slave->resourceVersion.get()
11695 : slave->resourceProviders.at(resourceProviderId.get()).resourceVersion;
11696
11697 Operation* operation = new Operation(protobuf::createOperation(
11698 operationInfo,
11699 protobuf::createOperationStatus(
11700 OPERATION_PENDING,
11701 operationInfo.has_id()
11702 ? operationInfo.id()
11703 : Option<OperationID>::none(),
11704 None(),
11705 None(),
11706 None(),
11707 slave->id,
11708 resourceProviderId.isSome()
11709 ? Some(resourceProviderId.get())
11710 : Option<ResourceProviderID>::none()),
11711 framework != nullptr ? framework->id() : Option<FrameworkID>::none(),
11712 slave->id));
11713
11714 addOperation(framework, slave, operation);
11715
11716 if (protobuf::isSpeculativeOperation(operation->info())) {
11717 Offer::Operation strippedOperationInfo = operation->info();
11718 protobuf::stripAllocationInfo(&strippedOperationInfo);
11719
11720 Try<vector<ResourceConversion>> conversions =
11721 getResourceConversions(strippedOperationInfo);
11722
11723 CHECK_SOME(conversions);
11724
11725 slave->apply(conversions.get());
11726 }
11727
11728 ApplyOperationMessage message;

Callers

nothing calls this directly

Calls 15

getResourceProviderIdFunction · 0.85
createOperationFunction · 0.85
createOperationStatusFunction · 0.85
NoneClass · 0.85
SomeFunction · 0.85
isSpeculativeOperationFunction · 0.85
stripAllocationInfoFunction · 0.85
getResourceConversionsFunction · 0.85
downgradeResourcesFunction · 0.85
atMethod · 0.80
infoMethod · 0.80
CopyFromMethod · 0.80

Tested by

no test coverage detected