in services/library/src/main/java/com/google/cloud/pso/bq_snapshot_manager/functions/f01_dispatcher/BigQueryScopeLister.java [264:312]
private List<TableSpec> processFolders(
List<Long> folderIncludeList,
List<String> projectExcludeList,
List<String> datasetExcludeList,
List<String> tableExcludeList,
List<Pattern> projectExcludeListPatterns,
List<Pattern> datasetExcludeListPatterns,
List<Pattern> tableExcludeListPatterns
) {
List<String> projectIncludeList = new ArrayList<>();
logger.logInfoWithTracker(runId, null, String.format("Will process folders %s", folderIncludeList));
for (Long folder : folderIncludeList) {
try {
logger.logInfoWithTracker(runId, null, String.format("Inspecting folder %s", folder));
// get all projects in this folder
List<String> folderProjects = resourceScanner.listProjects(folder);
projectIncludeList.addAll(folderProjects);
if (folderProjects.isEmpty()) {
String msg = String.format(
"No projects found under folder '%s' or no enough permissions to list.",
folder);
logger.logWarnWithTracker(runId, null, msg);
} else {
logger.logInfoWithTracker(runId, null, String.format("Found %s projects under folder %s", folderProjects.size(), folder));
}
} catch (Exception exception) {
// log and continue
logger.logFailedDispatcherEntityId(runId, null, folder.toString(), exception.getMessage(), exception.getClass().getName());
}
}
return processProjects(
projectIncludeList,
projectExcludeList,
datasetExcludeList,
tableExcludeList,
projectExcludeListPatterns,
datasetExcludeListPatterns,
tableExcludeListPatterns);
}