| 211 | executorResources.allocate(role); |
| 212 | |
| 213 | foreach (const Offer& offer, offers) { |
| 214 | Resources resources(offer.resources()); |
| 215 | |
| 216 | // If there is an active task, or if the offer is not |
| 217 | // big enough, reject the offer. |
| 218 | if (taskActive || |
| 219 | !resources.toUnreserved().contains( |
| 220 | taskResources + executorResources)) { |
| 221 | Filters filters; |
| 222 | filters.set_refuse_seconds(600); |
| 223 | |
| 224 | driver->declineOffer(offer.id(), filters); |
| 225 | continue; |
| 226 | } |
| 227 | |
| 228 | int taskId = tasksLaunched++; |
| 229 | |
| 230 | LOG(INFO) << "Launching task " << taskId; |
| 231 | |
| 232 | TaskInfo task; |
| 233 | task.set_name(flags.name + " Task"); |
| 234 | task.mutable_task_id()->set_value(stringify(taskId)); |
| 235 | task.mutable_slave_id()->MergeFrom(offer.slave_id()); |
| 236 | task.mutable_resources()->CopyFrom(taskResources); |
| 237 | task.set_data(stringify(flags.task_memory_usage_limit)); |
| 238 | |
| 239 | task.mutable_executor()->CopyFrom(executor); |
| 240 | task.mutable_executor()->mutable_executor_id()->set_value( |
| 241 | stringify(taskId)); |
| 242 | |
| 243 | driver->launchTasks(offer.id(), {task}); |
| 244 | |
| 245 | taskActive = true; |
| 246 | } |
| 247 | } |
| 248 | |
| 249 | void statusUpdate(SchedulerDriver* driver, const TaskStatus& status) |
nothing calls this directly
no test coverage detected