Skip to content

Commit

Permalink
refactor(sweepers): change sweepers format to include dependencies (#…
Browse files Browse the repository at this point in the history
…2509)

* refactor(sweepers): change sweepers format to include dependencies

* change more services

* fix import in iot

* fix folder names
  • Loading branch information
Codelax committed Apr 8, 2024
1 parent 7730ca3 commit 6ce156f
Show file tree
Hide file tree
Showing 123 changed files with 2,670 additions and 2,130 deletions.
2 changes: 1 addition & 1 deletion GNUmakefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
SWEEP?=all_regions
SWEEP_DIR?=./scaleway
SWEEP_DIR?=./internal/services/*
TEST?=$$(go list ./... |grep -v 'vendor')
GOFMT_FILES?=$$(find . -name '*.go' |grep -v vendor)
WEBSITE_REPO=github.com/hashicorp/terraform-website
Expand Down
36 changes: 0 additions & 36 deletions internal/services/account/project_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,47 +7,11 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
accountSDK "github.com/scaleway/scaleway-sdk-go/api/account/v3"
"github.com/scaleway/scaleway-sdk-go/scw"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/httperrors"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/logging"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/account"
)

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

func testSweepAccountProject(_ string) error {
return acctest.Sweep(func(scwClient *scw.Client) error {
accountAPI := accountSDK.NewProjectAPI(scwClient)

logging.L.Debugf("sweeper: destroying the project")

req := &accountSDK.ProjectAPIListProjectsRequest{}
listProjects, err := accountAPI.ListProjects(req, scw.WithAllPages())
if err != nil {
return fmt.Errorf("failed to list projects: %w", err)
}
for _, project := range listProjects.Projects {
// Do not delete default project
if project.ID == req.OrganizationID || !acctest.IsTestResource(project.Name) {
continue
}
err = accountAPI.DeleteProject(&accountSDK.ProjectAPIDeleteProjectRequest{
ProjectID: project.ID,
})
if err != nil {
return fmt.Errorf("failed to delete project: %w", err)
}
}
return nil
})
}

func TestAccProject_Basic(t *testing.T) {
tt := acctest.NewTestTools(t)
defer tt.Cleanup()
Expand Down
16 changes: 16 additions & 0 deletions internal/services/account/sweep_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package account_test

import (
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
accounttestfuncs "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/account/testfuncs"
)

func init() {
accounttestfuncs.AddTestSweepers()
}

func TestMain(m *testing.M) {
resource.TestMain(m)
}
45 changes: 45 additions & 0 deletions internal/services/account/testfuncs/sweep.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package accounttestfuncs

import (
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
accountSDK "github.com/scaleway/scaleway-sdk-go/api/account/v3"
"github.com/scaleway/scaleway-sdk-go/scw"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/logging"
)

func AddTestSweepers() {
resource.AddTestSweepers("scaleway_account_project", &resource.Sweeper{
Name: "scaleway_account_project",
F: testSweepAccountProject,
})
}

func testSweepAccountProject(_ string) error {
return acctest.Sweep(func(scwClient *scw.Client) error {
accountAPI := accountSDK.NewProjectAPI(scwClient)

logging.L.Debugf("sweeper: destroying the project")

req := &accountSDK.ProjectAPIListProjectsRequest{}
listProjects, err := accountAPI.ListProjects(req, scw.WithAllPages())
if err != nil {
return fmt.Errorf("failed to list projects: %w", err)
}
for _, project := range listProjects.Projects {
// Do not delete default project
if project.ID == req.OrganizationID || !acctest.IsTestResource(project.Name) {
continue
}
err = accountAPI.DeleteProject(&accountSDK.ProjectAPIDeleteProjectRequest{
ProjectID: project.ID,
})
if err != nil {
return fmt.Errorf("failed to delete project: %w", err)
}
}
return nil
})
}
32 changes: 0 additions & 32 deletions internal/services/applesilicon/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,43 +7,11 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
applesiliconSDK "github.com/scaleway/scaleway-sdk-go/api/applesilicon/v1alpha1"
"github.com/scaleway/scaleway-sdk-go/scw"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/httperrors"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/logging"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/applesilicon"
)

func init() {
resource.AddTestSweepers("scaleway_apple_silicon_instance", &resource.Sweeper{
Name: "scaleway_apple_silicon",
F: testSweepAppleSiliconServer,
})
}

func testSweepAppleSiliconServer(_ string) error {
return acctest.SweepZones([]scw.Zone{scw.ZoneFrPar1}, func(scwClient *scw.Client, zone scw.Zone) error {
asAPI := applesiliconSDK.NewAPI(scwClient)
logging.L.Debugf("sweeper: destroying the apple silicon instance in (%s)", zone)
listServers, err := asAPI.ListServers(&applesiliconSDK.ListServersRequest{Zone: zone}, scw.WithAllPages())
if err != nil {
return fmt.Errorf("error listing apple silicon servers in (%s) in sweeper: %s", zone, err)
}

for _, server := range listServers.Servers {
errDelete := asAPI.DeleteServer(&applesiliconSDK.DeleteServerRequest{
ServerID: server.ID,
Zone: zone,
})
if errDelete != nil {
return fmt.Errorf("error deleting apple silicon server in sweeper: %s", err)
}
}

return nil
})
}

func TestAccServer_Basic(t *testing.T) {
t.Skip("Skipping AppleSilicon test as this kind of server can't be deleted before 24h")
tt := acctest.NewTestTools(t)
Expand Down
16 changes: 16 additions & 0 deletions internal/services/applesilicon/sweep_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package applesilicon_test

import (
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
applesilicontestfuncs "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/applesilicon/testfuncs"
)

func init() {
applesilicontestfuncs.AddTestSweepers()
}

func TestMain(m *testing.M) {
resource.TestMain(m)
}
41 changes: 41 additions & 0 deletions internal/services/applesilicon/testfuncs/sweep.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package applesilicontestfuncs

import (
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
applesiliconSDK "github.com/scaleway/scaleway-sdk-go/api/applesilicon/v1alpha1"
"github.com/scaleway/scaleway-sdk-go/scw"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/logging"
)

func AddTestSweepers() {
resource.AddTestSweepers("scaleway_apple_silicon_instance", &resource.Sweeper{
Name: "scaleway_apple_silicon",
F: testSweepAppleSiliconServer,
})
}

func testSweepAppleSiliconServer(_ string) error {
return acctest.SweepZones([]scw.Zone{scw.ZoneFrPar1}, func(scwClient *scw.Client, zone scw.Zone) error {
asAPI := applesiliconSDK.NewAPI(scwClient)
logging.L.Debugf("sweeper: destroying the apple silicon instance in (%s)", zone)
listServers, err := asAPI.ListServers(&applesiliconSDK.ListServersRequest{Zone: zone}, scw.WithAllPages())
if err != nil {
return fmt.Errorf("error listing apple silicon servers in (%s) in sweeper: %s", zone, err)
}

for _, server := range listServers.Servers {
errDelete := asAPI.DeleteServer(&applesiliconSDK.DeleteServerRequest{
ServerID: server.ID,
Zone: zone,
})
if errDelete != nil {
return fmt.Errorf("error deleting apple silicon server in sweeper: %s", err)
}
}

return nil
})
}
33 changes: 0 additions & 33 deletions internal/services/baremetal/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,46 +8,13 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
baremetalSDK "github.com/scaleway/scaleway-sdk-go/api/baremetal/v1"
"github.com/scaleway/scaleway-sdk-go/scw"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/logging"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/baremetal"
baremetalchecks "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/baremetal/testfuncs"
)

const SSHKeyBaremetal = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7HUxRyQtB2rnlhQUcbDGCZcTJg7OvoznOiyC9W6IxH opensource@scaleway.com"

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

func testSweepServer(_ string) error {
return acctest.SweepZones([]scw.Zone{scw.ZoneFrPar2}, func(scwClient *scw.Client, zone scw.Zone) error {
baremetalAPI := baremetalSDK.NewAPI(scwClient)
logging.L.Debugf("sweeper: destroying the baremetal server in (%s)", zone)
listServers, err := baremetalAPI.ListServers(&baremetalSDK.ListServersRequest{Zone: zone}, scw.WithAllPages())
if err != nil {
logging.L.Warningf("error listing servers in (%s) in sweeper: %s", zone, err)
return nil
}

for _, server := range listServers.Servers {
_, err := baremetalAPI.DeleteServer(&baremetalSDK.DeleteServerRequest{
Zone: zone,
ServerID: server.ID,
})
if err != nil {
return fmt.Errorf("error deleting server in sweeper: %s", err)
}
}

return nil
})
}

func TestAccServer_Basic(t *testing.T) {
t.Skip("Skipping Baremetal Server test as no stock is available currently")
tt := acctest.NewTestTools(t)
Expand Down
16 changes: 16 additions & 0 deletions internal/services/baremetal/sweep_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package baremetal_test

import (
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
baremetaltestfuncs "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/baremetal/testfuncs"
)

func init() {
baremetaltestfuncs.AddTestSweepers()
}

func TestMain(m *testing.M) {
resource.TestMain(m)
}
2 changes: 1 addition & 1 deletion internal/services/baremetal/testfuncs/checks.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package baremetalchecks
package baremetaltestfuncs

import (
"fmt"
Expand Down
42 changes: 42 additions & 0 deletions internal/services/baremetal/testfuncs/sweep.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package baremetaltestfuncs

import (
"fmt"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
baremetalSDK "github.com/scaleway/scaleway-sdk-go/api/baremetal/v1"
"github.com/scaleway/scaleway-sdk-go/scw"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/logging"
)

func AddTestSweepers() {
resource.AddTestSweepers("scaleway_baremetal_server", &resource.Sweeper{
Name: "scaleway_baremetal_server",
F: testSweepServer,
})
}

func testSweepServer(_ string) error {
return acctest.SweepZones([]scw.Zone{scw.ZoneFrPar2}, func(scwClient *scw.Client, zone scw.Zone) error {
baremetalAPI := baremetalSDK.NewAPI(scwClient)
logging.L.Debugf("sweeper: destroying the baremetal server in (%s)", zone)
listServers, err := baremetalAPI.ListServers(&baremetalSDK.ListServersRequest{Zone: zone}, scw.WithAllPages())
if err != nil {
logging.L.Warningf("error listing servers in (%s) in sweeper: %s", zone, err)
return nil
}

for _, server := range listServers.Servers {
_, err := baremetalAPI.DeleteServer(&baremetalSDK.DeleteServerRequest{
Zone: zone,
ServerID: server.ID,
})
if err != nil {
return fmt.Errorf("error deleting server in sweeper: %s", err)
}
}

return nil
})
}
37 changes: 0 additions & 37 deletions internal/services/block/snapshot_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,48 +7,11 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
blockSDK "github.com/scaleway/scaleway-sdk-go/api/block/v1alpha1"
"github.com/scaleway/scaleway-sdk-go/scw"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/httperrors"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/logging"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/block"
)

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

func testSweepSnapshot(_ string) error {
return acctest.SweepZones((&blockSDK.API{}).Zones(), func(scwClient *scw.Client, zone scw.Zone) error {
blockAPI := blockSDK.NewAPI(scwClient)
logging.L.Debugf("sweeper: destroying the block snapshots in (%s)", zone)
listSnapshots, err := blockAPI.ListSnapshots(
&blockSDK.ListSnapshotsRequest{
Zone: zone,
}, scw.WithAllPages())
if err != nil {
return fmt.Errorf("error listing snapshot in (%s) in sweeper: %s", zone, err)
}

for _, snapshot := range listSnapshots.Snapshots {
err := blockAPI.DeleteSnapshot(&blockSDK.DeleteSnapshotRequest{
SnapshotID: snapshot.ID,
Zone: zone,
})
if err != nil {
logging.L.Debugf("sweeper: error (%s)", err)

return fmt.Errorf("error deleting snapshot in sweeper: %s", err)
}
}

return nil
})
}

func TestAccSnapshot_Basic(t *testing.T) {
tt := acctest.NewTestTools(t)
defer tt.Cleanup()
Expand Down
16 changes: 16 additions & 0 deletions internal/services/block/sweep_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package block_test

import (
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
blocktestfuncs "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/block/testfuncs"
)

func init() {
blocktestfuncs.AddTestSweepers()
}

func TestMain(m *testing.M) {
resource.TestMain(m)
}
Loading

0 comments on commit 6ce156f

Please sign in to comment.