Skip to content

Commit ebcaac9

Browse files
compute target pool sweeper (#10871) (#18318)
[upstream:a93f5a6e1dc3d7cdc4538d37f0e80e3891a2746d] Signed-off-by: Modular Magician <magic-modules@google.com>
1 parent 608bd6b commit ebcaac9

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
// Copyright (c) HashiCorp, Inc.
2+
// SPDX-License-Identifier: MPL-2.0
3+
package compute
4+
5+
import (
6+
"context"
7+
"log"
8+
9+
"github.com/hashicorp/terraform-provider-google/google/sweeper"
10+
"github.com/hashicorp/terraform-provider-google/google/tpgresource"
11+
)
12+
13+
// This will sweep GCE Target Pool resources
14+
func init() {
15+
sweeper.AddTestSweepers("ComputeTargetPool", testSweepTargetPool)
16+
}
17+
18+
// At the time of writing, the CI only passes us-central1 as the region
19+
func testSweepTargetPool(region string) error {
20+
resourceName := "ComputeTargetPool"
21+
log.Printf("[INFO][SWEEPER_LOG] Starting sweeper for %s", resourceName)
22+
23+
config, err := sweeper.SharedConfigForRegion(region)
24+
if err != nil {
25+
log.Printf("[INFO][SWEEPER_LOG] error getting shared config for region: %s", err)
26+
return err
27+
}
28+
29+
err = config.LoadAndValidate(context.Background())
30+
if err != nil {
31+
log.Printf("[INFO][SWEEPER_LOG] error loading: %s", err)
32+
return err
33+
}
34+
35+
found, err := config.NewComputeClient(config.UserAgent).TargetPools.AggregatedList(config.Project).Do()
36+
if err != nil {
37+
log.Printf("[INFO][SWEEPER_LOG] Error in response from request: %s", err)
38+
return nil
39+
}
40+
41+
// log.Printf("cam here")
42+
// log.Printf("%+v", found)
43+
44+
// Keep count of items that aren't sweepable for logging.
45+
nonPrefixCount := 0
46+
for zone, itemList := range found.Items {
47+
for _, tp := range itemList.TargetPools {
48+
if !sweeper.IsSweepableTestResource(tp.Name) {
49+
nonPrefixCount++
50+
continue
51+
}
52+
53+
// Don't wait on operations as we may have a lot to delete
54+
_, err := config.NewComputeClient(config.UserAgent).TargetPools.Delete(config.Project, tpgresource.GetResourceNameFromSelfLink(zone), tp.Name).Do()
55+
if err != nil {
56+
log.Printf("[INFO][SWEEPER_LOG] Error deleting %s resource %s : %s", resourceName, tp.Name, err)
57+
} else {
58+
log.Printf("[INFO][SWEEPER_LOG] Sent delete request for %s resource: %s", resourceName, tp.Name)
59+
}
60+
}
61+
}
62+
63+
if nonPrefixCount > 0 {
64+
log.Printf("[INFO][SWEEPER_LOG] %d items were non-sweepable and skipped.", nonPrefixCount)
65+
}
66+
67+
return nil
68+
}

0 commit comments

Comments
 (0)