Skip to content

Commit 02c57dd

Browse files
authored
Merge branch 'scaleway:master' into master
2 parents e7facfb + 4e33c67 commit 02c57dd

18 files changed

+5524
-4662
lines changed

internal/namespaces/instance/v1/custom_server.go

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,11 @@ func orderVolumes(v map[string]*customVolume) []*customVolume {
152152
return orderedVolumes
153153
}
154154

155+
type ServerWithWarningsResponse struct {
156+
*instance.Server
157+
Warnings []string
158+
}
159+
155160
// serversMarshalerFunc marshals a BootscriptID.
156161
func bootscriptMarshalerFunc(i interface{}, _ *human.MarshalOpt) (string, error) {
157162
bootscript := i.(instance.Bootscript)
@@ -349,7 +354,27 @@ func serverUpdateBuilder(c *core.Command) *core.Command {
349354
return nil, err
350355
}
351356

352-
return updateServerResponse, nil
357+
// Display warning if server-type is deprecated
358+
warnings := []string(nil)
359+
server := updateServerResponse.Server
360+
if server.EndOfService {
361+
warnings = warningServerTypeDeprecated(ctx, client, server)
362+
}
363+
364+
return &ServerWithWarningsResponse{
365+
server,
366+
warnings,
367+
}, nil
368+
}
369+
370+
c.View = &core.View{
371+
Sections: []*core.ViewSection{
372+
{
373+
FieldName: "Warnings",
374+
Title: "Warnings",
375+
HideIfEmpty: true,
376+
},
377+
},
353378
}
354379

355380
return c
@@ -392,6 +417,7 @@ func serverGetBuilder(c *core.Command) *core.Command {
392417
return rawResp, err
393418
}
394419
getServerResp := rawResp.(*instance.GetServerResponse)
420+
server := getServerResp.Server
395421

