Skip to content

Commit 7a990cb

Browse files
committed
tests: fix test and add waiter
1 parent e7257a2 commit 7a990cb

File tree

3 files changed

+7359
-61
lines changed

3 files changed

+7359
-61
lines changed

internal/services/instance/server.go

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -548,26 +548,6 @@ func ResourceInstanceServerCreate(ctx context.Context, d *schema.ResourceData, m
548548
}
549549
}
550550

551-
///
552-
// Attach Filesystem
553-
///
554-
555-
if filesystems, ok := d.GetOk("filesystems"); ok {
556-
for _, filesystem := range filesystems.([]any) {
557-
fs := filesystem.(map[string]any)
558-
filesystemID := fs["filesystem_id"]
559-
560-
_, err := api.AttachServerFileSystem(&instanceSDK.AttachServerFileSystemRequest{
561-
Zone: zone,
562-
FilesystemID: regional.ExpandID(filesystemID.(string)).ID,
563-
ServerID: res.Server.ID,
564-
})
565-
if err != nil {
566-
return diag.FromErr(err)
567-
}
568-
}
569-
}
570-
571551
////
572552
// Set user data
573553
////
@@ -610,6 +590,30 @@ func ResourceInstanceServerCreate(ctx context.Context, d *schema.ResourceData, m
610590
return diag.FromErr(err)
611591
}
612592

593+
///
594+
// Attach Filesystem
595+
///
596+
597+
if filesystems, ok := d.GetOk("filesystems"); ok {
598+
for _, filesystem := range filesystems.([]any) {
599+
fs := filesystem.(map[string]any)
600+
filesystemID := fs["filesystem_id"]
601+
602+
_, err := api.AttachServerFileSystem(&instanceSDK.AttachServerFileSystemRequest{
603+
Zone: zone,
604+
FilesystemID: regional.ExpandID(filesystemID.(string)).ID,
605+
ServerID: res.Server.ID,
606+
})
607+
if err != nil {
608+
return diag.FromErr(err)
609+
}
610+
_, err = waitForFilesystems(ctx, api.API, zone, res.Server.ID, *scw.TimeDurationPtr(DefaultInstanceServerWaitTimeout))
611+
if err != nil {
612+
return diag.FromErr(err)
613+
}
614+
}
615+
}
616+
613617
////
614618
// Private Network
615619
////
@@ -1324,6 +1328,10 @@ func ResourceInstanceServerDelete(ctx context.Context, d *schema.ResourceData, m
13241328
if err != nil {
13251329
return diag.FromErr(err)
13261330
}
1331+
_, err = waitForFilesystems(ctx, api.API, zone, id, *scw.TimeDurationPtr(DefaultInstanceServerWaitTimeout))
1332+
if err != nil {
1333+
return diag.FromErr(err)
1334+
}
13271335
}
13281336
}
13291337

internal/services/instance/server_test.go

