in bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractStage.java [94:129]
public Boolean run() {
boolean allTaskSuccess;
try {
beforeRun();
List<CompletableFuture<Boolean>> futures = new ArrayList<>();
for (Task task : tasks) {
futures.add(CompletableFuture.supplyAsync(task::run));
}
List<Boolean> taskResults = futures.stream()
.map((future) -> {
try {
return future.get();
} catch (Exception e) {
log.error("stage failed,", e);
return false;
}
})
.toList();
allTaskSuccess = taskResults.stream().allMatch(Boolean::booleanValue);
} catch (Exception e) {
log.error("stage failed", e);
allTaskSuccess = false;
}
if (allTaskSuccess) {
onSuccess();
} else {
onFailure();
}
return allTaskSuccess;
}