for (Protos.TaskInfo task : acceptCall.getTasks()) { task.getName(), new LaunchedTask(findMatchingExecutor(task, acceptCall.getExecutors()), task));
AcceptEntry lastLaunch = acceptCalls.get(acceptCalls.size() - 1); offerBuilder.addAllExecutorIds(lastLaunch.getExecutors().stream() .map(e -> e.getExecutorId()) .collect(Collectors.toList())); offerBuilder.addAllResources(acceptCall.getReservations());
/** * Adds the provided pod to the list of launched pods. */ public void addAcceptCall(AcceptEntry pod) { if (pod.getTasks().isEmpty()) { throw new IllegalArgumentException("Refusing to record an empty pod"); } acceptCalls.add(pod); }
new AcceptEntry(executorsById.values(), launchedTaskInfos, reservedResources));
for (AcceptEntry acceptCall : acceptCalls) { for (Protos.TaskInfo launchedTask : acceptCall.getTasks()) { final TaskLabelReader reader = new TaskLabelReader(launchedTask); final String thisPod;
private static Map<String, Status> getExpectedStepStatuses(ClusterState state, StepCount stepCount) { Map<String, Status> expectedSteps = new TreeMap<>(); expectedSteps.put(String.format("kill-%s-server", stepCount.phaseName), stepCount.statusOfStepIndex(expectedSteps.size())); List<AcceptEntry> acceptCalls = state.getAcceptCalls(stepCount.phaseName); // Get information based on the LAST operation. This wouldn't work if the last operation didn't reserve // anything, as would occur when a task is restarted, but this is close enough for our purposes. AcceptEntry acceptCall = acceptCalls.get(acceptCalls.size() - 1); Collection<String> resourceIds = new ArrayList<>(); resourceIds.addAll(ResourceUtils.getResourceIds(ResourceUtils.getAllResources(acceptCall.getTasks()))); resourceIds.addAll(acceptCall.getExecutors().stream() .map(e -> ResourceUtils.getResourceIds(e.getResourcesList())) .flatMap(Collection::stream) .collect(Collectors.toList())); for (String resourceId : resourceIds) { expectedSteps.put(String.format("unreserve-%s", resourceId), stepCount.statusOfStepIndex(expectedSteps.size())); } expectedSteps.put(String.format("erase-%s-server", stepCount.phaseName), stepCount.statusOfStepIndex(expectedSteps.size())); return expectedSteps; } }