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

Method run

src/slave/slave.cpp:2229–2614  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2227
2228
2229void Slave::run(
2230 const FrameworkInfo& frameworkInfo,
2231 ExecutorInfo executorInfo,
2232 Option<TaskInfo> task,
2233 Option<TaskGroupInfo> taskGroup,
2234 const vector<ResourceVersionUUID>& resourceVersionUuids,
2235 const UPID& pid,
2236 const Option<bool>& launchExecutor,
2237 bool executorGeneratedForCommandTask)
2238{
2239 CHECK_NE(task.isSome(), taskGroup.isSome())
2240 << "Either task or task group should be set but not both";
2241
2242 auto injectAllocationInfo = [](
2243 RepeatedPtrField<Resource>* resources,
2244 const FrameworkInfo& frameworkInfo) {
2245 set<string> roles = protobuf::framework::getRoles(frameworkInfo);
2246
2247 foreach (Resource& resource, *resources) {
2248 if (!resource.has_allocation_info()) {
2249 if (roles.size() != 1) {
2250 LOG(FATAL) << "Missing 'Resource.AllocationInfo' for resources"
2251 << " allocated to MULTI_ROLE framework"
2252 << " '" << frameworkInfo.name() << "'";
2253 }
2254
2255 resource.mutable_allocation_info()->set_role(*roles.begin());
2256 }
2257 }
2258 };
2259
2260 injectAllocationInfo(executorInfo.mutable_resources(), frameworkInfo);
2261 upgradeResources(&executorInfo);
2262
2263 if (task.isSome()) {
2264 injectAllocationInfo(task->mutable_resources(), frameworkInfo);
2265
2266 if (task->has_executor()) {
2267 injectAllocationInfo(
2268 task->mutable_executor()->mutable_resources(),
2269 frameworkInfo);
2270 }
2271
2272 upgradeResources(&task.get());
2273 }
2274
2275 if (taskGroup.isSome()) {
2276 foreach (TaskInfo& task, *taskGroup->mutable_tasks()) {
2277 injectAllocationInfo(task.mutable_resources(), frameworkInfo);
2278
2279 if (task.has_executor()) {
2280 injectAllocationInfo(
2281 task.mutable_executor()->mutable_resources(),
2282 frameworkInfo);
2283 }
2284 }
2285
2286 upgradeResources(&taskGroup.get());

Callers

nothing calls this directly

Calls 15

getRolesFunction · 0.85
injectAllocationInfoFunction · 0.85
upgradeResourcesFunction · 0.85
taskOrTaskGroupFunction · 0.85
getFrameworkPathFunction · 0.85
NoneClass · 0.85
frameworkHasCapabilityFunction · 0.85
getExecutorPathFunction · 0.85
FailureClass · 0.85
collectFunction · 0.85
deferFunction · 0.85
undiscardableFunction · 0.85

Tested by

no test coverage detected