7
7
"fmt"
8
8
"log"
9
9
10
+ "github.com/aws/aws-sdk-go/aws"
10
11
"github.com/aws/aws-sdk-go/service/elb"
11
12
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
12
13
"github.com/hashicorp/terraform-provider-aws/internal/conns"
@@ -24,39 +25,42 @@ func sweepLoadBalancers(region string) error {
24
25
ctx := sweep .Context (region )
25
26
client , err := sweep .SharedRegionalSweepClient (region )
26
27
if err != nil {
27
- return fmt .Errorf ("getting client: %s" , err )
28
+ return fmt .Errorf ("error getting client: %s" , err )
28
29
}
29
30
conn := client .(* conns.AWSClient ).ELBConn ()
31
+ input := & elb.DescribeLoadBalancersInput {}
32
+ sweepResources := make ([]sweep.Sweepable , 0 )
30
33
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
35
37
}
36
38
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 ))
51
45
}
46
+
52
47
return ! lastPage
53
48
})
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
+
54
55
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 )
60
57
}
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
+
61
65
return nil
62
66
}
0 commit comments