-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🐛 Properly target the region filter. #3225
Changes from all commits
3a5a7d0
5630099
345eb45
b09af25
343ffc3
2932fe7
6cae282
249e4bd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -125,18 +125,15 @@ func parseOptsToFilters(opts map[string]string) DiscoveryFilters { | |
for k, v := range opts { | ||
switch { | ||
case strings.HasPrefix(k, "ec2:tag:"): | ||
d.Ec2DiscoveryFilters.Tags[strings.TrimPrefix("ec2:tag:", k)] = v | ||
d.Ec2DiscoveryFilters.Tags[strings.TrimPrefix(k, "ec2:tag:")] = v | ||
case k == "ec2:region": | ||
d.Ec2DiscoveryFilters.Regions = append(d.Ec2DiscoveryFilters.Regions, v) | ||
case k == "all:region": | ||
case k == "all:region", k == "region": | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nice addition |
||
d.GeneralDiscoveryFilters.Regions = append(d.GeneralDiscoveryFilters.Regions, v) | ||
case k == "region": | ||
d.GeneralDiscoveryFilters.Regions = append(d.GeneralDiscoveryFilters.Regions, v) | ||
d.Ec2DiscoveryFilters.Regions = append(d.Ec2DiscoveryFilters.Regions, v) | ||
case k == "instance-id": | ||
d.Ec2DiscoveryFilters.InstanceIds = append(d.Ec2DiscoveryFilters.InstanceIds, v) | ||
case strings.HasPrefix(k, "all:tag:"): | ||
d.GeneralDiscoveryFilters.Tags[strings.TrimPrefix("all:tag:", k)] = v | ||
d.GeneralDiscoveryFilters.Tags[strings.TrimPrefix(k, "all:tag:")] = v | ||
case k == "ecr:tag": | ||
d.EcrDiscoveryFilters.Tags = append(d.EcrDiscoveryFilters.Tags, v) | ||
} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -617,6 +617,9 @@ func (a *mqlAwsEc2) getInstances(conn *connection.AwsConnection) []*jobpool.Job | |
if err != nil { | ||
return []*jobpool.Job{{Err: err}} | ||
} | ||
if len(conn.Filters.Ec2DiscoveryFilters.Regions) > 0 { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nice addition! |
||
regions = conn.Filters.Ec2DiscoveryFilters.Regions | ||
} | ||
for _, region := range regions { | ||
regionVal := region | ||
f := func() (jobpool.JobResult, error) { | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -112,20 +112,23 @@ func containsInterfaceSlice(sl []interface{}, s string) bool { | |
} | ||
|
||
func instanceMatchesFilters(instance *mqlAwsEc2Instance, filters connection.DiscoveryFilters) bool { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This method requires additional testing to ensure we cover all edge cases. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yup, more test is always nice, if i invest more time i would definately find some of those cases! |
||
matches := true | ||
f := filters.Ec2DiscoveryFilters | ||
if len(f.Regions) > 0 { | ||
if !contains(f.Regions, instance.Region.Data) { | ||
matches = false | ||
} | ||
regions := []string{} | ||
if len(filters.GeneralDiscoveryFilters.Regions) > 0 { | ||
regions = append(regions, filters.GeneralDiscoveryFilters.Regions...) | ||
} | ||
if len(filters.Ec2DiscoveryFilters.Regions) > 0 { | ||
regions = append(regions, filters.Ec2DiscoveryFilters.Regions...) | ||
} | ||
if len(regions) > 0 && !contains(regions, instance.Region.Data) { | ||
return false | ||
} | ||
if len(f.InstanceIds) > 0 { | ||
if !contains(f.InstanceIds, instance.InstanceId.Data) { | ||
matches = false | ||
if len(filters.Ec2DiscoveryFilters.InstanceIds) > 0 { | ||
if !contains(filters.Ec2DiscoveryFilters.InstanceIds, instance.InstanceId.Data) { | ||
return false | ||
} | ||
} | ||
if len(f.Tags) > 0 { | ||
for k, v := range f.Tags { | ||
if len(filters.Ec2DiscoveryFilters.Tags) > 0 { | ||
for k, v := range filters.Ec2DiscoveryFilters.Tags { | ||
if instance.Tags.Data[k] == nil { | ||
return false | ||
} | ||
|
@@ -134,7 +137,7 @@ func instanceMatchesFilters(instance *mqlAwsEc2Instance, filters connection.Disc | |
} | ||
} | ||
} | ||
return matches | ||
return true | ||
} | ||
|
||
func imageMatchesFilters(image *mqlAwsEcrImage, filters connection.DiscoveryFilters) bool { | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you for that fix