Filter for unattached ENIs, matching the client-side filtering we do afterwards

Signed-off-by: Peter Rifel <pgrifel@gmail.com>
This commit is contained in:
Peter Rifel 2023-09-06 21:38:34 -05:00
parent 7ec30b4a98
commit 54c99b5ea6
No known key found for this signature in database
GPG Key ID: BC6469E5B16DB2B6
1 changed files with 8 additions and 5 deletions

View File

@ -66,18 +66,21 @@ func DumpENI(op *resources.DumpOperation, r *resources.Resource) error {
func DescribeENIs(cloud fi.Cloud, clusterName string) (map[string]*ec2.NetworkInterface, error) { func DescribeENIs(cloud fi.Cloud, clusterName string) (map[string]*ec2.NetworkInterface, error) {
c := cloud.(awsup.AWSCloud) c := cloud.(awsup.AWSCloud)
statusFilter := &ec2.Filter{
Name: aws.String("status"),
Values: []*string{
aws.String(ec2.NetworkInterfaceStatusDetaching),
aws.String(ec2.NetworkInterfaceStatusAvailable),
},
}
enis := make(map[string]*ec2.NetworkInterface) enis := make(map[string]*ec2.NetworkInterface)
klog.V(2).Info("Listing ENIs") klog.V(2).Info("Listing ENIs")
for _, filters := range buildEC2FiltersForCluster(clusterName) { for _, filters := range buildEC2FiltersForCluster(clusterName) {
request := &ec2.DescribeNetworkInterfacesInput{ request := &ec2.DescribeNetworkInterfacesInput{
Filters: filters, Filters: append(filters, statusFilter),
} }
err := c.EC2().DescribeNetworkInterfacesPages(request, func(dnio *ec2.DescribeNetworkInterfacesOutput, b bool) bool { err := c.EC2().DescribeNetworkInterfacesPages(request, func(dnio *ec2.DescribeNetworkInterfacesOutput, b bool) bool {
for _, eni := range dnio.NetworkInterfaces { for _, eni := range dnio.NetworkInterfaces {
// Skip ENIs that are attached
if eni.Attachment != nil {
continue
}
enis[aws.StringValue(eni.NetworkInterfaceId)] = eni enis[aws.StringValue(eni.NetworkInterfaceId)] = eni
} }
return true return true