Skip to content

Commit

Permalink
fix(sweeper): sweep process (scaleway#956)
Browse files Browse the repository at this point in the history
* fix(vpc): remove uselless test and add zone on sweep process

* Update scripts/errcheck.sh

Co-authored-by: Rémy Léone <[email protected]>

Co-authored-by: Rémy Léone <[email protected]>
  • Loading branch information
Monitob and remyleone authored Dec 7, 2021
1 parent bc88ea5 commit 07c5f73
Show file tree
Hide file tree
Showing 21 changed files with 40 additions and 60 deletions.
1 change: 1 addition & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ jobs:
- name: Run sweepers
run: make sweep
env:
TF_TEST_DOMAIN: scaleway-terraform.com
SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }}
SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }}
SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_DEFAULT_ORGANIZATION_ID }}
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ require (
golang.org/x/mod v0.5.1 // indirect
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d // indirect
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d // indirect
golang.org/x/sys v0.0.0-20211123173158-ef496fb156ab // indirect
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 // indirect
golang.org/x/text v0.3.6 // indirect
golang.org/x/tools v0.1.7 // indirect
google.golang.org/api v0.29.0 // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -452,8 +452,8 @@ golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211123173158-ef496fb156ab h1:rfJ1bsoJQQIAoAxTxB7bme+vHrNkRw8CqfsYh9w54cw=
golang.org/x/sys v0.0.0-20211123173158-ef496fb156ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 h1:TyHqChC80pFkXWraUUf6RuB5IqFdQieMLwwCJokV2pc=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
Expand Down
4 changes: 2 additions & 2 deletions scaleway/resource_apple_silicon_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ func init() {
}

func testSweepAppleSiliconServer(_ string) error {
return sweepZones(scw.AllZones, func(scwClient *scw.Client, zone scw.Zone) error {
return sweepZones([]scw.Zone{scw.ZoneFrPar1}, func(scwClient *scw.Client, zone scw.Zone) error {
asAPI := applesilicon.NewAPI(scwClient)
l.Debugf("sweeper: destroying the apple silicon instance in (%s)", zone)
listServers, err := asAPI.ListServers(&applesilicon.ListServersRequest{}, scw.WithAllPages())
listServers, err := asAPI.ListServers(&applesilicon.ListServersRequest{Zone: zone}, scw.WithAllPages())
if err != nil {
return fmt.Errorf("error listing apple silicon servers in (%s) in sweeper: %s", zone, err)
}
Expand Down
3 changes: 2 additions & 1 deletion scaleway/resource_baremetal_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,15 @@ func testSweepBaremetalServer(_ string) error {
return sweepZones([]scw.Zone{scw.ZoneFrPar2}, func(scwClient *scw.Client, zone scw.Zone) error {
baremetalAPI := baremetal.NewAPI(scwClient)
l.Debugf("sweeper: destroying the baremetal server in (%s)", zone)
listServers, err := baremetalAPI.ListServers(&baremetal.ListServersRequest{}, scw.WithAllPages())
listServers, err := baremetalAPI.ListServers(&baremetal.ListServersRequest{Zone: zone}, scw.WithAllPages())
if err != nil {
l.Warningf("error listing servers in (%s) in sweeper: %s", zone, err)
return nil
}

for _, server := range listServers.Servers {
_, err := baremetalAPI.DeleteServer(&baremetal.DeleteServerRequest{
Zone: zone,
ServerID: server.ID,
})
if err != nil {
Expand Down
5 changes: 2 additions & 3 deletions scaleway/resource_domain_record_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func init() {
if testDomainPtr != nil && *testDomainPtr != "" {
testDomain = *testDomainPtr
} else {
l.Errorf("environment variable TF_TEST_DOMAIN is required")
l.Infof("environment variable TF_TEST_DOMAIN is required")

return
}
Expand All @@ -44,8 +44,7 @@ func init() {
}

if isReserved {
l.Errorf("TF_TEST_DOMAIN cannot be a Scaleway required domain. Please use another one.")

l.Warningf("TF_TEST_DOMAIN cannot be a Scaleway required domain. Please use another one.")
return
}

Expand Down
10 changes: 5 additions & 5 deletions scaleway/resource_instance_ip_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,25 @@ import (

func init() {
resource.AddTestSweepers("scaleway_instance_ip", &resource.Sweeper{
Name: "scaleway_instance_ip",
F: testSweepInstanceIP,
Dependencies: []string{"scaleway_instance_server"},
Name: "scaleway_instance_ip",
F: testSweepInstanceIP,
})
}

func testSweepInstanceIP(_ string) error {
return sweepZones(scw.AllZones, func(scwClient *scw.Client, zone scw.Zone) error {
instanceAPI := instance.NewAPI(scwClient)

listIPs, err := instanceAPI.ListIPs(&instance.ListIPsRequest{}, scw.WithAllPages())
listIPs, err := instanceAPI.ListIPs(&instance.ListIPsRequest{Zone: zone}, scw.WithAllPages())
if err != nil {
l.Warningf("error listing ips in (%s) in sweeper: %s", zone, err)
return nil
}

for _, ip := range listIPs.IPs {
err := instanceAPI.DeleteIP(&instance.DeleteIPRequest{
IP: ip.ID,
IP: ip.ID,
Zone: zone,
})
if err != nil {
return fmt.Errorf("error deleting ip in sweeper: %s", err)
Expand Down
5 changes: 4 additions & 1 deletion scaleway/resource_instance_placement_group_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,17 @@ func testSweepInstancePlacementGroup(_ string) error {
return sweepZones(scw.AllZones, func(scwClient *scw.Client, zone scw.Zone) error {
instanceAPI := instance.NewAPI(scwClient)
l.Debugf("sweeper: destroying the instance placement group in (%s)", zone)
listPlacementGroups, err := instanceAPI.ListPlacementGroups(&instance.ListPlacementGroupsRequest{}, scw.WithAllPages())
listPlacementGroups, err := instanceAPI.ListPlacementGroups(&instance.ListPlacementGroupsRequest{
Zone: zone,
}, scw.WithAllPages())
if err != nil {
l.Warningf("error listing placement groups in (%s) in sweeper: %s", zone, err)
return nil
}

for _, pg := range listPlacementGroups.PlacementGroups {
err := instanceAPI.DeletePlacementGroup(&instance.DeletePlacementGroupRequest{
Zone: zone,
PlacementGroupID: pg.ID,
})
if err != nil {
Expand Down
5 changes: 4 additions & 1 deletion scaleway/resource_instance_security_group_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,9 @@ func testSweepComputeInstanceSecurityGroup(_ string) error {
instanceAPI := instance.NewAPI(scwClient)
l.Debugf("sweeper: destroying the security groups in (%s)", zone)

listResp, err := instanceAPI.ListSecurityGroups(&instance.ListSecurityGroupsRequest{}, scw.WithAllPages())
listResp, err := instanceAPI.ListSecurityGroups(&instance.ListSecurityGroupsRequest{
Zone: zone,
}, scw.WithAllPages())
if err != nil {
l.Warningf("error listing security groups in sweeper: %s", err)
return nil
Expand All @@ -528,6 +530,7 @@ func testSweepComputeInstanceSecurityGroup(_ string) error {
continue
}
err = instanceAPI.DeleteSecurityGroup(&instance.DeleteSecurityGroupRequest{
Zone: zone,
SecurityGroupID: securityGroup.ID,
})
if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions scaleway/resource_instance_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,8 @@ import (

func init() {
resource.AddTestSweepers("scaleway_instance_server", &resource.Sweeper{
Name: "scaleway_instance_server",
F: testSweepInstanceServer,
Dependencies: []string{"scaleway_vpc"},
Name: "scaleway_instance_server",
F: testSweepInstanceServer,
})
}

Expand All @@ -41,6 +40,7 @@ func testSweepInstanceServer(_ string) error {
}
} else if srv.State == instance.ServerStateRunning {
_, err := instanceAPI.ServerAction(&instance.ServerActionRequest{
Zone: zone,
ServerID: srv.ID,
Action: instance.ServerActionTerminate,
})
Expand Down
1 change: 1 addition & 0 deletions scaleway/resource_iot_hub_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ func testSweepIotHub(_ string) error {
l.Debugf("sweeper: destroying the iot hub in (%s)", region)
listHubs, err := iotAPI.ListHubs(&iot.ListHubsRequest{Region: region}, scw.WithAllPages())
if err != nil {
l.Debugf("sweeper: destroying the iot hub in (%s)", region)
return fmt.Errorf("error listing hubs in (%s) in sweeper: %s", region, err)
}

Expand Down
3 changes: 2 additions & 1 deletion scaleway/resource_k8s_cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,14 @@ func testSweepK8SCluster(_ string) error {
k8sAPI := k8s.NewAPI(scwClient)

l.Debugf("sweeper: destroying the k8s cluster in (%s)", region)
listClusters, err := k8sAPI.ListClusters(&k8s.ListClustersRequest{}, scw.WithAllPages())
listClusters, err := k8sAPI.ListClusters(&k8s.ListClustersRequest{Region: region}, scw.WithAllPages())
if err != nil {
return fmt.Errorf("error listing clusters in (%s) in sweeper: %s", region, err)
}

for _, cluster := range listClusters.Clusters {
_, err := k8sAPI.DeleteCluster(&k8s.DeleteClusterRequest{
Region: region,
ClusterID: cluster.ID,
})
if err != nil {
Expand Down
7 changes: 0 additions & 7 deletions scaleway/resource_rdb_database_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,6 @@ import (
"github.com/stretchr/testify/assert"
)

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

func TestAccScalewayRdbDatabase_Basic(t *testing.T) {
tt := NewTestTools(t)
defer tt.Cleanup()
Expand Down
5 changes: 4 additions & 1 deletion scaleway/resource_rdb_instance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,16 @@ func testSweepRDBInstance(_ string) error {
return sweepRegions(scw.AllRegions, func(scwClient *scw.Client, region scw.Region) error {
rdbAPI := rdb.NewAPI(scwClient)
l.Debugf("sweeper: destroying the rdb instance in (%s)", region)
listInstances, err := rdbAPI.ListInstances(&rdb.ListInstancesRequest{}, scw.WithAllPages())
listInstances, err := rdbAPI.ListInstances(&rdb.ListInstancesRequest{
Region: region,
}, scw.WithAllPages())
if err != nil {
return fmt.Errorf("error listing rdb instances in (%s) in sweeper: %s", region, err)
}

for _, instance := range listInstances.Instances {
_, err := rdbAPI.DeleteInstance(&rdb.DeleteInstanceRequest{
Region: region,
InstanceID: instance.ID,
})
if err != nil {
Expand Down
7 changes: 0 additions & 7 deletions scaleway/resource_rdb_privilege_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,6 @@ import (
"github.com/scaleway/scaleway-sdk-go/api/rdb/v1"
)

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

func TestAccScalewayRdbPrivilege_Basic(t *testing.T) {
tt := NewTestTools(t)
defer tt.Cleanup()
Expand Down
7 changes: 0 additions & 7 deletions scaleway/resource_rdb_user_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,6 @@ import (
"github.com/scaleway/scaleway-sdk-go/api/rdb/v1"
)

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

func TestAccScalewayRdbUser_Basic(t *testing.T) {
tt := NewTestTools(t)
defer tt.Cleanup()
Expand Down
6 changes: 5 additions & 1 deletion scaleway/resource_registry_namespace_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,20 @@ func testSweepRegistryNamespace(_ string) error {
return sweepRegions([]scw.Region{scw.RegionFrPar, scw.RegionNlAms}, func(scwClient *scw.Client, region scw.Region) error {
registryAPI := registry.NewAPI(scwClient)
l.Debugf("sweeper: destroying the registry namespaces in (%s)", region)
listNamespaces, err := registryAPI.ListNamespaces(&registry.ListNamespacesRequest{}, scw.WithAllPages())
listNamespaces, err := registryAPI.ListNamespaces(
&registry.ListNamespacesRequest{Region: region}, scw.WithAllPages())
if err != nil {
return fmt.Errorf("error listing namespaces in (%s) in sweeper: %s", region, err)
}

for _, ns := range listNamespaces.Namespaces {
_, err := registryAPI.DeleteNamespace(&registry.DeleteNamespaceRequest{
NamespaceID: ns.ID,
Region: region,
})
if err != nil {
l.Debugf("sweeper: error (%s)", err)

return fmt.Errorf("error deleting namespace in sweeper: %s", err)
}
}
Expand Down
2 changes: 1 addition & 1 deletion scaleway/resource_vpc_gateway_network_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ func init() {
Name: "scaleway_gateway_network",
F: testSweepVPCGatewayNetwork,
// test depends upon PrivateNetwork, PublicGateway. Please add new resources for testing purpose.
Dependencies: []string{"scaleway_vpc", "scaleway_vpc_gateway_ip"},
Dependencies: []string{"scaleway_vpc_gateway_ip"},
})
}

Expand Down
7 changes: 0 additions & 7 deletions scaleway/resource_vpc_public_gateway_dhcp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,6 @@ import (
vpcgw "github.com/scaleway/scaleway-sdk-go/api/vpcgw/v1beta1"
)

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

func TestAccScalewayVPCPublicGatewayDHCP_Basic(t *testing.T) {
tt := NewTestTools(t)
defer tt.Cleanup()
Expand Down
8 changes: 0 additions & 8 deletions scaleway/resource_vpc_public_gateway_pat_rule_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,6 @@ import (
vpcgw "github.com/scaleway/scaleway-sdk-go/api/vpcgw/v1beta1"
)

func init() {
resource.AddTestSweepers("scaleway_vpc_public_gateway_pat_rule", &resource.Sweeper{
Name: "scaleway_vpc_public_gateway_pat_rule",
F: testSweepVPCPublicGateway,
Dependencies: []string{"scaleway_vpc_public_gateway_dhcp", "scaleway_vpc"},
})
}

func TestAccScalewayVPCPublicGatewayPATRule_Basic(t *testing.T) {
tt := NewTestTools(t)
defer tt.Cleanup()
Expand Down
2 changes: 1 addition & 1 deletion scripts/errcheck.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ echo "==> Checking for unchecked errors..."

if ! which errcheck > /dev/null; then
echo "==> Installing errcheck..."
go get -u github.com/kisielk/errcheck
go install github.com/kisielk/errcheck@latest
fi

err_files=$(errcheck -ignoretests \
Expand Down

0 comments on commit 07c5f73

Please sign in to comment.