Skip to content

Commit

Permalink
chime: add voice connector sweeper (#38419)
Browse files Browse the repository at this point in the history
```console
% make sweep SWEEPARGS=-sweep-run=aws_chime_voice_connector
WARNING: This will destroy infrastructure. Use only in development accounts.                                                                                                         go1.22.5 test ./internal/sweep -v -sweep=us-west-2,us-east-1,us-east-2,us-west-1 -sweep-run=aws_chime_voice_connector -timeout 360m
2024/07/18 15:46:19 [DEBUG] Running Sweepers for region (us-west-2):
<snip>

2024/07/18 15:46:21 Completed Sweepers for region (us-west-1) in 398.482166ms
2024/07/18 15:46:21 Sweeper Tests for region (us-west-1) ran successfully:
2024/07/18 15:46:21     - aws_chime_voice_connector
ok      github.com/hashicorp/terraform-provider-aws/internal/sweep      7.861s
```
  • Loading branch information
jar-b authored Jul 19, 2024
1 parent dcb29fd commit b63cdbe
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
65 changes: 65 additions & 0 deletions internal/service/chime/sweep.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package chime

import (
"fmt"
"log"

"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/service/chimesdkvoice"
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/hashicorp/terraform-provider-aws/internal/sweep"
"github.com/hashicorp/terraform-provider-aws/internal/sweep/awsv2"
"github.com/hashicorp/terraform-provider-aws/internal/sweep/sdk"
)

func RegisterSweepers() {
resource.AddTestSweepers("aws_chime_voice_connector", &resource.Sweeper{
Name: "aws_chime_voice_connector",
F: sweepVoiceConnectors,
})
}

func sweepVoiceConnectors(region string) error {
ctx := sweep.Context(region)
client, err := sweep.SharedRegionalSweepClient(ctx, region)
if err != nil {
return fmt.Errorf("error getting client: %s", err)
}

conn := client.ChimeSDKVoiceClient(ctx)
sweepResources := make([]sweep.Sweepable, 0)
in := &chimesdkvoice.ListVoiceConnectorsInput{}

pages := chimesdkvoice.NewListVoiceConnectorsPaginator(conn, in)

for pages.HasMorePages() {
page, err := pages.NextPage(ctx)
if awsv2.SkipSweepError(err) {
log.Printf("[WARN] Skipping Chime Voice Connector sweep for %s: %s", region, err)
return nil
}
if err != nil {
return fmt.Errorf("error retrieving Chime Voice Connectors: %w", err)
}

for _, vc := range page.VoiceConnectors {
id := aws.ToString(vc.VoiceConnectorId)

r := ResourceVoiceConnector()
d := r.Data(nil)
d.SetId(id)

log.Printf("[INFO] Deleting Chime Voice Connector: %s", id)
sweepResources = append(sweepResources, sdk.NewSweepResource(r, d, client))
}
}

if err := sweep.SweepOrchestrator(ctx, sweepResources); err != nil {
return fmt.Errorf("error sweeping Chime Voice Connectors for %s: %w", region, err)
}

return nil
}
2 changes: 2 additions & 0 deletions internal/sweep/register_gen_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit b63cdbe

Please sign in to comment.