Skip to content

Commit ba54f4c

Browse files
yfodilremyleone
andauthored
fix(baremetal): import missing os and offer names (#1756)
* fix(baremetal): import missing os and offer names * update cassettes * update cassettes * last one * real last one * fix not empty plan * update doc * update cassettes * fix * typo * checks * update cassettes * Update scaleway/resource_baremetal_server.go Co-authored-by: Rémy Léone <[email protected]> * fix --------- Co-authored-by: Rémy Léone <[email protected]> Co-authored-by: Rémy Léone <[email protected]>
1 parent ad8315c commit ba54f4c

14 files changed

+57048
-40961
lines changed

docs/resources/baremetal_server.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,8 @@ In addition to all above arguments, the following attributes are exported:
154154
~> **Important:** Baremetal servers' IDs are [zoned](../guides/regions_and_zones.md#resource-ids), which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`
155155

156156
- `offer_id` - The ID of the offer.
157-
- `os_id` - The ID of the os.
157+
- `offer_name` - The name of the offer.
158+
- `os_name` - The name of the os.
158159
- `private_network` - The private networks attached to the server.
159160
- `id` - The ID of the private network.
160161
- `vlan` - The VLAN ID associated to the private network.

scaleway/data_source_baremetal_server_test.go

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,46 @@ func TestAccScalewayDataSourceBaremetalServer_Basic(t *testing.T) {
2121
Steps: []resource.TestStep{
2222
{
2323
Config: fmt.Sprintf(`
24+
data "scaleway_baremetal_os" "my_os" {
25+
zone = "fr-par-2"
26+
name = "Ubuntu"
27+
version = "22.04 LTS (Jammy Jellyfish)"
28+
}
29+
30+
data "scaleway_baremetal_offer" "my_offer" {
31+
zone = "fr-par-2"
32+
name = "EM-B112X-SSD"
33+
}
34+
35+
resource "scaleway_account_ssh_key" "main" {
36+
name = "%s"
37+
public_key = "%s"
38+
}
39+
40+
resource "scaleway_baremetal_server" "main" {
41+
name = "%s"
42+
zone = "fr-par-2"
43+
description = "test a description"
44+
offer = data.scaleway_baremetal_offer.my_offer.offer_id
45+
os = data.scaleway_baremetal_os.my_os.os_id
46+
47+
ssh_key_ids = [ scaleway_account_ssh_key.main.id ]
48+
}
49+
`, SSHKeyName, SSHKeyBaremetal, name),
50+
},
51+
{
52+
Config: fmt.Sprintf(`
53+
data "scaleway_baremetal_os" "my_os" {
54+
zone = "fr-par-2"
55+
name = "Ubuntu"
56+
version = "22.04 LTS (Jammy Jellyfish)"
57+
}
58+
59+
data "scaleway_baremetal_offer" "my_offer" {
60+
zone = "fr-par-2"
61+
name = "EM-B112X-SSD"
62+
}
63+
2464
resource "scaleway_account_ssh_key" "main" {
2565
name = "%s"
2666
public_key = "%s"
@@ -30,8 +70,8 @@ func TestAccScalewayDataSourceBaremetalServer_Basic(t *testing.T) {
3070
name = "%s"
3171
zone = "fr-par-2"
3272
description = "test a description"
33-
offer = "EM-A210R-HDD"
34-
os = "d17d6872-0412-45d9-a198-af82c34d3c5c"
73+
offer = data.scaleway_baremetal_offer.my_offer.offer_id
74+
os = data.scaleway_baremetal_os.my_os.os_id
3575
3676
ssh_key_ids = [ scaleway_account_ssh_key.main.id ]
3777
}

scaleway/resource_baremetal_server.go

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,22 @@ func resourceScalewayBaremetalServer() *schema.Resource {
5454
Computed: true,
5555
Description: "ID of the server offer",
5656
},
57+
"offer_name": {
58+
Type: schema.TypeString,
59+
Computed: true,
60+
Description: "Name of the server offer",
61+
},
5762
"os": {
58-
Type: schema.TypeString,
59-
Required: true,
60-
Description: "The base image of the server",
61-
ValidateFunc: validationUUIDorUUIDWithLocality(),
63+
Type: schema.TypeString,
64+
Required: true,
65+
Description: "The base image of the server",
66+
DiffSuppressFunc: diffSuppressFuncLocality,
67+
ValidateFunc: validationUUIDorUUIDWithLocality(),
6268
},
63-
"os_id": {
69+
"os_name": {
6470
Type: schema.TypeString,
6571
Computed: true,
66-
Description: "The base image ID of the server",
72+
Description: "The base image name of the server",
6773
},
6874
"ssh_key_ids": {
6975
Type: schema.TypeList,
@@ -119,6 +125,7 @@ If this behaviour is wanted, please set 'reinstall_on_ssh_key_changes' argument
119125
Type: schema.TypeString,
120126
},
121127
Optional: true,
128+
Computed: true,
122129
Description: "Array of tags to associate with the server",
123130
},
124131
"zone": zoneSchema(),
@@ -368,16 +375,26 @@ func resourceScalewayBaremetalServerRead(ctx context.Context, d *schema.Resource
368375
return diag.FromErr(err)
369376
}
370377

378+
os, err := baremetalAPI.GetOS(&baremetal.GetOSRequest{
379+
Zone: server.Zone,
380+
OsID: server.Install.OsID,
381+
})
382+
if err != nil {
383+
return diag.FromErr(err)
384+
}
385+
371386
_ = d.Set("name", server.Name)
372387
_ = d.Set("zone", server.Zone.String())
373388
_ = d.Set("organization_id", server.OrganizationID)
374389
_ = d.Set("project_id", server.ProjectID)
375-
_ = d.Set("offer_id", newZonedID(server.Zone, offer.ID).String())
390+
_ = d.Set("offer_id", newZonedIDString(server.Zone, offer.ID))
391+
_ = d.Set("offer_name", offer.Name)
376392
_ = d.Set("tags", server.Tags)
377393
_ = d.Set("domain", server.Domain)
378394
_ = d.Set("ips", flattenBaremetalIPs(server.IPs))
379395
if server.Install != nil {
380-
_ = d.Set("os_id", newZonedID(server.Zone, server.Install.OsID).String())
396+
_ = d.Set("os", newZonedIDString(server.Zone, os.ID))
397+
_ = d.Set("os_name", os.Name)
381398
_ = d.Set("ssh_key_ids", server.Install.SSHKeyIDs)
382399
_ = d.Set("user", server.Install.User)
383400
_ = d.Set("service_user", server.Install.ServiceUser)

scaleway/resource_baremetal_server_test.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,6 @@ func TestAccScalewayBaremetalServer_CreateServerWithOption(t *testing.T) {
201201
testAccCheckScalewayBaremetalServerHasOptions(tt, "scaleway_baremetal_server.base"),
202202
resource.TestCheckResourceAttrPair("scaleway_baremetal_server.base", "options.0.id", "data.scaleway_baremetal_option.private_network", "option_id"),
203203
),
204-
ExpectNonEmptyPlan: true,
205204
},
206205
},
207206
})
@@ -290,7 +289,6 @@ func TestAccScalewayBaremetalServer_AddOption(t *testing.T) {
290289
testAccCheckScalewayBaremetalServerHasOptions(tt, "scaleway_baremetal_server.base"),
291290
resource.TestCheckResourceAttrPair("scaleway_baremetal_server.base", "options.0.id", "data.scaleway_baremetal_option.private_network", "option_id"),
292291
),
293-
ExpectNonEmptyPlan: true,
294292
},
295293
},
296294
})
@@ -396,7 +394,6 @@ func TestAccScalewayBaremetalServer_AddTwoOptionsThenDeleteOne(t *testing.T) {
396394
"id": "fr-par-2/cd4158d7-2d65-49be-8803-c4b8ab6f760c",
397395
}),
398396
),
399-
ExpectNonEmptyPlan: true,
400397
},
401398
{
402399
Config: fmt.Sprintf(`
@@ -443,7 +440,6 @@ func TestAccScalewayBaremetalServer_AddTwoOptionsThenDeleteOne(t *testing.T) {
443440
"expires_at": "2025-07-06T09:00:00Z",
444441
}),
445442
),
446-
ExpectNonEmptyPlan: true,
447443
},
448444
},
449445
})
@@ -511,7 +507,6 @@ func TestAccScalewayBaremetalServer_CreateServerWithPrivateNetwork(t *testing.T)
511507
testAccCheckScalewayBaremetalServerHasPrivateNetwork(tt, "scaleway_baremetal_server.base"),
512508
resource.TestCheckResourceAttrPair("scaleway_baremetal_server.base", "private_network.0.id", "scaleway_vpc_private_network.pn", "id"),
513509
),
514-
ExpectNonEmptyPlan: true,
515510
},
516511
},
517512
})
@@ -574,7 +569,6 @@ func TestAccScalewayBaremetalServer_AddPrivateNetwork(t *testing.T) {
574569
Check: resource.ComposeTestCheckFunc(
575570
testAccCheckScalewayBaremetalServerExists(tt, "scaleway_baremetal_server.base"),
576571
),
577-
ExpectNonEmptyPlan: true,
578572
},
579573
{
580574
Config: fmt.Sprintf(`
@@ -691,7 +685,6 @@ func TestAccScalewayBaremetalServer_AddAnotherPrivateNetwork(t *testing.T) {
691685
testAccCheckScalewayBaremetalServerHasPrivateNetwork(tt, "scaleway_baremetal_server.base"),
692686
resource.TestCheckResourceAttrPair("scaleway_baremetal_server.base", "private_network.0.id", "scaleway_vpc_private_network.pn", "id"),
693687
),
694-
ExpectNonEmptyPlan: true,
695688
},
696689
{
697690
Config: fmt.Sprintf(`

scaleway/resource_flexible_ip_test.go

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,35 @@ func TestAccScalewayFlexibleIP_CreateAndAttachToBaremetalServer(t *testing.T) {
129129
130130
data "scaleway_baremetal_offer" "my_offer" {
131131
zone = "fr-par-2"
132-
name = "EM-A210R-HDD"
132+
name = "EM-B112X-SSD"
133+
}
134+
135+
resource "scaleway_account_ssh_key" "main" {
136+
name = "%s"
137+
public_key = "%s"
138+
}
139+
140+
resource "scaleway_baremetal_server" "base" {
141+
name = "%s"
142+
zone = "fr-par-2"
143+
offer = data.scaleway_baremetal_offer.my_offer.offer_id
144+
os = data.scaleway_baremetal_os.by_id.os_id
145+
146+
ssh_key_ids = [ scaleway_account_ssh_key.main.id ]
147+
}
148+
`, SSHKeyName, SSHKeyFlexibleIP, name),
149+
},
150+
{
151+
Config: fmt.Sprintf(`
152+
data "scaleway_baremetal_os" "by_id" {
153+
zone = "fr-par-2"
154+
name = "Ubuntu"
155+
version = "22.04 LTS (Jammy Jellyfish)"
156+
}
157+
158+
data "scaleway_baremetal_offer" "my_offer" {
159+
zone = "fr-par-2"
160+
name = "EM-B112X-SSD"
133161
}
134162
135163
resource "scaleway_account_ssh_key" "main" {
@@ -195,7 +223,35 @@ func TestAccScalewayFlexibleIP_AttachAndDetachFromBaremetalServer(t *testing.T)
195223
196224
data "scaleway_baremetal_offer" "my_offer" {
197225
zone = "fr-par-2"
198-
name = "EM-A210R-HDD"
226+
name = "EM-B112X-SSD"
227+
}
228+
229+
resource "scaleway_account_ssh_key" "main" {
230+
name = "%s"
231+
public_key = "%s"
232+
}
233+
234+
resource "scaleway_baremetal_server" "base" {
235+
name = "%s"
236+
zone = "fr-par-2"
237+
offer = data.scaleway_baremetal_offer.my_offer.offer_id
238+
os = data.scaleway_baremetal_os.by_id.os_id
239+
240+
ssh_key_ids = [ scaleway_account_ssh_key.main.id ]
241+
}
242+
`, SSHKeyName, SSHKeyFlexibleIP, name),
243+
},
244+
{
245+
Config: fmt.Sprintf(`
246+
data "scaleway_baremetal_os" "by_id" {
247+
zone = "fr-par-2"
248+
name = "Ubuntu"
249+
version = "22.04 LTS (Jammy Jellyfish)"
250+
}
251+
252+
data "scaleway_baremetal_offer" "my_offer" {
253+
zone = "fr-par-2"
254+
name = "EM-B112X-SSD"
199255
}
200256
201257
resource "scaleway_account_ssh_key" "main" {

0 commit comments

Comments
 (0)