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

Method foreach

src/examples/test_framework.cpp:95–141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93 const vector<Offer>& offers) override
94 {
95 foreach (const Offer& offer, offers) {
96 cout << "Received offer " << offer.id() << " with " << offer.resources()
97 << endl;
98
99 Resources taskResources = Resources::parse(
100 "cpus:" + stringify(CPUS_PER_TASK) +
101 ";mem:" + stringify(MEM_PER_TASK)).get();
102 taskResources.allocate(role);
103
104 Resources remaining = offer.resources();
105
106 // Launch tasks.
107 vector<TaskInfo> tasks;
108 while (tasksLaunched < totalTasks &&
109 remaining.toUnreserved().contains(taskResources)) {
110 int taskId = tasksLaunched++;
111
112 cout << "Launching task " << taskId << " using offer "
113 << offer.id() << endl;
114
115 TaskInfo task;
116 task.set_name("Task " + lexical_cast<string>(taskId));
117 task.mutable_task_id()->set_value(lexical_cast<string>(taskId));
118 task.mutable_slave_id()->MergeFrom(offer.slave_id());
119 task.mutable_executor()->MergeFrom(executor);
120
121 Option<Resources> resources = [&]() {
122 if (role == "*") {
123 return remaining.find(taskResources);
124 }
125
126 Resource::ReservationInfo reservation;
127 reservation.set_type(Resource::ReservationInfo::STATIC);
128 reservation.set_role(role);
129
130 return remaining.find(taskResources.pushReservation(reservation));
131 }();
132
133 CHECK_SOME(resources);
134 task.mutable_resources()->MergeFrom(resources.get());
135 remaining -= resources.get();
136
137 tasks.push_back(task);
138 }
139
140 driver->launchTasks(offer.id(), tasks);
141 }
142 }
143
144 void offerRescinded(SchedulerDriver* driver, const OfferID& offerId) override

Callers

nothing calls this directly

Calls 12

MergeFromMethod · 0.80
launchTasksMethod · 0.65
parseFunction · 0.50
stringifyFunction · 0.50
idMethod · 0.45
resourcesMethod · 0.45
getMethod · 0.45
allocateMethod · 0.45
containsMethod · 0.45
toUnreservedMethod · 0.45
findMethod · 0.45
pushReservationMethod · 0.45

Tested by

no test coverage detected