Skip to content

Commit 4e7eb26

Browse files
authored
Merge branch 'master' into k7_lb
2 parents 98383db + b87bc19 commit 4e7eb26

File tree

44 files changed

+32682
-1138
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+32682
-1138
lines changed

.github/contributing/acceptance_test.md

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,12 @@ The definition of a complete test looks like this:
9999

100100
```go
101101
func TestAccScalewayInstanceServerImport(t *testing.T) {
102+
tt := NewTestTools(t)
103+
defer tt.Cleanup()
102104
resource.ParallelTest(t, resource.TestCase{
103105
PreCheck: func() { testAccPreCheck(t) },
104-
Providers: testAccProviders,
105-
CheckDestroy: testAccCheckScalewayInstanceServerDestroy,
106+
ProviderFactories: tt.ProviderFactories,
107+
CheckDestroy: testAccCheckScalewayInstanceServerDestroy(tt),
106108
Steps: []resource.TestStep{
107109
{
108110
Config: `
@@ -143,14 +145,14 @@ When executing the test, the following steps are taken for each `TestStep`:
143145
For example, to verify that the `scaleway_instance_server` described above was created successfully, a test function like this is used:
144146
145147
```go
146-
func testAccCheckScalewayInstanceServerExists(n string) resource.TestCheckFunc {
147-
return func(s *terraform.State) error {
148-
rs, ok := s.RootModule().Resources[n]
148+
func testAccCheckScalewayInstanceServerExists(tt *TestTools, n string) resource.TestCheckFunc {
149+
return func(state *terraform.State) error {
150+
rs, ok := state.RootModule().Resources[n]
149151
if !ok {
150152
return fmt.Errorf("resource not found: %s", n)
151153
}
152154
153-
instanceAPI, zone, ID, err := instanceAPIWithZoneAndID(testAccProvider.Meta(), rs.Primary.ID)
155+
instanceAPI, zone, ID, err := instanceAPIWithZoneAndID(tt.Meta, rs.Primary.ID)
154156
if err != nil {
155157
return err
156158
}
@@ -181,34 +183,35 @@ When executing the test, the following steps are taken for each `TestStep`:
181183
The code to ensure that the `scaleway_instance_server` shown above has been destroyed looks like this:
182184
183185
```go
184-
func testAccCheckScalewayInstanceServerDestroy(s *terraform.State) error {
185-
for _, rs := range s.RootModule().Resources {
186-
if rs.Type != "scaleway_instance_server" {
187-
continue
188-
}
189-
190-
instanceAPI, zone, ID, err := instanceAPIWithZoneAndID(testAccProvider.Meta(), rs.Primary.ID)
191-
if err != nil {
192-
return err
193-
}
194-
195-
_, err = instanceAPI.GetServer(&instance.GetServerRequest{
196-
ServerID: ID,
197-
Zone: zone,
198-
})
199-
200-
// If no error resource still exist
201-
if err == nil {
202-
return fmt.Errorf("Server (%s) still exists", rs.Primary.ID)
203-
}
204-
205-
// Unexpected api error we return it
206-
if !is404Error(err) {
207-
return err
208-
}
209-
}
210-
211-
return nil
186+
func testAccCheckScalewayInstanceServerDestroy(tt *TestTools) resource.TestCheckFunc {
187+
return func(state *terraform.State) error {
188+
for _, rs := range s.RootModule().Resources {
189+
if rs.Type != "scaleway_instance_server" {
190+
continue
191+
}
192+
193+
instanceAPI, zone, ID, err := instanceAPIWithZoneAndID(tt.Meta, rs.Primary.ID)
194+
if err != nil {
195+
return err
196+
}
197+
198+
_, err = instanceAPI.GetServer(&instance.GetServerRequest{
199+
ServerID: ID,
200+
Zone: zone,
201+
})
202+
203+
// If no error resource still exist
204+
if err == nil {
205+
return fmt.Errorf("Server (%s) still exists", rs.Primary.ID)
206+
}
207+
208+
// Unexpected api error we return it
209+
if !is404Error(err) {
210+
return err
211+
}
212+
}
213+
return nil
214+
}
212215
}
213216
```
214217

scaleway/data_source_account_ssh_key_test.go

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,52 @@
11
package scaleway
22

33
import (
4+
"fmt"
45
"testing"
56

6-
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
77
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
88
)
99

1010
func TestAccScalewayDataSourceAccountSSHKey_Basic(t *testing.T) {
11-
sshKeyName := acctest.RandString(10)
11+
dataSourceAccountSSHKey := "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ [email protected]"
12+
sshKeyName := "TestAccScalewayDataSourceAccountSSHKey_Basic"
13+
tt := NewTestTools(t)
14+
defer tt.Cleanup()
1215
resource.ParallelTest(t, resource.TestCase{
13-
PreCheck: func() { testAccPreCheck(t) },
14-
Providers: testAccProviders,
15-
CheckDestroy: testAccCheckScalewayAccountSSHKeyDestroy,
16+
PreCheck: func() { testAccPreCheck(t) },
17+
ProviderFactories: tt.ProviderFactories,
18+
CheckDestroy: testAccCheckScalewayAccountSSHKeyDestroy(tt),
1619
Steps: []resource.TestStep{
1720
{
18-
Config: testAccDataSourceScalewayAccountSSHKeyConfig(sshKeyName),
21+
Config: fmt.Sprintf(`
22+
resource "scaleway_account_ssh_key" "main" {
23+
name = "%s"
24+
public_key = "%s"
25+
}
26+
`, sshKeyName, dataSourceAccountSSHKey),
27+
},
28+
{
29+
Config: fmt.Sprintf(`
30+
resource "scaleway_account_ssh_key" "main" {
31+
name = "%s"
32+
public_key = "%s"
33+
}
34+
35+
data "scaleway_account_ssh_key" "prod" {
36+
name = "${scaleway_account_ssh_key.main.name}"
37+
}
38+
39+
data "scaleway_account_ssh_key" "stg" {
40+
ssh_key_id = "${scaleway_account_ssh_key.main.id}"
41+
}`, sshKeyName, dataSourceAccountSSHKey),
1942
Check: resource.ComposeTestCheckFunc(
20-
testAccCheckScalewayAccountSSHKeyExists("data.scaleway_account_ssh_key.prod"),
43+
testAccCheckScalewayAccountSSHKeyExists(tt, "data.scaleway_account_ssh_key.prod"),
2144
resource.TestCheckResourceAttr("data.scaleway_account_ssh_key.prod", "name", sshKeyName),
2245
resource.TestCheckResourceAttr("data.scaleway_account_ssh_key.prod", "public_key", dataSourceAccountSSHKey),
23-
testAccCheckScalewayAccountSSHKeyExists("data.scaleway_account_ssh_key.stg"),
46+
testAccCheckScalewayAccountSSHKeyExists(tt, "data.scaleway_account_ssh_key.stg"),
2447
resource.TestCheckResourceAttr("data.scaleway_account_ssh_key.stg", "name", sshKeyName),
2548
resource.TestCheckResourceAttr("data.scaleway_account_ssh_key.stg", "public_key", dataSourceAccountSSHKey),
26-
),
27-
},
49+
)},
2850
},
2951
})
3052
}
31-
32-
const dataSourceAccountSSHKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCtMlb2pIlcCC3Exui1z77NfFWtlf59P/L38OwfHCKnxgHZfcjWZZEOdJPxeA6/iRCUrJo+mUKOedNJTCR9Wgg5zhUM1dd/fiyCS+STLf9fzoA1evPEEIHp0iobIpVQ0pGIdNqipL2n8BcV7f1oC2AkELCUp4gogkeUkKtK71DtsjGJQJBRlg01U2gTAnU0Q3kf5wxhCIELke9J3eblTpvdnNonqpXsQuy+InpT51NDtMbBdgkwNsgw6wDxI64NY92mEXO7PK/uhSAmxIM9a4evLhgFxSr8vFNTwqq5fbSyDeeQwHG23U0CmhM0tOwLuJAbQotWrfYsLCpinnBb+sp [email protected]"
33-
34-
func testAccDataSourceScalewayAccountSSHKeyConfig(name string) string {
35-
return `
36-
resource "scaleway_account_ssh_key" "main" {
37-
name = "` + name + `"
38-
public_key = "` + dataSourceAccountSSHKey + `"
39-
}
40-
41-
data "scaleway_account_ssh_key" "prod" {
42-
name = "${scaleway_account_ssh_key.main.name}"
43-
}
44-
45-
data "scaleway_account_ssh_key" "stg" {
46-
ssh_key_id = "${scaleway_account_ssh_key.main.id}"
47-
}`
48-
}

scaleway/data_source_instance_image_test.go

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,48 +10,44 @@ import (
1010
)
1111

1212
func TestAccScalewayDataSourceInstanceImage_Basic(t *testing.T) {
13+
tt := NewTestTools(t)
14+
defer tt.Cleanup()
1315
resource.ParallelTest(t, resource.TestCase{
14-
PreCheck: func() { testAccPreCheck(t) },
15-
Providers: testAccProviders,
16+
PreCheck: func() { testAccPreCheck(t) },
17+
ProviderFactories: tt.ProviderFactories,
1618
Steps: []resource.TestStep{
1719
{
1820
Config: `
19-
data "scaleway_instance_image" "test1" {
20-
name = "golang 1.10"
21-
}
22-
23-
data "scaleway_instance_image" "test2" {
24-
image_id = "43213956-c7a3-44b8-9d96-d51fa7457969"
25-
}
21+
data "scaleway_instance_image" "test" {
22+
image_id = "fr-par-1/cf44b8f5-77e2-42ed-8f1e-09ed5bb028fc"
23+
}
2624
27-
data "scaleway_instance_image" "test3" {
28-
image_id = "fr-par-1/43213956-c7a3-44b8-9d96-d51fa7457969"
29-
}`,
25+
data "scaleway_instance_image" "test2" {
26+
image_id = "cf44b8f5-77e2-42ed-8f1e-09ed5bb028fc"
27+
}`,
3028
Check: resource.ComposeTestCheckFunc(
31-
testAccCheckScalewayInstanceImageExists("data.scaleway_instance_image.test1"),
32-
resource.TestCheckResourceAttr("data.scaleway_instance_image.test1", "name", "Golang 1.10"),
33-
testAccCheckScalewayInstanceImageExists("data.scaleway_instance_image.test2"),
34-
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "image_id", "fr-par-1/43213956-c7a3-44b8-9d96-d51fa7457969"),
35-
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "name", "Golang 1.10"),
29+
testAccCheckScalewayInstanceImageExists(tt, "data.scaleway_instance_image.test"),
30+
resource.TestCheckResourceAttr("data.scaleway_instance_image.test", "name", "Ubuntu 20.04 Focal Fossa"),
31+
32+
testAccCheckScalewayInstanceImageExists(tt, "data.scaleway_instance_image.test2"),
33+
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "image_id", "fr-par-1/cf44b8f5-77e2-42ed-8f1e-09ed5bb028fc"),
34+
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "name", "Ubuntu 20.04 Focal Fossa"),
3635
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "architecture", "x86_64"),
37-
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "creation_date", "2018-04-12T10:22:46Z"),
38-
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "modification_date", "2018-04-12T15:02:26Z"),
36+
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "creation_date", "2020-07-09T10:38:16Z"),
37+
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "modification_date", "2020-07-09T10:38:16Z"),
3938
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "latest", "true"),
4039
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "public", "true"),
4140
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "from_server_id", ""),
4241
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "state", "available"),
43-
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "default_bootscript_id", "b1e68c26-a19c-4eac-9222-498b22bd7ad9"),
44-
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "root_volume_id", "8fa97c03-ca3b-4267-ba19-2d38190b1c82"),
42+
resource.TestCheckResourceAttr("data.scaleway_instance_image.test2", "root_volume_id", "6e66445c-e52e-4cfa-bf4c-f36e291e2c30"),
4543
resource.TestCheckNoResourceAttr("data.scaleway_instance_image.test2", "additional_volume_ids"),
46-
testAccCheckScalewayInstanceImageExists("data.scaleway_instance_image.test3"),
47-
resource.TestCheckResourceAttr("data.scaleway_instance_image.test3", "name", "Golang 1.10"),
4844
),
4945
},
5046
},
5147
})
5248
}
5349

