|
4 | 4 | package transfer
|
5 | 5 |
|
6 | 6 | import (
|
7 |
| - "fmt" |
8 |
| - "log" |
| 7 | + "context" |
9 | 8 |
|
10 | 9 | "github.com/aws/aws-sdk-go-v2/aws"
|
11 | 10 | "github.com/aws/aws-sdk-go-v2/service/transfer"
|
12 |
| - "github.com/hashicorp/terraform-plugin-testing/helper/resource" |
| 11 | + "github.com/hashicorp/terraform-provider-aws/internal/conns" |
13 | 12 | "github.com/hashicorp/terraform-provider-aws/internal/sweep"
|
14 | 13 | "github.com/hashicorp/terraform-provider-aws/internal/sweep/awsv2"
|
| 14 | + "github.com/hashicorp/terraform-provider-aws/internal/sweep/framework" |
15 | 15 | "github.com/hashicorp/terraform-provider-aws/names"
|
16 | 16 | )
|
17 | 17 |
|
18 | 18 | func RegisterSweepers() {
|
19 |
| - resource.AddTestSweepers("aws_transfer_server", &resource.Sweeper{ |
20 |
| - Name: "aws_transfer_server", |
21 |
| - F: sweepServers, |
22 |
| - }) |
23 |
| - |
24 |
| - resource.AddTestSweepers("aws_transfer_workflow", &resource.Sweeper{ |
25 |
| - Name: "aws_transfer_workflow", |
26 |
| - F: sweepWorkflows, |
27 |
| - Dependencies: []string{ |
28 |
| - "aws_transfer_server", |
29 |
| - }, |
30 |
| - }) |
| 19 | + awsv2.Register("aws_transfer_certificate", sweepCertificates) |
| 20 | + awsv2.Register("aws_transfer_connector", sweepConnectors) |
| 21 | + awsv2.Register("aws_transfer_profile", sweepProfiles) |
| 22 | + awsv2.Register("aws_transfer_server", sweepServers) |
| 23 | + awsv2.Register("aws_transfer_web_app", sweepWebApps) |
| 24 | + awsv2.Register("aws_transfer_workflow", sweepWorkflows, "aws_transfer_server") |
31 | 25 | }
|
32 | 26 |
|
33 |
| -func sweepServers(region string) error { |
34 |
| - ctx := sweep.Context(region) |
35 |
| - client, err := sweep.SharedRegionalSweepClient(ctx, region) |
36 |
| - if err != nil { |
37 |
| - return fmt.Errorf("getting client: %w", err) |
38 |
| - } |
| 27 | +func sweepCertificates(ctx context.Context, client *conns.AWSClient) ([]sweep.Sweepable, error) { |
39 | 28 | conn := client.TransferClient(ctx)
|
40 |
| - input := &transfer.ListServersInput{} |
| 29 | + var input transfer.ListCertificatesInput |
41 | 30 | sweepResources := make([]sweep.Sweepable, 0)
|
42 | 31 |
|
43 |
| - pages := transfer.NewListServersPaginator(conn, input) |
| 32 | + pages := transfer.NewListCertificatesPaginator(conn, &input) |
44 | 33 | for pages.HasMorePages() {
|
45 | 34 | page, err := pages.NextPage(ctx)
|
| 35 | + if err != nil { |
| 36 | + return nil, err |
| 37 | + } |
| 38 | + |
| 39 | + for _, v := range page.Certificates { |
| 40 | + r := resourceCertificate() |
| 41 | + d := r.Data(nil) |
| 42 | + d.SetId(aws.ToString(v.CertificateId)) |
46 | 43 |
|
47 |
| - if awsv2.SkipSweepError(err) { |
48 |
| - log.Printf("[WARN] Skipping Transfer Server sweep for %s: %s", region, err) |
49 |
| - return nil |
| 44 | + sweepResources = append(sweepResources, sweep.NewSweepResource(r, d, client)) |
50 | 45 | }
|
| 46 | + } |
51 | 47 |
|
| 48 | + return sweepResources, nil |
| 49 | +} |
| 50 | + |
| 51 | +func sweepConnectors(ctx context.Context, client *conns.AWSClient) ([]sweep.Sweepable, error) { |
| 52 | + conn := client.TransferClient(ctx) |
| 53 | + var input transfer.ListConnectorsInput |
| 54 | + sweepResources := make([]sweep.Sweepable, 0) |
| 55 | + |
| 56 | + pages := transfer.NewListConnectorsPaginator(conn, &input) |
| 57 | + for pages.HasMorePages() { |
| 58 | + page, err := pages.NextPage(ctx) |
52 | 59 | if err != nil {
|
53 |
| - return fmt.Errorf("error listing Transfer Servers (%s): %w", region, err) |
| 60 | + return nil, err |
54 | 61 | }
|
55 | 62 |
|
56 |
| - for _, server := range page.Servers { |
57 |
| - r := resourceServer() |
| 63 | + for _, v := range page.Connectors { |
| 64 | + r := resourceConnector() |
58 | 65 | d := r.Data(nil)
|
59 |
| - d.SetId(aws.ToString(server.ServerId)) |
60 |
| - d.Set(names.AttrForceDestroy, true) // In lieu of an aws_transfer_user sweeper. |
61 |
| - d.Set("identity_provider_type", server.IdentityProviderType) |
| 66 | + d.SetId(aws.ToString(v.ConnectorId)) |
62 | 67 |
|
63 | 68 | sweepResources = append(sweepResources, sweep.NewSweepResource(r, d, client))
|
64 | 69 | }
|
65 | 70 | }
|
66 | 71 |
|
67 |
| - err = sweep.SweepOrchestrator(ctx, sweepResources) |
| 72 | + return sweepResources, nil |
| 73 | +} |
| 74 | + |
| 75 | +func sweepProfiles(ctx context.Context, client *conns.AWSClient) ([]sweep.Sweepable, error) { |
| 76 | + conn := client.TransferClient(ctx) |
| 77 | + var input transfer.ListProfilesInput |
| 78 | + sweepResources := make([]sweep.Sweepable, 0) |
68 | 79 |
|
69 |
| - if err != nil { |
70 |
| - return fmt.Errorf("error sweeping Transfer Servers (%s): %w", region, err) |
| 80 | + pages := transfer.NewListProfilesPaginator(conn, &input) |
| 81 | + for pages.HasMorePages() { |
| 82 | + page, err := pages.NextPage(ctx) |
| 83 | + if err != nil { |
| 84 | + return nil, err |
| 85 | + } |
| 86 | + |
| 87 | + for _, v := range page.Profiles { |
| 88 | + r := resourceProfile() |
| 89 | + d := r.Data(nil) |
| 90 | + d.SetId(aws.ToString(v.ProfileId)) |
| 91 | + |
| 92 | + sweepResources = append(sweepResources, sweep.NewSweepResource(r, d, client)) |
| 93 | + } |
71 | 94 | }
|
72 | 95 |
|
73 |
| - return nil |
| 96 | + return sweepResources, nil |
74 | 97 | }
|
75 | 98 |
|
76 |
| -func sweepWorkflows(region string) error { |
77 |
| - ctx := sweep.Context(region) |
78 |
| - client, err := sweep.SharedRegionalSweepClient(ctx, region) |
79 |
| - if err != nil { |
80 |
| - return fmt.Errorf("getting client: %w", err) |
| 99 | +func sweepServers(ctx context.Context, client *conns.AWSClient) ([]sweep.Sweepable, error) { |
| 100 | + conn := client.TransferClient(ctx) |
| 101 | + var input transfer.ListServersInput |
| 102 | + sweepResources := make([]sweep.Sweepable, 0) |
| 103 | + |
| 104 | + pages := transfer.NewListServersPaginator(conn, &input) |
| 105 | + for pages.HasMorePages() { |
| 106 | + page, err := pages.NextPage(ctx) |
| 107 | + if err != nil { |
| 108 | + return nil, err |
| 109 | + } |
| 110 | + |
| 111 | + for _, v := range page.Servers { |
| 112 | + r := resourceServer() |
| 113 | + d := r.Data(nil) |
| 114 | + d.SetId(aws.ToString(v.ServerId)) |
| 115 | + d.Set(names.AttrForceDestroy, true) // In lieu of an aws_transfer_user sweeper. |
| 116 | + d.Set("identity_provider_type", v.IdentityProviderType) |
| 117 | + |
| 118 | + sweepResources = append(sweepResources, sweep.NewSweepResource(r, d, client)) |
| 119 | + } |
81 | 120 | }
|
| 121 | + |
| 122 | + return sweepResources, nil |
| 123 | +} |
| 124 | + |
| 125 | +func sweepWebApps(ctx context.Context, client *conns.AWSClient) ([]sweep.Sweepable, error) { |
82 | 126 | conn := client.TransferClient(ctx)
|
83 |
| - input := &transfer.ListWorkflowsInput{} |
| 127 | + var input transfer.ListWebAppsInput |
84 | 128 | sweepResources := make([]sweep.Sweepable, 0)
|
85 | 129 |
|
86 |
| - pages := transfer.NewListWorkflowsPaginator(conn, input) |
| 130 | + pages := transfer.NewListWebAppsPaginator(conn, &input) |
87 | 131 | for pages.HasMorePages() {
|
88 | 132 | page, err := pages.NextPage(ctx)
|
| 133 | + if err != nil { |
| 134 | + return nil, err |
| 135 | + } |
89 | 136 |
|
90 |
| - if awsv2.SkipSweepError(err) { |
91 |
| - log.Printf("[WARN] Skipping Transfer Workflow sweep for %s: %s", region, err) |
92 |
| - return nil |
| 137 | + for _, v := range page.WebApps { |
| 138 | + sweepResources = append(sweepResources, framework.NewSweepResource(newWebAppResource, client, |
| 139 | + framework.NewAttribute("web_app_id", aws.ToString(v.WebAppId))), |
| 140 | + ) |
93 | 141 | }
|
| 142 | + } |
| 143 | + |
| 144 | + return sweepResources, nil |
| 145 | +} |
| 146 | + |
| 147 | +func sweepWorkflows(ctx context.Context, client *conns.AWSClient) ([]sweep.Sweepable, error) { |
| 148 | + conn := client.TransferClient(ctx) |
| 149 | + var input transfer.ListWorkflowsInput |
| 150 | + sweepResources := make([]sweep.Sweepable, 0) |
94 | 151 |
|
| 152 | + pages := transfer.NewListWorkflowsPaginator(conn, &input) |
| 153 | + for pages.HasMorePages() { |
| 154 | + page, err := pages.NextPage(ctx) |
95 | 155 | if err != nil {
|
96 |
| - return fmt.Errorf("error listing Transfer Workflows (%s): %w", region, err) |
| 156 | + return nil, err |
97 | 157 | }
|
98 | 158 |
|
99 |
| - for _, server := range page.Workflows { |
| 159 | + for _, v := range page.Workflows { |
100 | 160 | r := resourceWorkflow()
|
101 | 161 | d := r.Data(nil)
|
102 |
| - d.SetId(aws.ToString(server.WorkflowId)) |
| 162 | + d.SetId(aws.ToString(v.WorkflowId)) |
103 | 163 |
|
104 | 164 | sweepResources = append(sweepResources, sweep.NewSweepResource(r, d, client))
|
105 | 165 | }
|
106 | 166 | }
|
107 | 167 |
|
108 |
| - err = sweep.SweepOrchestrator(ctx, sweepResources) |
109 |
| - |
110 |
| - if err != nil { |
111 |
| - return fmt.Errorf("error sweeping Transfer Workflows (%s): %w", region, err) |
112 |
| - } |
113 |
| - |
114 |
| - return nil |
| 168 | + return sweepResources, nil |
115 | 169 | }
|
0 commit comments