Skip to content

Commit 2df1874

Browse files
authored
Merge pull request #42708 from tabito-hara/f-aws_transfer_web_app
[New Resources]`aws_transfer_web_app` and `aws_transfer_web_app_customization`
2 parents d905b31 + f7db79d commit 2df1874

12 files changed

+1907
-67
lines changed

.changelog/42708.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:new-resource
2+
aws_transfer_web_app
3+
```
4+
5+
```release-note:new-resource
6+
aws_transfer_web_app_customization
7+
```

internal/service/transfer/exports_test.go

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,18 @@ package transfer
55

66
// Exports for use in tests only.
77
var (
8-
ResourceAccess = resourceAccess
9-
ResourceAgreement = resourceAgreement
10-
ResourceCertificate = resourceCertificate
11-
ResourceConnector = resourceConnector
12-
ResourceProfile = resourceProfile
13-
ResourceServer = resourceServer
14-
ResourceSSHKey = resourceSSHKey
15-
ResourceTag = resourceTag
16-
ResourceUser = resourceUser
17-
ResourceWorkflow = resourceWorkflow
8+
ResourceAccess = resourceAccess
9+
ResourceAgreement = resourceAgreement
10+
ResourceCertificate = resourceCertificate
11+
ResourceConnector = resourceConnector
12+
ResourceProfile = resourceProfile
13+
ResourceServer = resourceServer
14+
ResourceSSHKey = resourceSSHKey
15+
ResourceTag = resourceTag
16+
ResourceUser = resourceUser
17+
ResourceWebApp = newWebAppResource
18+
ResourceWebAppCustomization = newWebAppCustomizationResource
19+
ResourceWorkflow = resourceWorkflow
1820

1921
FindAccessByTwoPartKey = findAccessByTwoPartKey
2022
FindAgreementByTwoPartKey = findAgreementByTwoPartKey
@@ -26,4 +28,6 @@ var (
2628
FindUserByTwoPartKey = findUserByTwoPartKey
2729
FindUserSSHKeyByThreePartKey = findUserSSHKeyByThreePartKey
2830
FindWorkflowByID = findWorkflowByID
31+
FindWebAppByID = findWebAppByID
32+
FindWebAppCustomizationByID = findWebAppCustomizationByID
2933
)

internal/service/transfer/service_package_gen.go

Lines changed: 17 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/service/transfer/sweep.go

Lines changed: 110 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,112 +4,166 @@
44
package transfer
55

66
import (
7-
"fmt"
8-
"log"
7+
"context"
98

109
"github.com/aws/aws-sdk-go-v2/aws"
1110
"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"
1312
"github.com/hashicorp/terraform-provider-aws/internal/sweep"
1413
"github.com/hashicorp/terraform-provider-aws/internal/sweep/awsv2"
14+
"github.com/hashicorp/terraform-provider-aws/internal/sweep/framework"
1515
"github.com/hashicorp/terraform-provider-aws/names"
1616
)
1717

1818
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")
3125
}
3226

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) {
3928
conn := client.TransferClient(ctx)
40-
input := &transfer.ListServersInput{}
29+
var input transfer.ListCertificatesInput
4130
sweepResources := make([]sweep.Sweepable, 0)
4231

43-
pages := transfer.NewListServersPaginator(conn, input)
32+
pages := transfer.NewListCertificatesPaginator(conn, &input)
4433
for pages.HasMorePages() {
4534
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))
4643

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))
5045
}
46+
}
5147

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)
5259
if err != nil {
53-
return fmt.Errorf("error listing Transfer Servers (%s): %w", region, err)
60+
return nil, err
5461
}
5562

56-
for _, server := range page.Servers {
57-
r := resourceServer()
63+
for _, v := range page.Connectors {
64+
r := resourceConnector()
5865
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))
6267

6368
sweepResources = append(sweepResources, sweep.NewSweepResource(r, d, client))
6469
}
6570
}
6671

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)
6879

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+
}
7194
}
7295

73-
return nil
96+
return sweepResources, nil
7497
}
7598

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+
}
81120
}
121+
122+
return sweepResources, nil
123+
}
124+
125+
func sweepWebApps(ctx context.Context, client *conns.AWSClient) ([]sweep.Sweepable, error) {
82126
conn := client.TransferClient(ctx)
83-
input := &transfer.ListWorkflowsInput{}
127+
var input transfer.ListWebAppsInput
84128
sweepResources := make([]sweep.Sweepable, 0)
85129

86-
pages := transfer.NewListWorkflowsPaginator(conn, input)
130+
pages := transfer.NewListWebAppsPaginator(conn, &input)
87131
for pages.HasMorePages() {
88132
page, err := pages.NextPage(ctx)
133+
if err != nil {
134+
return nil, err
135+
}
89136

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+
)
93141
}
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)
94151

152+
pages := transfer.NewListWorkflowsPaginator(conn, &input)
153+
for pages.HasMorePages() {
154+
page, err := pages.NextPage(ctx)
95155
if err != nil {
96-
return fmt.Errorf("error listing Transfer Workflows (%s): %w", region, err)
156+
return nil, err
97157
}
98158

99-
for _, server := range page.Workflows {
159+
for _, v := range page.Workflows {
100160
r := resourceWorkflow()
101161
d := r.Data(nil)
102-
d.SetId(aws.ToString(server.WorkflowId))
162+
d.SetId(aws.ToString(v.WorkflowId))
103163

104164
sweepResources = append(sweepResources, sweep.NewSweepResource(r, d, client))
105165
}
106166
}
107167

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
115169
}
4.33 KB
Loading
4.32 KB
Loading

0 commit comments

Comments
 (0)