in pkg/providers/securitygroup/securitygroup.go [105:139]
func getFilterSets(terms []v1.SecurityGroupSelectorTerm) (res [][]ec2types.Filter) {
idFilter := ec2types.Filter{Name: aws.String("group-id")}
nameFilter := ec2types.Filter{Name: aws.String("group-name")}
for _, term := range terms {
switch {
case term.ID != "":
idFilter.Values = append(idFilter.Values, term.ID)
case term.Name != "":
nameFilter.Values = append(nameFilter.Values, term.Name)
default:
var filters []ec2types.Filter
for k, v := range term.Tags {
if v == "*" {
filters = append(filters, ec2types.Filter{
Name: aws.String("tag-key"),
Values: []string{k},
})
} else {
filters = append(filters, ec2types.Filter{
Name: aws.String(fmt.Sprintf("tag:%s", k)),
Values: []string{v},
})
}
}
res = append(res, filters)
}
}
if len(idFilter.Values) > 0 {
res = append(res, []ec2types.Filter{idFilter})
}
if len(nameFilter.Values) > 0 {
res = append(res, []ec2types.Filter{nameFilter})
}
return res
}