Skip to content

Commit 6dca01f

Browse files
feat(instance): set CreateServerRequest.image as optional (scaleway#2260)
Co-authored-by: Jules Casteran <[email protected]>
1 parent 71e4630 commit 6dca01f

File tree

8 files changed

+16
-15
lines changed

8 files changed

+16
-15
lines changed

api/instance/v1/image_utils_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
"github.com/scaleway/scaleway-sdk-go/internal/testhelpers"
88
"github.com/scaleway/scaleway-sdk-go/internal/testhelpers/httprecorder"
9+
"github.com/scaleway/scaleway-sdk-go/scw"
910
)
1011

1112
func TestWaitForImage(t *testing.T) {
@@ -36,7 +37,7 @@ func createImage(t *testing.T, instanceAPI *API, imageName string) (*Image, func
3637
t.Helper()
3738
serverRes, err := instanceAPI.CreateServer(&CreateServerRequest{
3839
CommercialType: "DEV1-M",
39-
Image: "ubuntu_focal",
40+
Image: scw.StringPtr("ubuntu_focal"),
4041
})
4142
testhelpers.AssertNoError(t, err)
4243

api/instance/v1/instance_sdk.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2337,7 +2337,7 @@ type CreateServerRequest struct {
23372337
CommercialType string `json:"commercial_type,omitempty"`
23382338

23392339
// Image: instance image ID or label.
2340-
Image string `json:"image,omitempty"`
2340+
Image *string `json:"image,omitempty"`
23412341

23422342
// Volumes: volumes attached to the server.
23432343
Volumes map[string]*VolumeServerTemplate `json:"volumes,omitempty"`

api/instance/v1/instance_sdk_server_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func TestServerUpdate(t *testing.T) {
2424
name = "instance_sdk_server_test"
2525
dynamicIPRequired = scw.BoolPtr(true)
2626
commercialType = "START1-S"
27-
image = "f974feac-abae-4365-b988-8ec7d1cec10d"
27+
image = scw.StringPtr("f974feac-abae-4365-b988-8ec7d1cec10d")
2828
enableIPv6 = scw.BoolPtr(true)
2929
bootType = BootTypeLocal
3030
tags = []string{"foo", "bar"}
@@ -56,7 +56,7 @@ func TestServerUpdate(t *testing.T) {
5656
testhelpers.Equals(t, name, createServerResponse.Server.Name)
5757
testhelpers.Equals(t, project, createServerResponse.Server.Project)
5858
testhelpers.Equals(t, project, createServerResponse.Server.Organization)
59-
testhelpers.Equals(t, image, createServerResponse.Server.Image.ID)
59+
testhelpers.Equals(t, *image, createServerResponse.Server.Image.ID)
6060
testhelpers.Equals(t, enableIPv6, createServerResponse.Server.EnableIPv6)
6161
testhelpers.Equals(t, bootType, createServerResponse.Server.BootType)
6262
testhelpers.Equals(t, commercialType, createServerResponse.Server.CommercialType)
@@ -104,7 +104,7 @@ func TestServerUpdate(t *testing.T) {
104104
// Initial values that are not altered in the above request should remaining the same
105105
testhelpers.Equals(t, project, updateServerResponse.Server.Project)
106106
testhelpers.Equals(t, project, updateServerResponse.Server.Organization)
107-
testhelpers.Equals(t, image, updateServerResponse.Server.Image.ID)
107+
testhelpers.Equals(t, *image, updateServerResponse.Server.Image.ID)
108108
testhelpers.Equals(t, enableIPv6, updateServerResponse.Server.EnableIPv6)
109109
testhelpers.Equals(t, bootType, updateServerResponse.Server.BootType)
110110
testhelpers.Equals(t, commercialType, updateServerResponse.Server.CommercialType)

api/instance/v1/instance_utils_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func TestInstanceHelpers(t *testing.T) {
2424
volumeID string
2525
zone = scw.ZoneFrPar1
2626
project = "ee7bd9e1-9cbd-4724-b2f4-19e50f3cf38b"
27-
image = "81b9475d-e1b5-43c2-ac48-4c1a3b640686"
27+
image = scw.StringPtr("81b9475d-e1b5-43c2-ac48-4c1a3b640686")
2828
)
2929

3030
t.Run("create server", func(t *testing.T) {
@@ -135,7 +135,7 @@ func TestInstanceHelpers_BlockVolume(t *testing.T) {
135135
volumeID2 string
136136
zone = scw.ZoneFrPar1
137137
project = "ee7bd9e1-9cbd-4724-b2f4-19e50f3cf38b"
138-
image = "81b9475d-e1b5-43c2-ac48-4c1a3b640686"
138+
image = scw.StringPtr("81b9475d-e1b5-43c2-ac48-4c1a3b640686")
139139
)
140140

141141
t.Run("create server and volume", func(t *testing.T) {

api/instance/v1/server_utils.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ const (
2222
// CreateServer creates a server.
2323
func (s *API) CreateServer(req *CreateServerRequest, opts ...scw.RequestOption) (*CreateServerResponse, error) {
2424
// If image is not a UUID we try to fetch it from marketplace.
25-
if req.Image != "" && !validation.IsUUID(req.Image) {
25+
if req.Image != nil && !validation.IsUUID(*req.Image) {
2626
apiMarketplace := marketplace.NewAPI(s.client)
2727
image, err := apiMarketplace.GetLocalImageByLabel(&marketplace.GetLocalImageByLabelRequest{
28-
ImageLabel: req.Image,
28+
ImageLabel: *req.Image,
2929
Zone: req.Zone,
3030
CommercialType: req.CommercialType,
3131
})
3232
if err != nil {
3333
return nil, err
3434
}
35-
req.Image = image.ID
35+
req.Image = scw.StringPtr(image.ID)
3636
}
3737

3838
return s.createServer(req, opts...)

api/instance/v1/server_utils_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func TestAPI_ServerUserData(t *testing.T) {
4747
Zone: scw.ZoneFrPar1,
4848
CommercialType: "DEV1-S",
4949
Name: namegenerator.GetRandomName("srv"),
50-
Image: "f974feac-abae-4365-b988-8ec7d1cec10d",
50+
Image: scw.StringPtr("f974feac-abae-4365-b988-8ec7d1cec10d"),
5151
Project: scw.StringPtr("14d2f7ae-9775-414c-9bed-6810e060d500"),
5252
})
5353
testhelpers.AssertNoError(t, err)
@@ -86,7 +86,7 @@ func TestAPI_AllServerUserData(t *testing.T) {
8686
Zone: scw.ZoneFrPar1,
8787
CommercialType: "DEV1-S",
8888
Name: namegenerator.GetRandomName("srv"),
89-
Image: "f974feac-abae-4365-b988-8ec7d1cec10d",
89+
Image: scw.StringPtr("f974feac-abae-4365-b988-8ec7d1cec10d"),
9090
Project: scw.StringPtr("14d2f7ae-9775-414c-9bed-6810e060d500"),
9191
})
9292
testhelpers.AssertNoError(t, err)
@@ -154,7 +154,7 @@ func TestAPI_CreateServer(t *testing.T) {
154154
res, err := instanceAPI.CreateServer(&CreateServerRequest{
155155
Zone: scw.ZoneFrPar1,
156156
CommercialType: "GP1-XS",
157-
Image: "ubuntu_focal",
157+
Image: scw.StringPtr("ubuntu_focal"),
158158
})
159159

160160
testhelpers.AssertNoError(t, err)

api/instance/v1/snapshot_utils_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func createSnapshot(t *testing.T, instanceAPI *API, snapshotName string) (*Snaps
3636
t.Helper()
3737
serverRes, err := instanceAPI.CreateServer(&CreateServerRequest{
3838
CommercialType: "DEV1-M",
39-
Image: "ubuntu_focal",
39+
Image: scw.StringPtr("ubuntu_focal"),
4040
})
4141
testhelpers.AssertNoError(t, err)
4242

example_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ func Example_createServer() {
134134
createRes, err := instanceAPI.CreateServer(&instance.CreateServerRequest{
135135
Name: "my-server-01",
136136
CommercialType: serverType,
137-
Image: image,
137+
Image: scw.StringPtr(image),
138138
DynamicIPRequired: scw.BoolPtr(true),
139139
})
140140
if err != nil {

0 commit comments

Comments
 (0)