Skip to content

Commit 5ddb343

Browse files
authored
fix(instance): ensure that tags are removed when deleted in tf (#672)
1 parent 28647b1 commit 5ddb343

4 files changed

+1944
-2
lines changed

scaleway/helpers.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ func expandStringWithDefault(data interface{}, defaultValue string) string {
375375

376376
func expandStrings(data interface{}) []string {
377377
if data == nil {
378-
return nil
378+
return []string{}
379379
}
380380
stringSlice := []string(nil)
381381
for _, s := range data.([]interface{}) {

scaleway/resource_instance_server.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ func resourceScalewayInstanceServerUpdate(ctx context.Context, d *schema.Resourc
643643
return diag.FromErr(err)
644644
}
645645
}
646-
_, err = instanceAPI.UpdateServer(updateRequest)
646+
_, err = instanceAPI.UpdateServer(updateRequest, scw.WithContext(ctx))
647647
if err != nil {
648648
return diag.FromErr(err)
649649
}

scaleway/resource_instance_server_test.go

+40
Original file line numberDiff line numberDiff line change
@@ -936,3 +936,43 @@ func TestAccScalewayInstanceServer_Bootscript(t *testing.T) {
936936
},
937937
})
938938
}
939+
940+
func TestAccScalewayInstanceServer_AlterTags(t *testing.T) {
941+
tt := NewTestTools(t)
942+
defer tt.Cleanup()
943+
resource.ParallelTest(t, resource.TestCase{
944+
PreCheck: func() { testAccPreCheck(t) },
945+
ProviderFactories: tt.ProviderFactories,
946+
CheckDestroy: testAccCheckScalewayInstanceServerDestroy(tt),
947+
Steps: []resource.TestStep{
948+
{
949+
Config: `
950+
resource "scaleway_instance_server" "base" {
951+
type = "DEV1-L"
952+
image = "ubuntu_focal"
953+
state = "stopped"
954+
tags = [ "front", "web" ]
955+
}
956+
`,
957+
Check: resource.ComposeTestCheckFunc(
958+
testAccCheckScalewayInstanceServerExists(tt, "scaleway_instance_server.base"),
959+
resource.TestCheckResourceAttr("scaleway_instance_server.base", "tags.0", "front"),
960+
resource.TestCheckResourceAttr("scaleway_instance_server.base", "tags.1", "web"),
961+
),
962+
},
963+
{
964+
Config: `
965+
resource "scaleway_instance_server" "base" {
966+
type = "DEV1-L"
967+
state = "stopped"
968+
image = "ubuntu_focal"
969+
}
970+
`,
971+
Check: resource.ComposeTestCheckFunc(
972+
testAccCheckScalewayInstanceServerExists(tt, "scaleway_instance_server.base"),
973+
resource.TestCheckNoResourceAttr("scaleway_instance_server.base", "tags"),
974+
),
975+
},
976+
},
977+
})
978+
}

0 commit comments

Comments
 (0)