Skip to content

Commit

Permalink
tests: add sweepers for LB resources
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobbednarz committed Jun 29, 2022
1 parent 3a72812 commit f38f045
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,58 @@ package provider
import (
"context"
"fmt"
"log"
"os"
"regexp"
"testing"
"time"

"github.com/cloudflare/cloudflare-go"
"github.com/hashicorp/terraform-plugin-log/tflog"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
"github.com/pkg/errors"
)

func init() {
resource.AddTestSweepers("cloudflare_load_balancer_monitor", &resource.Sweeper{
Name: "cloudflare_load_balancer_monitor",
F: testSweepCloudflareLoadBalancerMonitors,
})
}

func testSweepCloudflareLoadBalancerMonitors(r string) error {
ctx := context.Background()
client, clientErr := sharedClient()
if clientErr != nil {
tflog.Error(ctx, fmt.Sprintf("Failed to create Cloudflare client: %s", clientErr))
}

accountID := os.Getenv("CLOUDFLARE_ACCOUNT_ID")
if accountID == "" {
return errors.New("CLOUDFLARE_ACCOUNT_ID must be set")
}

client.AccountID = accountID
monitors, err := client.ListLoadBalancerMonitors(ctx)
if err != nil {
tflog.Error(ctx, fmt.Sprintf("Failed to fetch Cloudflare Load Balancer Monitors: %s", err))
}

if len(monitors) == 0 {
log.Print("[DEBUG] No Cloudflare Load Balancer Monitors to sweep")
return nil
}

for _, monitor := range monitors {
tflog.Info(ctx, fmt.Sprintf("Deleting Cloudflare Load Balancer Monitor ID: %s", monitor.ID))
//nolint:errcheck
client.DeleteLoadBalancerPool(ctx, monitor.ID)
}

return nil
}

func TestAccCloudflareLoadBalancerMonitor_Basic(t *testing.T) {
testStartTime := time.Now().UTC()
var loadBalancerMonitor cloudflare.LoadBalancerMonitor
Expand Down
41 changes: 41 additions & 0 deletions internal/provider/resource_cloudflare_load_balancer_pool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,58 @@ package provider
import (
"context"
"fmt"
"log"
"os"
"regexp"
"testing"
"time"

"github.com/cloudflare/cloudflare-go"
"github.com/hashicorp/terraform-plugin-log/tflog"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
"github.com/pkg/errors"
)

func init() {
resource.AddTestSweepers("cloudflare_load_balancer_pool", &resource.Sweeper{
Name: "cloudflare_load_balancer_pool",
F: testSweepCloudflareLoadBalancerPool,
})
}

func testSweepCloudflareLoadBalancerPool(r string) error {
ctx := context.Background()
client, clientErr := sharedClient()
if clientErr != nil {
tflog.Error(ctx, fmt.Sprintf("Failed to create Cloudflare client: %s", clientErr))
}

accountID := os.Getenv("CLOUDFLARE_ACCOUNT_ID")
if accountID == "" {
return errors.New("CLOUDFLARE_ACCOUNT_ID must be set")
}

client.AccountID = accountID
pools, err := client.ListLoadBalancerPools(ctx)
if err != nil {
tflog.Error(ctx, fmt.Sprintf("Failed to fetch Cloudflare Load Balancer Pools: %s", err))
}

if len(pools) == 0 {
log.Print("[DEBUG] No Cloudflare Load Balancer Pools to sweep")
return nil
}

for _, pool := range pools {
tflog.Info(ctx, fmt.Sprintf("Deleting Cloudflare Load Balancer Pool ID: %s", pool.ID))
//nolint:errcheck
client.DeleteLoadBalancerPool(ctx, pool.ID)
}

return nil
}

func TestAccCloudflareLoadBalancerPool_Basic(t *testing.T) {
// multiple instances of this config would conflict but we only use it once
t.Parallel()
Expand Down
41 changes: 41 additions & 0 deletions internal/provider/resource_cloudflare_load_balancer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package provider
import (
"context"
"fmt"
"log"
"testing"

"time"
Expand All @@ -12,10 +13,50 @@ import (
"regexp"

cloudflare "github.com/cloudflare/cloudflare-go"
"github.com/hashicorp/terraform-plugin-log/tflog"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
"github.com/pkg/errors"
)

func init() {
resource.AddTestSweepers("cloudflare_load_balancer", &resource.Sweeper{
Name: "cloudflare_load_balancer",
F: testSweepCloudflareLoadBalancer,
})
}

func testSweepCloudflareLoadBalancer(r string) error {
ctx := context.Background()
client, clientErr := sharedClient()
if clientErr != nil {
tflog.Error(ctx, fmt.Sprintf("Failed to create Cloudflare client: %s", clientErr))
}

zoneID := os.Getenv("CLOUDFLARE_ZONE_ID")
if zoneID == "" {
return errors.New("CLOUDFLARE_ZONE_ID must be set")
}

lbs, err := client.ListLoadBalancers(ctx, zoneID)
if err != nil {
tflog.Error(ctx, fmt.Sprintf("Failed to fetch Cloudflare Load Balancers: %s", err))
}

if len(lbs) == 0 {
log.Print("[DEBUG] No Cloudflare Load Balancers to sweep")
return nil
}

for _, lb := range lbs {
tflog.Info(ctx, fmt.Sprintf("Deleting Cloudflare Load Balancer ID: %s", lb.ID))
//nolint:errcheck
client.DeleteLoadBalancer(ctx, zoneID, lb.ID)
}

return nil
}

func TestAccCloudflareLoadBalancer_Basic(t *testing.T) {
// multiple instances of this config would conflict but we only use it once
t.Parallel()
Expand Down

0 comments on commit f38f045

Please sign in to comment.