public Tuple findFallbackBackupPolicy()

in services/library/src/main/java/com/google/cloud/pso/bq_snapshot_manager/functions/f02_configurator/Configurator.java [457:496]


    public Tuple<String, BackupPolicy> findFallbackBackupPolicy(FallbackBackupPolicy fallbackBackupPolicy,
                                                                        TableSpec tableSpec,
                                                                        String runId
    ) throws IOException {

        BackupPolicy tableLevel = fallbackBackupPolicy.getTableOverrides().get(tableSpec.toSqlString());
        if (tableLevel != null) {
            return Tuple.of("table", tableLevel);
        }

        BackupPolicy datasetLevel = fallbackBackupPolicy.getDatasetOverrides().get(
                String.format("%s.%s", tableSpec.getProject(), tableSpec.getDataset())
        );
        if (datasetLevel != null) {
            return Tuple.of("dataset", datasetLevel);
        }

        BackupPolicy projectLevel = fallbackBackupPolicy.getProjectOverrides().get(
                tableSpec.getProject()
        );
        if (projectLevel != null) {
            return Tuple.of("project", projectLevel);
        }

        // API CALL (or cache)
        Tuple<String, String> folderLookupTuple = resourceScanner.getParentFolderId(tableSpec.getProject(), runId);
        if (folderLookupTuple != null) {

            String folderId = folderLookupTuple.x();
            BackupPolicy folderLevel = fallbackBackupPolicy.getFolderOverrides().get(folderId);

            if (folderLevel != null) {
                // source is folder-cache or folder-api to trace and debug cache performance
                return Tuple.of(String.format("folder-from-%s", folderLookupTuple.y()), folderLevel);
            }
        }

        // else return the global default policy
        return Tuple.of("default", fallbackBackupPolicy.getDefaultPolicy());
    }