Skip to content

Commit 8063b3e

Browse files
authored
print aggregated task results (#135)
1 parent abc998f commit 8063b3e

File tree

1 file changed

+36
-21
lines changed

1 file changed

+36
-21
lines changed

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/MetadataDumper.java

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,23 @@
2121
import com.google.common.collect.ImmutableMap;
2222
import com.google.common.io.Closer;
2323
import com.google.common.io.Files;
24+
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
25+
import com.google.edwmigration.dumper.application.dumper.connector.LogsConnector;
26+
import com.google.edwmigration.dumper.application.dumper.connector.MetadataConnector;
27+
import com.google.edwmigration.dumper.application.dumper.handle.Handle;
28+
import com.google.edwmigration.dumper.application.dumper.io.FileSystemOutputHandleFactory;
29+
import com.google.edwmigration.dumper.application.dumper.io.OutputHandle;
30+
import com.google.edwmigration.dumper.application.dumper.io.OutputHandleFactory;
31+
import com.google.edwmigration.dumper.application.dumper.task.ArgumentsTask;
32+
import com.google.edwmigration.dumper.application.dumper.task.JdbcRunSQLScript;
33+
import com.google.edwmigration.dumper.application.dumper.task.Task;
34+
import com.google.edwmigration.dumper.application.dumper.task.TaskCategory;
35+
import com.google.edwmigration.dumper.application.dumper.task.TaskGroup;
36+
import com.google.edwmigration.dumper.application.dumper.task.TaskResult;
37+
import com.google.edwmigration.dumper.application.dumper.task.TaskRunContext;
38+
import com.google.edwmigration.dumper.application.dumper.task.TaskSetState;
39+
import com.google.edwmigration.dumper.application.dumper.task.TaskState;
40+
import com.google.edwmigration.dumper.application.dumper.task.VersionTask;
2441
import java.io.File;
2542
import java.io.IOException;
2643
import java.net.URI;
@@ -33,30 +50,15 @@
3350
import java.util.List;
3451
import java.util.Map;
3552
import java.util.ServiceLoader;
53+
import java.util.function.Function;
54+
import java.util.stream.Collectors;
3655
import javax.annotation.CheckForNull;
3756
import javax.annotation.Nonnegative;
3857
import javax.annotation.Nonnull;
3958
import org.apache.commons.lang3.StringUtils;
4059
import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf;
41-
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
42-
import com.google.edwmigration.dumper.application.dumper.connector.LogsConnector;
43-
import com.google.edwmigration.dumper.application.dumper.connector.MetadataConnector;
44-
import com.google.edwmigration.dumper.application.dumper.handle.Handle;
45-
import com.google.edwmigration.dumper.application.dumper.io.FileSystemOutputHandleFactory;
46-
import com.google.edwmigration.dumper.application.dumper.task.ArgumentsTask;
47-
import com.google.edwmigration.dumper.application.dumper.task.JdbcRunSQLScript;
48-
import com.google.edwmigration.dumper.application.dumper.task.Task;
49-
import com.google.edwmigration.dumper.application.dumper.task.TaskRunContext;
50-
import com.google.edwmigration.dumper.application.dumper.task.TaskSetState;
51-
import com.google.edwmigration.dumper.application.dumper.task.TaskState;
52-
import com.google.edwmigration.dumper.application.dumper.task.VersionTask;
5360
import org.slf4j.Logger;
5461
import org.slf4j.LoggerFactory;
55-
import com.google.edwmigration.dumper.application.dumper.io.OutputHandle;
56-
import com.google.edwmigration.dumper.application.dumper.io.OutputHandleFactory;
57-
import com.google.edwmigration.dumper.application.dumper.task.TaskCategory;
58-
import com.google.edwmigration.dumper.application.dumper.task.TaskGroup;
59-
import com.google.edwmigration.dumper.application.dumper.task.TaskResult;
6062

6163
/**
6264
*
@@ -302,25 +304,38 @@ public <T> T runChildTask(Task<T> task) throws MetadataDumperUsageException {
302304

303305
if (requiredTasksNotSucceeded > 0) {
304306
System.out.println(
305-
"* ERROR: " + requiredTasksNotSucceeded + " required task[s] failed.\n"
306-
+ "* Output, including debugging information, has been saved to " + outputFile + "\n"
307+
"* ERROR: " + requiredTasksNotSucceeded + " required task[s] failed.\n"
308+
+ "* Output, including debugging information, has been saved to "
309+
+ outputFile + "\n"
307310
+ "**********************************************************"
308311
);
309-
if (exitOnError)
312+
if (exitOnError) {
310313
System.exit(1);
314+
}
311315
}
312316

317+
logStatusSummary(state);
313318
}
314319
}
315320

321+
private void logStatusSummary(TaskSetState.Impl state) {
322+
state
323+
.getTaskResultMap().values().stream()
324+
.map(TaskResult::getState)
325+
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
326+
.forEach((key, value) -> System.out.printf("* %s: %d %n", key, value));
327+
System.out.println("**********************************************************");
328+
}
329+
316330
public static void main(String... args) throws Exception {
317331
try {
318332
MetadataDumper main = new MetadataDumper();
319333
args = JsonResponseFile.addResponseFiles(args);
320334
//LOG.debug("Arguments are: [" + String.join("] [", args) + "]");
321335
// Without this, the dumper prints "Missing required arguments:[connector]"
322-
if (args.length == 0)
336+
if (args.length == 0) {
323337
args = new String[]{"--help"};
338+
}
324339
main.run(args);
325340
} catch (MetadataDumperUsageException e) {
326341
LOG.error(e.getMessage());

0 commit comments

Comments
 (0)