396422
client := core.ExtractClient(ctx)
397423
vpcAPI := vpc.NewAPI(client)
@@ -405,8 +431,8 @@ func serverGetBuilder(c *core.Command) *core.Command {
405431

406432
nics := []customNICs{}
407433

408-
for _, nic := range getServerResp.Server.PrivateNics {
409-
region, err := getServerResp.Server.Zone.Region()
434+
for _, nic := range server.PrivateNics {
435+
region, err := server.Zone.Region()
410436
if err != nil {
411437
return nil, err
412438
}
@@ -428,7 +454,7 @@ func serverGetBuilder(c *core.Command) *core.Command {
428454
volumes := map[string]*customVolume{}
429455
blockAPI := block.NewAPI(client)
430456

431-
for _, volume := range getServerResp.Server.Volumes {
457+
for _, volume := range server.Volumes {
432458
customVol := &customVolume{
433459
ID: volume.ID,
434460
Zone: volume.Zone.String(),
@@ -473,14 +499,22 @@ func serverGetBuilder(c *core.Command) *core.Command {
473499
volumes[volume.ID] = customVol
474500
}
475501

502+
// Display warning if server-type is deprecated
503+
warnings := []string(nil)
504+
if server.EndOfService {
505+
warnings = warningServerTypeDeprecated(ctx, client, server)
506+
}
507+
476508
return &struct {
477509
*instance.Server
478510
Volumes []*customVolume
479511
PrivateNics []customNICs `json:"private_nics"`
512+
Warnings []string `json:"warnings"`
480513
}{
481-
getServerResp.Server,
514+
server,
482515
orderVolumes(volumes),
483516
nics,
517+
warnings,
484518
}, nil
485519
}
486520

@@ -510,6 +544,11 @@ func serverGetBuilder(c *core.Command) *core.Command {
510544
FieldName: "PrivateNics",
511545
Title: "Private NICs",
512546
},
547+
{
548+
FieldName: "Warnings",
549+
Title: "Warnings",
550+
HideIfEmpty: true,
551+
},
513552
},
514553
}
515554

internal/namespaces/instance/v1/custom_server_action_test.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ func Test_ServerTerminate(t *testing.T) {
3232
func(t *testing.T, ctx *core.CheckFuncCtx) {
3333
t.Helper()
3434
api := instanceSDK.NewAPI(ctx.Client)
35-
server := testhelpers.MapValue[*instanceSDK.Server](t, ctx.Meta, "Server")
35+
server := testhelpers.MapValue[*instance.ServerWithWarningsResponse](
36+
t,
37+
ctx.Meta,
38+
"Server",
39+
).Server
3640
assert.NotNil(t, server.PublicIP)
3741
_, err := api.GetIP(&instanceSDK.GetIPRequest{
3842
IP: server.PublicIP.ID,
@@ -59,7 +63,11 @@ func Test_ServerTerminate(t *testing.T) {
5963
func(t *testing.T, ctx *core.CheckFuncCtx) {
6064
t.Helper()
6165
api := instanceSDK.NewAPI(ctx.Client)
62-
server := testhelpers.MapValue[*instanceSDK.Server](t, ctx.Meta, "Server")
66+
server := testhelpers.MapValue[*instance.ServerWithWarningsResponse](
67+
t,
68+
ctx.Meta,
69+
"Server",
70+
).Server
6371
assert.NotNil(t, server.PublicIP)
6472

6573
_, err := api.GetIP(&instanceSDK.GetIPRequest{
@@ -107,7 +115,11 @@ func Test_ServerTerminate(t *testing.T) {
107115
func(t *testing.T, ctx *core.CheckFuncCtx) {
108116
t.Helper()
109117
api := instanceSDK.NewAPI(ctx.Client)
110-
server := testhelpers.MapValue[*instanceSDK.Server](t, ctx.Meta, "Server")
118+
server := testhelpers.MapValue[*instance.ServerWithWarningsResponse](
119+
t,
120+
ctx.Meta,
121+
"Server",
122+
).Server
111123
volume := testhelpers.MapTValue(t, server.Volumes, "0")
112124

113125
_, err := api.GetVolume(&instanceSDK.GetVolumeRequest{
@@ -183,7 +195,11 @@ func Test_ServerAction(t *testing.T) {
183195
core.TestCheckExitCode(0),
184196
func(t *testing.T, ctx *core.CheckFuncCtx) {
185197
t.Helper()
186-
storedServer := testhelpers.MapValue[*instanceSDK.Server](t, ctx.Meta, "Server")
198+
storedServer := testhelpers.MapValue[*instance.ServerWithWarningsResponse](
199+
t,
200+
ctx.Meta,
201+
"Server",
202+
).Server
187203
api := instanceSDK.NewAPI(ctx.Client)
188204
resp, err := api.GetServer(&instanceSDK.GetServerRequest{
189205
Zone: storedServer.Zone,

internal/namespaces/instance/v1/custom_server_create.go

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,18 +186,35 @@ func serverCreateCommand() *core.Command {
186186
scw instance server create image=ubuntu_focal ip=$ip`,
187187
},
188188
},
189+
View: &core.View{
190+
Sections: []*core.ViewSection{
191+
{
192+
FieldName: "Warnings",
193+
Title: "Warnings",
194+
HideIfEmpty: true,
195+
},
196+
},
197+
},
189198
}
190199
}
191200

192201
func instanceWaitServerCreateRun() core.WaitFunc {
193202
return func(ctx context.Context, argsI, respI interface{}) (interface{}, error) {
194-
return instance.NewAPI(core.ExtractClient(ctx)).
203+
resp := respI.(*ServerWithWarningsResponse)
204+
serverID := resp.Server.ID
205+
206+
waitServer, err := instance.NewAPI(core.ExtractClient(ctx)).
195207
WaitForServer(&instance.WaitForServerRequest{
196208
Zone: argsI.(*instanceCreateServerRequest).Zone,
197-
ServerID: respI.(*instance.Server).ID,
209+
ServerID: serverID,
198210
Timeout: scw.TimeDurationPtr(serverActionTimeout),
199211
RetryInterval: core.DefaultRetryInterval,
200212
})
213+
214+
return &ServerWithWarningsResponse{
215+
waitServer,
216+
resp.Warnings,
217+
}, err
201218
}
202219
}
203220

@@ -339,7 +356,16 @@ func instanceServerCreateRun(ctx context.Context, argsI interface{}) (i interfac
339356
}
340357
}
341358

342-
return server, nil
359+
// Display warning if server-type is deprecated
360+
warnings := []string(nil)
361+
if server.EndOfService {
362+
warnings = warningServerTypeDeprecated(ctx, client, server)
363+
}
364+
365+
return &ServerWithWarningsResponse{
366+
server,
367+
warnings,
368+
}, nil
343369
}
344370

345371
func addDefaultVolumes(

0 commit comments

Comments
 (0)