77 "fmt"
88 "log"
99
10+ "github.com/aws/aws-sdk-go/aws"
1011 "github.com/aws/aws-sdk-go/service/elb"
1112 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1213 "github.com/hashicorp/terraform-provider-aws/internal/conns"
@@ -24,39 +25,42 @@ func sweepLoadBalancers(region string) error {
2425 ctx := sweep .Context (region )
2526 client , err := sweep .SharedRegionalSweepClient (region )
2627 if err != nil {
27- return fmt .Errorf ("getting client: %s" , err )
28+ return fmt .Errorf ("error getting client: %s" , err )
2829 }
2930 conn := client .(* conns.AWSClient ).ELBConn ()
31+ input := & elb.DescribeLoadBalancersInput {}
32+ sweepResources := make ([]sweep.Sweepable , 0 )
3033
31- err = conn .DescribeLoadBalancersPagesWithContext (ctx , & elb.DescribeLoadBalancersInput {}, func (out * elb.DescribeLoadBalancersOutput , lastPage bool ) bool {
32- if len (out .LoadBalancerDescriptions ) == 0 {
33- log .Println ("[INFO] No ELBs found for sweeping" )
34- return false
34+ err = conn .DescribeLoadBalancersPagesWithContext (ctx , input , func (page * elb.DescribeLoadBalancersOutput , lastPage bool ) bool {
35+ if page == nil {
36+ return ! lastPage
3537 }
3638
37- for _ , lb := range out .LoadBalancerDescriptions {
38- log .Printf ("[INFO] Deleting ELB: %s" , * lb .LoadBalancerName )
39-
40- _ , err := conn .DeleteLoadBalancerWithContext (ctx , & elb.DeleteLoadBalancerInput {
41- LoadBalancerName : lb .LoadBalancerName ,
42- })
43- if err != nil {
44- log .Printf ("[ERROR] Failed to delete ELB %s: %s" , * lb .LoadBalancerName , err )
45- continue
46- }
47- err = CleanupNetworkInterfaces (ctx , client .(* conns.AWSClient ).EC2Conn (), * lb .LoadBalancerName )
48- if err != nil {
49- log .Printf ("[WARN] Failed to cleanup ENIs for ELB %q: %s" , * lb .LoadBalancerName , err )
50- }
39+ for _ , v := range page .LoadBalancerDescriptions {
40+ r := ResourceLoadBalancer ()
41+ d := r .Data (nil )
42+ d .SetId (aws .StringValue (v .LoadBalancerName ))
43+
44+ sweepResources = append (sweepResources , sweep .NewSweepResource (r , d , client ))
5145 }
46+
5247 return ! lastPage
5348 })
49+
50+ if sweep .SkipSweepError (err ) {
51+ log .Printf ("[WARN] Skipping ELB Classic Load Balancer sweep for %s: %s" , region , err )
52+ return nil
53+ }
54+
5455 if err != nil {
55- if sweep .SkipSweepError (err ) {
56- log .Printf ("[WARN] Skipping ELB sweep for %s: %s" , region , err )
57- return nil
58- }
59- return fmt .Errorf ("Error retrieving ELBs: %s" , err )
56+ return fmt .Errorf ("error listing ELB Classic Load Balancers (%s): %w" , region , err )
6057 }
58+
59+ err = sweep .SweepOrchestratorWithContext (ctx , sweepResources )
60+
61+ if err != nil {
62+ return fmt .Errorf ("error sweeping ELB Classic Load Balancers (%s): %w" , region , err )
63+ }
64+
6165 return nil
6266}
0 commit comments