| 2227 | |
| 2228 | |
| 2229 | void 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()); |
nothing calls this directly
no test coverage detected