in internal/loader/configuration_setting_loader.go [712:746]
func deduplicateFilters(filters []acpv1.Selector) []acpv1.Selector {
var result []acpv1.Selector
findDuplicate := false
if len(filters) > 0 {
//
// Deduplicate the filters in a way that in honor of what user tell us
// If user populate the selectors with `{KeyFilter: "one*", LabelFilter: "prod"}, {KeyFilter: "two*", LabelFilter: "dev"}, {KeyFilter: "one*", LabelFilter: "prod"}`
// We deduplicate it into `{KeyFilter: "two*", LabelFilter: "dev"}, {KeyFilter: "one*", LabelFilter: "prod"}`
// not `{KeyFilter: "one*", LabelFilter: "prod"}, {KeyFilter: "two*", LabelFilter: "dev"}`
for i := len(filters) - 1; i >= 0; i-- {
findDuplicate = false
for j := 0; j < len(result); j++ {
if compare(result[j].KeyFilter, filters[i].KeyFilter) &&
compare(result[j].LabelFilter, filters[i].LabelFilter) &&
compare(result[j].SnapshotName, filters[i].SnapshotName) {
findDuplicate = true
break
}
}
if !findDuplicate {
result = append(result, filters[i])
}
}
reverse(result)
} else {
wildcard := "*"
result = append(result, acpv1.Selector{
KeyFilter: &wildcard,
LabelFilter: nil,
})
}
return result
}