Skip to content

Commit e03f681

Browse files
committed
fix: user data is not encoded to base64 string
1 parent 77ab52e commit e03f681

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

internal/cmd/server/create/create.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package create
22

33
import (
44
"context"
5+
"encoding/base64"
56
"fmt"
67

78
"github.com/stackitcloud/stackit-cli/internal/pkg/types"
@@ -275,6 +276,11 @@ func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel,
275276
func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APIClient) iaas.ApiCreateServerRequest {
276277
req := apiClient.DefaultAPI.CreateServer(ctx, model.ProjectId, model.Region)
277278

279+
var userData *string
280+
if model.UserData != nil {
281+
userData = utils.Ptr(base64.StdEncoding.EncodeToString([]byte(*model.UserData)))
282+
}
283+
278284
payload := iaas.CreateServerPayload{
279285
Name: model.Name,
280286
MachineType: model.MachineType,
@@ -285,7 +291,7 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *iaas.APICli
285291
KeypairName: model.KeypairName,
286292
SecurityGroups: model.SecurityGroups,
287293
ServiceAccountMails: model.ServiceAccountMails,
288-
UserData: model.UserData,
294+
UserData: userData,
289295
Volumes: model.Volumes,
290296
Labels: model.Labels,
291297
}

internal/cmd/server/create/create_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,17 @@ func TestBuildRequest(t *testing.T) {
397397
*request = request.CreateServerPayload(payload)
398398
}),
399399
},
400+
{
401+
description: "with user data",
402+
model: fixtureInputModel(func(model *inputModel) {
403+
model.UserData = utils.Ptr("cloud-init data")
404+
}),
405+
expectedRequest: fixtureRequest(func(request *iaas.ApiCreateServerRequest) {
406+
payload := fixturePayload()
407+
payload.UserData = utils.Ptr("Y2xvdWQtaW5pdCBkYXRh")
408+
*request = request.CreateServerPayload(payload)
409+
}),
410+
},
400411
}
401412

402413
for _, tt := range tests {

0 commit comments

Comments
 (0)