in src/main/java/com/google/gcs/sdrs/service/worker/rule/impl/StsRuleExecutor.java [371:392]
private List<String> buildPrefixesToExclude(
final Map<String, Set<String>> prefixesToExcludeMap, String bucketName) {
List<String> prefixesToExclude = new ArrayList<>();
String predDefinedList =
SdrsApplication.getAppConfigProperty("sts.defaultRuleExlcudePrefixList");
if (predDefinedList != null && !predDefinedList.isEmpty()) {
prefixesToExclude.addAll(Arrays.asList(predDefinedList.split(";")));
}
if (prefixesToExcludeMap.containsKey(bucketName)) {
prefixesToExclude.addAll(prefixesToExcludeMap.get(bucketName));
if (prefixesToExclude.isEmpty()) {
// we have bucket that has one implied dataset. i.e 2018/, 2019, 2020/ are at the root of
// the bucket
prefixesToExclude.addAll(Arrays.asList(StsUtil.DEFAULT_LOG_CAT_BUCKET_PREFIX));
}
} else if (predDefinedList == null || predDefinedList.isEmpty()) {
// we have to add a "fake" no-op exclude prefix. otherwise STS throws an error.
prefixesToExclude.add(UUID.randomUUID().toString() + "_NOOP_EXCLUDE_PREFIX/");
}
return prefixesToExclude;
}