private List processFolders()

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);
    }