in pkg/fake/utils.go [122:158]
func Filter(filters []ec2types.Filter, id, name, owner, state string, tags []ec2types.Tag) bool {
return lo.EveryBy(filters, func(filter ec2types.Filter) bool {
switch filterName := aws.ToString(filter.Name); {
case filterName == "state":
for _, val := range filter.Values {
if state == val {
return true
}
}
case filterName == "subnet-id" || filterName == "group-id" || filterName == "image-id":
for _, val := range filter.Values {
if id == val {
return true
}
}
case filterName == "group-name" || filterName == "name":
for _, val := range filter.Values {
if name == val {
return true
}
}
case filterName == "owner-id":
for _, val := range filter.Values {
if owner == val {
return true
}
}
case strings.HasPrefix(filterName, "tag"):
if matchTags(tags, filter) {
return true
}
default:
panic(fmt.Sprintf("Unsupported mock filter %v", filter))
}
return false
})
}