Skip to content

Commit 697828f

Browse files
nicolai86stack72
authored andcommitted
Handle Scaleway tags correctly (hashicorp#7682)
1 parent 9dbf998 commit 697828f

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

builtin/providers/scaleway/resource_scaleway_server.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,10 @@ func resourceScalewayServerCreate(d *schema.ResourceData, m interface{}) error {
8282
server.Bootscript = String(bootscript.(string))
8383
}
8484

85-
if tags, ok := d.GetOk("tags"); ok {
86-
server.Tags = tags.([]string)
85+
if raw, ok := d.GetOk("tags"); ok {
86+
for _, tag := range raw.([]interface{}) {
87+
server.Tags = append(server.Tags, tag.(string))
88+
}
8789
}
8890

8991
id, err := scaleway.PostServer(server)
@@ -129,6 +131,7 @@ func resourceScalewayServerRead(d *schema.ResourceData, m interface{}) error {
129131
d.Set("ipv4_address_public", server.PublicAddress.IP)
130132
d.Set("state", server.State)
131133
d.Set("state_detail", server.StateDetail)
134+
d.Set("tags", server.Tags)
132135

133136
d.SetConnInfo(map[string]string{
134137
"type": "ssh",
@@ -148,6 +151,16 @@ func resourceScalewayServerUpdate(d *schema.ResourceData, m interface{}) error {
148151
req.Name = &name
149152
}
150153

154+
if d.HasChange("tags") {
155+
if raw, ok := d.GetOk("tags"); ok {
156+
var tags []string
157+
for _, tag := range raw.([]interface{}) {
158+
tags = append(tags, tag.(string))
159+
}
160+
req.Tags = &tags
161+
}
162+
}
163+
151164
if d.HasChange("dynamic_ip_required") {
152165
req.DynamicIPRequired = Bool(d.Get("dynamic_ip_required").(bool))
153166
}

builtin/providers/scaleway/resource_scaleway_server_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ func TestAccScalewayServer_Basic(t *testing.T) {
2323
"scaleway_server.base", "type", "C1"),
2424
resource.TestCheckResourceAttr(
2525
"scaleway_server.base", "name", "test"),
26+
resource.TestCheckResourceAttr(
27+
"scaleway_server.base", "tags.0", "terraform-test"),
2628
),
2729
},
2830
},
@@ -110,4 +112,5 @@ resource "scaleway_server" "base" {
110112
# ubuntu 14.04
111113
image = "%s"
112114
type = "C1"
115+
tags = [ "terraform-test" ]
113116
}`, armImageIdentifier)

0 commit comments

Comments
 (0)