Lines changed: 4 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2108,10 +2108,6 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
21082108
Steps: []resource.TestStep{
21092109
{
21102110
Config: `
2111-
resource "scaleway_block_volume" "volume" {
2112-
iops = 15000
2113-
size_in_gb = 15
2114-
}
21152111
21162112
resource "scaleway_file_filesystem" "terraform_instance_filesystem"{
21172113
name="filesystem-instance-terraform-test"
@@ -2121,21 +2117,15 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
21212117
resource "scaleway_instance_server" "base" {
21222118
type = "POP2-HM-2C-16G"
21232119
state = "started"
2120+
image = "ubuntu_jammy"
21242121
tags = [ "terraform-test", "scaleway_instance_server", "state" ]
2125-
root_volume {
2126-
volume_type = "sbs_volume"
2127-
volume_id = scaleway_block_volume.volume.id
2128-
}
21292122
filesystems {
21302123
filesystem_id = scaleway_file_filesystem.terraform_instance_filesystem.id
21312124
}
21322125
}`,
21332126
Check: resource.ComposeTestCheckFunc(
21342127
isServerPresent(tt, "scaleway_instance_server.base"),
21352128
resource.TestCheckResourceAttr("scaleway_instance_server.base", "type", "POP2-HM-2C-16G"),
2136-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "root_volume.0.delete_on_termination", "true"),
2137-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "root_volume.0.size_in_gb", "15"),
2138-
resource.TestCheckResourceAttrSet("scaleway_instance_server.base", "root_volume.0.volume_id"),
21392129
resource.TestCheckResourceAttrSet("scaleway_instance_server.base", "filesystems.0.filesystem_id"),
21402130
serverHasNewVolume(tt, "scaleway_instance_server.base"),
21412131
resource.TestCheckResourceAttr("scaleway_instance_server.base", "tags.0", "terraform-test"),
@@ -2145,10 +2135,6 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
21452135
},
21462136
{
21472137
Config: `
2148-
resource "scaleway_block_volume" "volume" {
2149-
iops = 15000
2150-
size_in_gb = 15
2151-
}
21522138
21532139
resource "scaleway_file_filesystem" "terraform_instance_filesystem"{
21542140
name="filesystem-instance-terraform-test"
@@ -2163,11 +2149,8 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
21632149
resource "scaleway_instance_server" "base" {
21642150
type = "POP2-HM-2C-16G"
21652151
state = "started"
2152+
image = "ubuntu_jammy"
21662153
tags = [ "terraform-test", "scaleway_instance_server", "state" ]
2167-
root_volume {
2168-
volume_type = "sbs_volume"
2169-
volume_id = scaleway_block_volume.volume.id
2170-
}
21712154
21722155
filesystems {
21732156
filesystem_id = scaleway_file_filesystem.terraform_instance_filesystem_2.id
@@ -2176,9 +2159,6 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
21762159
Check: resource.ComposeTestCheckFunc(
21772160
isServerPresent(tt, "scaleway_instance_server.base"),
21782161
resource.TestCheckResourceAttr("scaleway_instance_server.base", "type", "POP2-HM-2C-16G"),
2179-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "root_volume.0.delete_on_termination", "true"),
2180-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "root_volume.0.size_in_gb", "15"),
2181-
resource.TestCheckResourceAttrSet("scaleway_instance_server.base", "root_volume.0.volume_id"),
21822162
resource.TestCheckResourceAttrSet("scaleway_instance_server.base", "filesystems.0.filesystem_id"),
21832163
resource.TestCheckNoResourceAttr("scaleway_instance_server.base", "filesystems.1.filesystem_id"),
21842164
serverHasNewVolume(tt, "scaleway_instance_server.base"),
@@ -2189,11 +2169,6 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
21892169
},
21902170
{
21912171
Config: `
2192-
resource "scaleway_block_volume" "volume" {
2193-
iops = 15000
2194-
size_in_gb = 15
2195-
}
2196-
21972172
resource "scaleway_file_filesystem" "terraform_instance_filesystem"{
21982173
name="filesystem-instance-terraform-test"
21992174
size_in_gb = 100
@@ -2207,11 +2182,8 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
22072182
resource "scaleway_instance_server" "base" {
22082183
type = "POP2-HM-2C-16G"
22092184
state = "started"
2185+
image = "ubuntu_jammy"
22102186
tags = [ "terraform-test", "scaleway_instance_server", "state" ]
2211-
root_volume {
2212-
volume_type = "sbs_volume"
2213-
volume_id = scaleway_block_volume.volume.id
2214-
}
22152187
filesystems {
22162188
filesystem_id = scaleway_file_filesystem.terraform_instance_filesystem_2.id
22172189
}
@@ -2222,9 +2194,6 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
22222194
Check: resource.ComposeTestCheckFunc(
22232195
isServerPresent(tt, "scaleway_instance_server.base"),
22242196
resource.TestCheckResourceAttr("scaleway_instance_server.base", "type", "POP2-HM-2C-16G"),
2225-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "root_volume.0.delete_on_termination", "true"),
2226-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "root_volume.0.size_in_gb", "15"),
2227-
resource.TestCheckResourceAttrSet("scaleway_instance_server.base", "root_volume.0.volume_id"),
22282197
resource.TestCheckResourceAttrSet("scaleway_instance_server.base", "filesystems.0.filesystem_id"),
22292198
resource.TestCheckResourceAttrSet("scaleway_instance_server.base", "filesystems.1.filesystem_id"),
22302199
serverHasNewVolume(tt, "scaleway_instance_server.base"),
@@ -2253,11 +2222,8 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
22532222
resource "scaleway_instance_server" "base" {
22542223
type = "POP2-HM-2C-16G"
22552224
state = "started"
2225+
image = "ubuntu_jammy"
22562226
tags = [ "terraform-test", "scaleway_instance_server", "state" ]
2257-
root_volume {
2258-
volume_type = "sbs_volume"
2259-
volume_id = scaleway_block_volume.volume.id
2260-
}
22612227
22622228
filesystems {
22632229
filesystem_id = scaleway_file_filesystem.terraform_instance_filesystem_2.id
@@ -2266,9 +2232,6 @@ func TestAccServer_AttachDetachFileSystem(t *testing.T) {
22662232
Check: resource.ComposeTestCheckFunc(
22672233
isServerPresent(tt, "scaleway_instance_server.base"),
22682234
resource.TestCheckResourceAttr("scaleway_instance_server.base", "type", "POP2-HM-2C-16G"),
2269-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "root_volume.0.delete_on_termination", "true"),
2270-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "root_volume.0.size_in_gb", "15"),
2271-
resource.TestCheckResourceAttrSet("scaleway_instance_server.base", "root_volume.0.volume_id"),
22722235
resource.TestCheckResourceAttrSet("scaleway_instance_server.base", "filesystems.0.filesystem_id"),
22732236
resource.TestCheckNoResourceAttr("scaleway_instance_server.base", "filesystems.1.filesystem_id"),
22742237
serverHasNewVolume(tt, "scaleway_instance_server.base"),

internal/services/instance/testdata/server-attach-detach-file-system.cassette.yaml

Lines changed: 7327 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)