Skip to content

Commit

Permalink
compute target pool sweeper (GoogleCloudPlatform#10871)
Browse files Browse the repository at this point in the history
  • Loading branch information
c2thorn authored Jun 4, 2024
1 parent 00dddb9 commit a93f5a6
Showing 1 changed file with 66 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package compute

import (
"context"
"log"

"github.com/hashicorp/terraform-provider-google/google/sweeper"
"github.com/hashicorp/terraform-provider-google/google/tpgresource"
)

// This will sweep GCE Target Pool resources
func init() {
sweeper.AddTestSweepers("ComputeTargetPool", testSweepTargetPool)
}

// At the time of writing, the CI only passes us-central1 as the region
func testSweepTargetPool(region string) error {
resourceName := "ComputeTargetPool"
log.Printf("[INFO][SWEEPER_LOG] Starting sweeper for %s", resourceName)

config, err := sweeper.SharedConfigForRegion(region)
if err != nil {
log.Printf("[INFO][SWEEPER_LOG] error getting shared config for region: %s", err)
return err
}

err = config.LoadAndValidate(context.Background())
if err != nil {
log.Printf("[INFO][SWEEPER_LOG] error loading: %s", err)
return err
}

found, err := config.NewComputeClient(config.UserAgent).TargetPools.AggregatedList(config.Project).Do()
if err != nil {
log.Printf("[INFO][SWEEPER_LOG] Error in response from request: %s", err)
return nil
}

// log.Printf("cam here")
// log.Printf("%+v", found)

// Keep count of items that aren't sweepable for logging.
nonPrefixCount := 0
for zone, itemList := range found.Items {
for _, tp := range itemList.TargetPools {
if !sweeper.IsSweepableTestResource(tp.Name) {
nonPrefixCount++
continue
}

// Don't wait on operations as we may have a lot to delete
_, err := config.NewComputeClient(config.UserAgent).TargetPools.Delete(config.Project, tpgresource.GetResourceNameFromSelfLink(zone), tp.Name).Do()
if err != nil {
log.Printf("[INFO][SWEEPER_LOG] Error deleting %s resource %s : %s", resourceName, tp.Name, err)
} else {
log.Printf("[INFO][SWEEPER_LOG] Sent delete request for %s resource: %s", resourceName, tp.Name)
}
}
}

if nonPrefixCount > 0 {
log.Printf("[INFO][SWEEPER_LOG] %d items were non-sweepable and skipped.", nonPrefixCount)
}

return nil
}

0 comments on commit a93f5a6

Please sign in to comment.