54-
func testAccCheckScalewayInstanceImageExists(n string) resource.TestCheckFunc {
50+
func testAccCheckScalewayInstanceImageExists(tt *TestTools, n string) resource.TestCheckFunc {
5551
return func(s *terraform.State) error {
5652
rs, ok := s.RootModule().Resources[n]
5753

@@ -64,8 +60,7 @@ func testAccCheckScalewayInstanceImageExists(n string) resource.TestCheckFunc {
6460
return err
6561
}
6662

67-
meta := testAccProvider.Meta().(*Meta)
68-
instanceAPI := instance.NewAPI(meta.scwClient)
63+
instanceAPI := instance.NewAPI(tt.Meta.scwClient)
6964
_, err = instanceAPI.GetImage(&instance.GetImageRequest{
7065
ImageID: ID,
7166
Zone: zone,

scaleway/data_source_instance_security_group_test.go

Lines changed: 41 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,64 @@
11
package scaleway
22

33
import (
4+
"fmt"
45
"testing"
56

6-
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
77
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
88
)
99

1010
func TestAccScalewayDataSourceInstanceSecurityGroup_Basic(t *testing.T) {
11-
securityGroupName := acctest.RandString(10)
11+
tt := NewTestTools(t)
12+
defer tt.Cleanup()
13+
securityGroupName := "tf-security-group"
1214
resource.ParallelTest(t, resource.TestCase{
13-
PreCheck: func() { testAccPreCheck(t) },
14-
Providers: testAccProviders,
15-
CheckDestroy: testAccCheckScalewayInstanceSecurityGroupDestroy,
15+
PreCheck: func() { testAccPreCheck(t) },
16+
ProviderFactories: tt.ProviderFactories,
17+
CheckDestroy: testAccCheckScalewayInstanceSecurityGroupDestroy(tt),
1618
Steps: []resource.TestStep{
1719
{
18-
Config: `
19-
resource "scaleway_instance_security_group" "main" {
20-
name = "` + securityGroupName + `"
21-
22-
}
23-
24-
data "scaleway_instance_security_group" "prod" {
25-
name = "${scaleway_instance_security_group.main.name}"
26-
}
27-
28-
data "scaleway_instance_security_group" "stg" {
29-
security_group_id = "${scaleway_instance_security_group.main.id}"
30-
}`,
20+
Config: fmt.Sprintf(`
21+
resource "scaleway_instance_security_group" "main" {
22+
name = "%s"
23+
}`, securityGroupName),
24+
},
25+
{
26+
Config: fmt.Sprintf(`
27+
resource "scaleway_instance_security_group" "main" {
28+
name = "%s"
29+
}
30+
31+
data "scaleway_instance_security_group" "prod" {
32+
name = "${scaleway_instance_security_group.main.name}"
33+
}
34+
35+
data "scaleway_instance_security_group" "stg" {
36+
security_group_id = "${scaleway_instance_security_group.main.id}"
37+
}`, securityGroupName),
3138
Check: resource.ComposeTestCheckFunc(
32-
testAccCheckScalewayInstanceSecurityGroupExists("data.scaleway_instance_security_group.prod"),
39+
testAccCheckScalewayInstanceSecurityGroupExists(tt, "data.scaleway_instance_security_group.prod"),
3340
resource.TestCheckResourceAttr("data.scaleway_instance_security_group.prod", "name", securityGroupName),
34-
testAccCheckScalewayInstanceSecurityGroupExists("data.scaleway_instance_security_group.stg"),
41+
testAccCheckScalewayInstanceSecurityGroupExists(tt, "data.scaleway_instance_security_group.stg"),
3542
resource.TestCheckResourceAttr("data.scaleway_instance_security_group.stg", "name", securityGroupName),
3643
),
3744
},
3845
{
39-
Config: `
40-
resource "scaleway_instance_security_group" "main" {
41-
name = "` + securityGroupName + `"
42-
}
43-
44-
data "scaleway_instance_security_group" "prod" {
45-
security_group_id = "${scaleway_instance_security_group.main.id}"
46-
}
47-
48-
data "scaleway_instance_security_group" "stg" {
49-
name = "${scaleway_instance_security_group.main.name}"
50-
}`,
46+
Config: fmt.Sprintf(`
47+
resource "scaleway_instance_security_group" "main" {
48+
name = "%s"
49+
}
50+
51+
data "scaleway_instance_security_group" "prod" {
52+
security_group_id = "${scaleway_instance_security_group.main.id}"
53+
}
54+
55+
data "scaleway_instance_security_group" "stg" {
56+
name = "${scaleway_instance_security_group.main.name}"
57+
}`, securityGroupName),
5158
Check: resource.ComposeTestCheckFunc(
52-
testAccCheckScalewayInstanceSecurityGroupExists("data.scaleway_instance_security_group.prod"),
59+
testAccCheckScalewayInstanceSecurityGroupExists(tt, "data.scaleway_instance_security_group.prod"),
5360
resource.TestCheckResourceAttr("data.scaleway_instance_security_group.prod", "name", securityGroupName),
54-
testAccCheckScalewayInstanceSecurityGroupExists("data.scaleway_instance_security_group.stg"),
61+
testAccCheckScalewayInstanceSecurityGroupExists(tt, "data.scaleway_instance_security_group.stg"),
5562
resource.TestCheckResourceAttr("data.scaleway_instance_security_group.stg", "name", securityGroupName),
5663
),
5764
},

0 commit comments

Comments
 (0)