Skip to content

Commit 4b3e514

Browse files
committed
Add efiBootloaderPath for dedicated server resource (and dedicated
server update)
1 parent 861f0bd commit 4b3e514

11 files changed

+75
-29
lines changed

ovh/data_dedicated_server.go

+6
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ func dataSourceDedicatedServer() *schema.Resource {
5151
Computed: true,
5252
Description: "Dedicated datacenter localisation (bhs1,bhs2,...)",
5353
},
54+
"efi_bootloader_path": {
55+
Type: schema.TypeString,
56+
Computed: true,
57+
Description: "path of the EFI bootloader",
58+
},
5459
"ip": {
5560
Type: schema.TypeString,
5661
Computed: true,
@@ -243,6 +248,7 @@ func dataSourceDedicatedServerRead(d *schema.ResourceData, meta interface{}) err
243248
d.Set("boot_script", ds.BootScript)
244249
d.Set("commercial_range", ds.CommercialRange)
245250
d.Set("datacenter", ds.Datacenter)
251+
d.Set("efi_bootloader_path", ds.EfiBootloaderPath)
246252
d.Set("ip", ds.Ip)
247253
d.Set("link_speed", ds.LinkSpeed)
248254
d.Set("monitoring", ds.Monitoring)

ovh/data_dedicated_server_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ func TestAccDedicatedServerDataSource_basic(t *testing.T) {
3737
resource.TestCheckResourceAttrSet(
3838
"data.ovh_dedicated_server.server", "display_name"),
3939
resource.TestCheckResourceAttr(
40-
"data.ovh_dedicated_server.server", "region", "eu-west-sbg"),
40+
"data.ovh_dedicated_server.server", "region", "ca-east-bhs"),
4141
resource.TestCheckResourceAttr(
42-
"data.ovh_dedicated_server.server", "availability_zone", "eu-west-sbg-a"),
42+
"data.ovh_dedicated_server.server", "availability_zone", "ca-east-bhs-a"),
4343
resource.TestCheckResourceAttr(
4444
"data.ovh_dedicated_server.server", "new_upgrade_system", "true"),
4545
resource.TestCheckResourceAttr(

ovh/resource_dedicated_server_gen.go

+21
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ovh/resource_dedicated_server_install_task_test.go

+10-18
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,6 @@ func TestAccDedicatedServerInstall_usermetadata(t *testing.T) {
8888
{
8989
Config: testAccDedicatedServerInstallConfig("usermetadata"),
9090
Check: resource.ComposeTestCheckFunc(
91-
resource.TestCheckResourceAttr(
92-
"ovh_dedicated_server_update.server", "state", "ok"),
93-
resource.TestCheckResourceAttr(
94-
"ovh_dedicated_server_update.server", "monitoring", "true"),
9591
resource.TestCheckResourceAttr(
9692
"ovh_dedicated_server_install_task.server_install", "function", "reinstallServer"),
9793
resource.TestCheckResourceAttr(
@@ -144,10 +140,11 @@ data ovh_dedicated_server_boots "harddisk" {
144140
}
145141
146142
resource ovh_dedicated_server_update "server" {
147-
service_name = data.ovh_dedicated_server_boots.harddisk.service_name
148-
boot_id = data.ovh_dedicated_server_boots.harddisk.result[0]
149-
monitoring = true
150-
state = "ok"
143+
service_name = data.ovh_dedicated_server_boots.harddisk.service_name
144+
boot_id = data.ovh_dedicated_server_boots.harddisk.result[0]
145+
monitoring = true
146+
state = "ok"
147+
efi_bootloader_path = "\\efi\\debian\\grubx64.efi"
151148
}
152149
153150
resource "ovh_me_installation_template" "debian" {
@@ -186,10 +183,11 @@ data ovh_dedicated_server_boots "rescue" {
186183
}
187184
188185
resource ovh_dedicated_server_update "server" {
189-
service_name = data.ovh_dedicated_server_boots.harddisk.service_name
190-
boot_id = data.ovh_dedicated_server_boots.harddisk.result[0]
191-
monitoring = true
192-
state = "ok"
186+
service_name = data.ovh_dedicated_server_boots.harddisk.service_name
187+
boot_id = data.ovh_dedicated_server_boots.harddisk.result[0]
188+
monitoring = true
189+
state = "ok"
190+
efi_bootloader_path = "\\efi\\debian\\grubx64.efi"
193191
}
194192
195193
resource ovh_dedicated_server_install_task "server_install" {
@@ -208,12 +206,6 @@ data ovh_dedicated_server_boots "harddisk" {
208206
boot_type = "harddisk"
209207
}
210208
211-
resource ovh_dedicated_server_update "server" {
212-
service_name = data.ovh_dedicated_server_boots.harddisk.service_name
213-
monitoring = true
214-
state = "ok"
215-
}
216-
217209
resource ovh_dedicated_server_install_task "server_install" {
218210
service_name = data.ovh_dedicated_server_boots.harddisk.service_name
219211
template_name = "byolinux_64"

ovh/resource_dedicated_server_test.go

+12-5
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,19 @@ import (
1111

1212
func dedicatedServerResourceTestConfig(updated bool) string {
1313
var (
14-
monitoring = true
15-
noIntervention = false
16-
baseTemplate = "debian11_64"
17-
displayName = "First display name"
14+
monitoring = true
15+
noIntervention = false
16+
baseTemplate = "debian11_64"
17+
displayName = "First display name"
18+
efiBootloaderPath = ""
1819
)
1920

2021
if updated {
2122
monitoring = false
2223
noIntervention = true
2324
baseTemplate = "debian12_64"
2425
displayName = "Second display name"
26+
efiBootloaderPath = "\\efi\\debian\\grubx64.efi"
2527
}
2628

2729
return fmt.Sprintf(`
@@ -33,6 +35,7 @@ func dedicatedServerResourceTestConfig(updated bool) string {
3335
no_intervention = %t
3436
display_name = "%s"
3537
template_name = "%s"
38+
efi_bootloader_path = "%s"
3639
3740
plan = [
3841
{
@@ -84,7 +87,7 @@ func dedicatedServerResourceTestConfig(updated bool) string {
8487
}
8588
]
8689
}
87-
`, monitoring, noIntervention, displayName, baseTemplate)
90+
`, monitoring, noIntervention, displayName, baseTemplate, efiBootloaderPath)
8891
}
8992

9093
func TestAccDedicatedServer_basic(t *testing.T) {
@@ -107,6 +110,8 @@ func TestAccDedicatedServer_basic(t *testing.T) {
107110
"ovh_dedicated_server.server", "iam.display_name", "First display name"),
108111
resource.TestCheckResourceAttr(
109112
"ovh_dedicated_server.server", "os", "debian11_64"),
113+
resource.TestCheckResourceAttr(
114+
"ovh_dedicated_server.server", "efi_bootloader_path", ""),
110115
),
111116
},
112117
{
@@ -122,6 +127,8 @@ func TestAccDedicatedServer_basic(t *testing.T) {
122127
"ovh_dedicated_server.server", "iam.display_name", "Second display name"),
123128
resource.TestCheckResourceAttr(
124129
"ovh_dedicated_server.server", "os", "debian12_64"),
130+
resource.TestCheckResourceAttr(
131+
"ovh_dedicated_server.server", "efi_bootloader_path", "\\efi\\debian\\grubx64.efi"),
125132
),
126133
},
127134
{

ovh/resource_dedicated_server_update.go

+7
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ func resourceDedicatedServerUpdate() *schema.Resource {
3434
Description: "The boot script of your dedicated server.",
3535
Optional: true,
3636
},
37+
"efi_bootloader_path": {
38+
Type: schema.TypeString,
39+
Description: "The path of the EFI bootloader.",
40+
Computed: true,
41+
Optional: true,
42+
},
3743
"monitoring": {
3844
Type: schema.TypeBool,
3945
Computed: true,
@@ -113,6 +119,7 @@ func resourceDedicatedServerUpdateRead(ctx context.Context, d *schema.ResourceDa
113119

114120
d.Set("boot_id", ds.BootId)
115121
d.Set("boot_script", ds.BootScript)
122+
d.Set("efi_bootloader_path", ds.EfiBootloaderPath)
116123
d.Set("monitoring", ds.Monitoring)
117124
d.Set("state", ds.State)
118125
d.Set("display_name", ds.DisplayName)

ovh/resource_dedicated_server_update_test.go

+6
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ func TestAccDedicatedServerUpdate_basic(t *testing.T) {
2626
"ovh_dedicated_server_update.server", "state", "ok"),
2727
resource.TestCheckResourceAttr(
2828
"ovh_dedicated_server_update.server", "boot_script", ""),
29+
resource.TestCheckResourceAttr(
30+
"ovh_dedicated_server_update.server", "efi_bootloader_path", "\\efi\\boot\\bootx64.efi"),
2931
resource.TestCheckResourceAttr(
3032
"ovh_dedicated_server_update.server", "display_name", "An awesome display name"),
3133
),
@@ -40,6 +42,8 @@ func TestAccDedicatedServerUpdate_basic(t *testing.T) {
4042
"ovh_dedicated_server_update.server", "state", "ok"),
4143
resource.TestCheckResourceAttr(
4244
"ovh_dedicated_server_update.server", "boot_script", ""),
45+
resource.TestCheckResourceAttr(
46+
"ovh_dedicated_server_update.server", "efi_bootloader_path", "\\efi\\boot\\bootx64.efi"),
4347
resource.TestCheckResourceAttr(
4448
"ovh_dedicated_server_update.server", "display_name", "An awesome display name restored"),
4549
),
@@ -76,6 +80,7 @@ resource ovh_dedicated_server_update "server" {
7680
monitoring = true
7781
state = "ok"
7882
display_name = "An awesome display name"
83+
efi_bootloader_path = "\\efi\\boot\\bootx64.efi"
7984
}
8085
8186
output test {
@@ -95,6 +100,7 @@ resource ovh_dedicated_server_update "server" {
95100
monitoring = false
96101
state = "ok"
97102
display_name = "An awesome display name restored"
103+
efi_bootloader_path = "\\efi\\boot\\bootx64.efi"
98104
}
99105
100106
output test {

ovh/types_dedicated_server.go

+7-4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type DedicatedServer struct {
1515
BootScript string `json:"bootScript"`
1616
CommercialRange string `json:"commercialRange"`
1717
Datacenter string `json:"datacenter"`
18+
EfiBootloaderPath string `json:"efiBootloaderPath"`
1819
Ip string `json:"ip"`
1920
LinkSpeed int `json:"linkSpeed"`
2021
Monitoring bool `json:"monitoring"`
@@ -46,15 +47,17 @@ func (ds DedicatedServer) String() string {
4647
}
4748

4849
type DedicatedServerUpdateOpts struct {
49-
BootId *int64 `json:"bootId,omitempty"`
50-
BootScript *string `json:"bootScript,omitempty"`
51-
Monitoring *bool `json:"monitoring,omitempty"`
52-
State *string `json:"state,omitempty"`
50+
BootId *int64 `json:"bootId,omitempty"`
51+
BootScript *string `json:"bootScript,omitempty"`
52+
EfiBootloaderPath *string `json:"efiBootloaderPath,omitempty"`
53+
Monitoring *bool `json:"monitoring,omitempty"`
54+
State *string `json:"state,omitempty"`
5355
}
5456

5557
func (opts *DedicatedServerUpdateOpts) FromResource(d *schema.ResourceData) *DedicatedServerUpdateOpts {
5658
opts.BootId = helpers.GetNilInt64PointerFromData(d, "boot_id")
5759
opts.BootScript = helpers.GetNilStringPointerFromData(d, "boot_script")
60+
opts.EfiBootloaderPath = helpers.GetNilStringPointerFromData(d, "efi_bootloader_path")
5861
opts.Monitoring = helpers.GetNilBoolPointerFromData(d, "monitoring")
5962
opts.State = helpers.GetNilStringPointerFromData(d, "state")
6063
return opts

website/docs/d/dedicated_server.html.markdown

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ In addition, the following attributes are exported:
2929
* `urn` - URN of the dedicated server instance
3030
* `commercial_range` - Dedicated server commercial range
3131
* `datacenter` - Dedicated datacenter localisation (bhs1,bhs2,...)
32+
* `efi_bootloader_path` - Path of the EFI bootloader of the dedicated server
3233
* `ip` - Dedicated server ip (IPv4)
3334
* `ips` - Dedicated server ip blocks
3435
* `link_speed` - Link speed of the server

website/docs/r/dedicated_server.html.markdown

+1
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ The `user_metadata` block supports many arguments, here is a non-exhaustive list
142142
* `tags` - Resource tags. Tags that were internally computed are prefixed with `ovh:`
143143
* `boot_id` - Boot id of the server
144144
* `boot_script` - Boot script of the server
145+
* `efi_bootloader_path` - Path of the EFI bootloader
145146
* `link_speed` - Link speed of the server
146147
* `monitoring` - Icmp monitoring state
147148
* `no_intervention` - Prevent datacenter intervention

website/docs/r/dedicated_server_update.html.markdown

+2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ The following arguments are supported:
3636
* `service_name` - (Required) The service_name of your dedicated server.
3737
* `boot_id` - boot id of the server
3838
* `boot_script` - boot script of the server
39+
* `efi_bootloader_path` - path of the EFI bootloader
3940
* `monitoring` - Icmp monitoring state
4041
* `state` - error, hacked, hackedBlocked, ok
4142
* `display_name` - display name of the dedicated server
@@ -46,6 +47,7 @@ The following attributes are exported:
4647

4748
* `service_name` - See Argument Reference above.
4849
* `boot_id` - See Argument Reference above.
50+
* `efi_bootloader_path` - See Argument Reference above.
4951
* `monitoring` - See Argument Reference above.
5052
* `state` - See Argument Reference above.
5153
* `display_name` - See Argument Reference above.

0 commit comments

Comments
 (0)