Skip to content

Commit 7f5223a

Browse files
authored
fix(instance): fix user data tests (#690)
1 parent 5ddb343 commit 7f5223a

3 files changed

+22968
-50
lines changed

scaleway/resource_instance_server_test.go

+91-50
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ func TestAccScalewayInstanceServer_State2(t *testing.T) {
338338
})
339339
}
340340

341-
func TestAccScalewayInstanceServer_UserData1(t *testing.T) {
341+
func TestAccScalewayInstanceServer_UserData_WithCloudInitAtStart(t *testing.T) {
342342
tt := NewTestTools(t)
343343
defer tt.Cleanup()
344344
resource.ParallelTest(t, resource.TestCase{
@@ -347,26 +347,78 @@ func TestAccScalewayInstanceServer_UserData1(t *testing.T) {
347347
CheckDestroy: testAccCheckScalewayInstanceServerDestroy(tt),
348348
Steps: []resource.TestStep{
349349
{
350-
Config: testAccCheckScalewayInstanceServerConfigUserData(true, true),
350+
// With cloud-init and user data
351+
Config: `
352+
data "scaleway_instance_image" "ubuntu" {
353+
architecture = "x86_64"
354+
name = "Ubuntu 20.04 Focal Fossa"
355+
}
356+
357+
resource "scaleway_instance_server" "base" {
358+
image = "${data.scaleway_instance_image.ubuntu.id}"
359+
type = "DEV1-S"
360+
361+
user_data {
362+
key = "plop"
363+
value = "world"
364+
}
365+
366+
user_data {
367+
key = "blanquette"
368+
value = "hareng pomme à l'huile"
369+
}
370+
371+
cloud_init = <<EOF
372+
#cloud-config
373+
apt_update: true
374+
apt_upgrade: true
375+
EOF
376+
}`,
351377
Check: resource.ComposeTestCheckFunc(
352378
testAccCheckScalewayInstanceServerExists(tt, "scaleway_instance_server.base"),
353-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "user_data.459781404.key", "plop"),
354-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "user_data.459781404.value", "world"),
355-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "user_data.599848950.key", "blanquette"),
356-
resource.TestCheckResourceAttr("scaleway_instance_server.base", "user_data.599848950.value", "hareng pomme à l'huile"),
379+
resource.TestCheckResourceAttr("scaleway_instance_server.base", "user_data.0.key", "blanquette"),
380+
resource.TestCheckResourceAttr("scaleway_instance_server.base", "user_data.0.value", "hareng pomme à l'huile"),
381+
resource.TestCheckResourceAttr("scaleway_instance_server.base", "user_data.1.key", "plop"),
382+
resource.TestCheckResourceAttr("scaleway_instance_server.base", "user_data.1.value", "world"),
357383
resource.TestCheckResourceAttr("scaleway_instance_server.base", "cloud_init", "#cloud-config\napt_update: true\napt_upgrade: true\n"),
358384
),
359385
},
360386
{
361-
Config: testAccCheckScalewayInstanceServerConfigUserData(false, true),
387+
// With cloud-init and without user data
388+
Config: `
389+
data "scaleway_instance_image" "ubuntu" {
390+
architecture = "x86_64"
391+
name = "Ubuntu 20.04 Focal Fossa"
392+
}
393+
394+
resource "scaleway_instance_server" "base" {
395+
image = "${data.scaleway_instance_image.ubuntu.id}"
396+
type = "DEV1-S"
397+
cloud_init = <<EOF
398+
#cloud-config
399+
apt_update: true
400+
apt_upgrade: true
401+
EOF
402+
}`,
362403
Check: resource.ComposeTestCheckFunc(
363404
testAccCheckScalewayInstanceServerExists(tt, "scaleway_instance_server.base"),
364405
resource.TestCheckNoResourceAttr("scaleway_instance_server.base", "user_data"),
365406
resource.TestCheckResourceAttr("scaleway_instance_server.base", "cloud_init", "#cloud-config\napt_update: true\napt_upgrade: true\n"),
366407
),
367408
},
368409
{
369-
Config: testAccCheckScalewayInstanceServerConfigUserData(false, false),
410+
// No user data nor cloud init
411+
Config: `
412+
data "scaleway_instance_image" "ubuntu" {
413+
architecture = "x86_64"
414+
name = "Ubuntu 20.04 Focal Fossa"
415+
}
416+
417+
resource "scaleway_instance_server" "base" {
418+
image = "${data.scaleway_instance_image.ubuntu.id}"
419+
type = "DEV1-S"
420+
tags = [ "terraform-test", "scaleway_instance_server", "user_data" ]
421+
}`,
370422
Check: resource.ComposeTestCheckFunc(
371423
testAccCheckScalewayInstanceServerExists(tt, "scaleway_instance_server.base"),
372424
resource.TestCheckNoResourceAttr("scaleway_instance_server.base", "user_data"),
@@ -377,7 +429,7 @@ func TestAccScalewayInstanceServer_UserData1(t *testing.T) {
377429
})
378430
}
379431

380-
func TestAccScalewayInstanceServer_UserData2(t *testing.T) {
432+
func TestAccScalewayInstanceServer_UserData_WithoutCloudInitAtStart(t *testing.T) {
381433
tt := NewTestTools(t)
382434
defer tt.Cleanup()
383435
resource.ParallelTest(t, resource.TestCase{
@@ -386,15 +438,43 @@ func TestAccScalewayInstanceServer_UserData2(t *testing.T) {
386438
CheckDestroy: testAccCheckScalewayInstanceServerDestroy(tt),
387439
Steps: []resource.TestStep{
388440
{
389-
Config: testAccCheckScalewayInstanceServerConfigUserData(false, false),
441+
// Without cloud-init
442+
Config: `
443+
data "scaleway_instance_image" "ubuntu" {
444+
architecture = "x86_64"
445+
name = "Ubuntu 20.04 Focal Fossa"
446+
}
447+
448+
resource "scaleway_instance_server" "base" {
449+
image = "${data.scaleway_instance_image.ubuntu.id}"
450+
type = "DEV1-S"
451+
tags = [ "terraform-test", "scaleway_instance_server", "user_data" ]
452+
}`,
390453
Check: resource.ComposeTestCheckFunc(
391454
testAccCheckScalewayInstanceServerExists(tt, "scaleway_instance_server.base"),
392455
resource.TestCheckNoResourceAttr("scaleway_instance_server.base", "user_data"),
393456
resource.TestCheckNoResourceAttr("scaleway_instance_server.base", "cloud_init"),
394457
),
395458
},
396459
{
397-
Config: testAccCheckScalewayInstanceServerConfigUserData(false, true),
460+
// With cloud-init
461+
Config: `
462+
data "scaleway_instance_image" "ubuntu" {
463+
architecture = "x86_64"
464+
name = "Ubuntu 20.04 Focal Fossa"
465+
}
466+
467+
resource "scaleway_instance_server" "base" {
468+
image = "${data.scaleway_instance_image.ubuntu.id}"
469+
type = "DEV1-S"
470+
tags = [ "terraform-test", "scaleway_instance_server", "user_data" ]
471+
472+
cloud_init = <<EOF
473+
#cloud-config
474+
apt_update: true
475+
apt_upgrade: true
476+
EOF
477+
}`,
398478
Check: resource.ComposeTestCheckFunc(
399479
testAccCheckScalewayInstanceServerExists(tt, "scaleway_instance_server.base"),
400480
resource.TestCheckNoResourceAttr("scaleway_instance_server.base", "user_data"),
@@ -828,45 +908,6 @@ func testAccCheckScalewayInstanceServerDestroy(tt *TestTools) resource.TestCheck
828908
}
829909
}
830910

831-
func testAccCheckScalewayInstanceServerConfigUserData(withUserData, withCloudInit bool) string {
832-
additionalUserData := ""
833-
if withUserData {
834-
additionalUserData += `
835-
user_data {
836-
key = "plop"
837-
value = "world"
838-
}
839-
840-
user_data {
841-
key = "blanquette"
842-
value = "hareng pomme à l'huile"
843-
}`
844-
}
845-
846-
if withCloudInit {
847-
additionalUserData += `
848-
cloud_init = <<EOF
849-
#cloud-config
850-
apt_update: true
851-
apt_upgrade: true
852-
EOF`
853-
}
854-
855-
return fmt.Sprintf(`
856-
data "scaleway_image" "ubuntu" {
857-
architecture = "x86_64"
858-
name = "Ubuntu 20.04 Focal Fossa"
859-
most_recent = true
860-
}
861-
862-
resource "scaleway_instance_server" "base" {
863-
image = "${data.scaleway_image.ubuntu.id}"
864-
type = "DEV1-S"
865-
tags = [ "terraform-test", "scaleway_instance_server", "user_data" ]
866-
%s
867-
}`, additionalUserData)
868-
}
869-
870911
func testAccCheckScalewayInstanceServerConfigVolumes(withBlock bool, localVolumesInGB ...int) string {
871912
additionalVolumeResources := ""
872913
baseVolume := 20

0 commit comments

Comments
 (0)