Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5673aca

Browse files
authored
feat(cli): add --parameter flag to exp scaletest command (#10132)
1 parentc6cf719 commit5673aca

File tree

4 files changed

+104
-14
lines changed

4 files changed

+104
-14
lines changed

‎cli/exp_scaletest.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,8 @@ func (r *RootCmd) scaletestCreateWorkspaces() *clibase.Cmd {
525525

526526
useHostUserbool
527527

528+
parameterFlagsworkspaceParameterFlags
529+
528530
tracingFlags=&scaletestTracingFlags{}
529531
strategy=&scaletestStrategyFlags{}
530532
cleanupStrategy=&scaletestStrategyFlags{cleanup:true}
@@ -597,11 +599,29 @@ func (r *RootCmd) scaletestCreateWorkspaces() *clibase.Cmd {
597599
returnxerrors.Errorf("get template version %q: %w",tpl.ActiveVersionID,err)
598600
}
599601

602+
cliRichParameters,err:=asWorkspaceBuildParameters(parameterFlags.richParameters)
603+
iferr!=nil {
604+
returnxerrors.Errorf("can't parse given parameter values: %w",err)
605+
}
606+
607+
richParameters,err:=prepWorkspaceBuild(inv,client,prepWorkspaceBuildArgs{
608+
Action:WorkspaceCreate,
609+
Template:tpl,
610+
NewWorkspaceName:"scaletest-%",// TODO: the scaletest runner will pass in a different name here. Does this matter?
611+
612+
RichParameterFile:parameterFlags.richParameterFile,
613+
RichParameters:cliRichParameters,
614+
})
615+
iferr!=nil {
616+
returnxerrors.Errorf("prepare build: %w",err)
617+
}
618+
600619
// Do a dry-run to ensure the template and parameters are valid
601620
// before we start creating users and workspaces.
602621
if!noPlan {
603622
dryRun,err:=client.CreateTemplateVersionDryRun(ctx,templateVersion.ID, codersdk.CreateTemplateVersionDryRunRequest{
604-
WorkspaceName:"scaletest",
623+
WorkspaceName:"scaletest",
624+
RichParameterValues:richParameters,
605625
})
606626
iferr!=nil {
607627
returnxerrors.Errorf("start dry run workspace creation: %w",err)
@@ -653,7 +673,8 @@ func (r *RootCmd) scaletestCreateWorkspaces() *clibase.Cmd {
653673
OrganizationID:me.OrganizationIDs[0],
654674
// UserID is set by the test automatically.
655675
Request: codersdk.CreateWorkspaceRequest{
656-
TemplateID:tpl.ID,
676+
TemplateID:tpl.ID,
677+
RichParameterValues:richParameters,
657678
},
658679
NoWaitForAgents:noWaitForAgents,
659680
},
@@ -865,6 +886,7 @@ func (r *RootCmd) scaletestCreateWorkspaces() *clibase.Cmd {
865886
},
866887
}
867888

889+
cmd.Options=append(cmd.Options,parameterFlags.cliParameters()...)
868890
tracingFlags.attach(&cmd.Options)
869891
strategy.attach(&cmd.Options)
870892
cleanupStrategy.attach(&cmd.Options)

‎cli/exp_scaletest_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ func TestScaleTestCreateWorkspaces(t *testing.T) {
4848
"--cleanup-job-timeout","15s",
4949
"--output","text",
5050
"--output","json:"+outputFile,
51+
"--parameter","foo=baz",
52+
"--rich-parameter-file","/path/to/some/parameter/file.ext",
5153
)
5254
clitest.SetupConfig(t,client,root)
5355
pty:=ptytest.New(t)

‎scaletest/createworkspaces/run_test.go

Lines changed: 75 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,19 @@ func Test_Runner(t *testing.T) {
3434
t.Skip("Race detector enabled, skipping time-sensitive test.")
3535
}
3636

37+
testParameters:= []*proto.RichParameter{
38+
{
39+
Name:"foo",
40+
DefaultValue:"baz",
41+
},
42+
}
43+
testParameterValues:= []codersdk.WorkspaceBuildParameter{
44+
{
45+
Name:"foo",
46+
Value:"baz",
47+
},
48+
}
49+
3750
t.Run("OK",func(t*testing.T) {
3851
t.Parallel()
3952

@@ -47,8 +60,16 @@ func Test_Runner(t *testing.T) {
4760

4861
authToken:=uuid.NewString()
4962
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
50-
Parse:echo.ParseComplete,
51-
ProvisionPlan:echo.PlanComplete,
63+
Parse:echo.ParseComplete,
64+
ProvisionPlan: []*proto.Response{
65+
{
66+
Type:&proto.Response_Plan{
67+
Plan:&proto.PlanComplete{
68+
Parameters:testParameters,
69+
},
70+
},
71+
},
72+
},
5273
ProvisionApply: []*proto.Response{
5374
{
5475
Type:&proto.Response_Log{
@@ -102,7 +123,8 @@ func Test_Runner(t *testing.T) {
102123
Workspace: workspacebuild.Config{
103124
OrganizationID:user.OrganizationID,
104125
Request: codersdk.CreateWorkspaceRequest{
105-
TemplateID:template.ID,
126+
TemplateID:template.ID,
127+
RichParameterValues:testParameterValues,
106128
},
107129
},
108130
ReconnectingPTY:&reconnectingpty.Config{
@@ -133,6 +155,13 @@ func Test_Runner(t *testing.T) {
133155
require.NoError(t,err)
134156
require.Len(t,workspaces.Workspaces,1)
135157

158+
// Ensure the correct build parameters were used.
159+
buildParams,err:=client.WorkspaceBuildParameters(ctx,workspaces.Workspaces[0].LatestBuild.ID)
160+
require.NoError(t,err)
161+
require.Len(t,buildParams,1)
162+
require.Equal(t,testParameterValues[0].Name,buildParams[0].Name)
163+
require.Equal(t,testParameterValues[0].Value,buildParams[0].Value)
164+
136165
// Look for strings in the logs.
137166
require.Contains(t,logsStr,"Generating user password...")
138167
require.Contains(t,logsStr,"Creating user:")
@@ -173,8 +202,16 @@ func Test_Runner(t *testing.T) {
173202
user:=coderdtest.CreateFirstUser(t,client)
174203

175204
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
176-
Parse:echo.ParseComplete,
177-
ProvisionPlan:echo.PlanComplete,
205+
Parse:echo.ParseComplete,
206+
ProvisionPlan: []*proto.Response{
207+
{
208+
Type:&proto.Response_Plan{
209+
Plan:&proto.PlanComplete{
210+
Parameters:testParameters,
211+
},
212+
},
213+
},
214+
},
178215
ProvisionApply: []*proto.Response{
179216
{
180217
Type:&proto.Response_Log{Log:&proto.Log{}},
@@ -200,7 +237,8 @@ func Test_Runner(t *testing.T) {
200237
Workspace: workspacebuild.Config{
201238
OrganizationID:user.OrganizationID,
202239
Request: codersdk.CreateWorkspaceRequest{
203-
TemplateID:template.ID,
240+
TemplateID:template.ID,
241+
RichParameterValues:testParameterValues,
204242
},
205243
},
206244
})
@@ -288,8 +326,16 @@ func Test_Runner(t *testing.T) {
288326

289327
authToken:=uuid.NewString()
290328
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
291-
Parse:echo.ParseComplete,
292-
ProvisionPlan:echo.PlanComplete,
329+
Parse:echo.ParseComplete,
330+
ProvisionPlan: []*proto.Response{
331+
{
332+
Type:&proto.Response_Plan{
333+
Plan:&proto.PlanComplete{
334+
Parameters:testParameters,
335+
},
336+
},
337+
},
338+
},
293339
ProvisionApply: []*proto.Response{
294340
{
295341
Type:&proto.Response_Log{
@@ -344,7 +390,8 @@ func Test_Runner(t *testing.T) {
344390
Workspace: workspacebuild.Config{
345391
OrganizationID:user.OrganizationID,
346392
Request: codersdk.CreateWorkspaceRequest{
347-
TemplateID:template.ID,
393+
TemplateID:template.ID,
394+
RichParameterValues:testParameterValues,
348395
},
349396
},
350397
ReconnectingPTY:&reconnectingpty.Config{
@@ -375,6 +422,13 @@ func Test_Runner(t *testing.T) {
375422
require.NoError(t,err)
376423
require.Len(t,workspaces.Workspaces,1)
377424

425+
// Ensure the correct build parameters were used.
426+
buildParams,err:=client.WorkspaceBuildParameters(ctx,workspaces.Workspaces[0].LatestBuild.ID)
427+
require.NoError(t,err)
428+
require.Len(t,buildParams,1)
429+
require.Equal(t,testParameterValues[0].Name,buildParams[0].Name)
430+
require.Equal(t,testParameterValues[0].Value,buildParams[0].Value)
431+
378432
// Look for strings in the logs.
379433
require.Contains(t,logsStr,"Generating user password...")
380434
require.Contains(t,logsStr,"Creating user:")
@@ -413,8 +467,16 @@ func Test_Runner(t *testing.T) {
413467
user:=coderdtest.CreateFirstUser(t,client)
414468

415469
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
416-
Parse:echo.ParseComplete,
417-
ProvisionPlan:echo.PlanComplete,
470+
Parse:echo.ParseComplete,
471+
ProvisionPlan: []*proto.Response{
472+
{
473+
Type:&proto.Response_Plan{
474+
Plan:&proto.PlanComplete{
475+
Parameters:testParameters,
476+
},
477+
},
478+
},
479+
},
418480
ProvisionApply: []*proto.Response{
419481
{
420482
Type:&proto.Response_Apply{
@@ -438,7 +500,8 @@ func Test_Runner(t *testing.T) {
438500
Workspace: workspacebuild.Config{
439501
OrganizationID:user.OrganizationID,
440502
Request: codersdk.CreateWorkspaceRequest{
441-
TemplateID:template.ID,
503+
TemplateID:template.ID,
504+
RichParameterValues:testParameterValues,
442505
},
443506
},
444507
})

‎scripts/coder-dev.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ fi
1717
if [[${1:-}== wsproxy ]]&& [[${2:-}== server ]];then
1818
BINARY_TYPE=coder
1919
fi
20+
if [[${1:-}== exp ]]&& [[${2:-}== scaletest ]];then
21+
BINARY_TYPE=coder
22+
fi
2023
RELATIVE_BINARY_PATH="build/${BINARY_TYPE}_${GOOS}_${GOARCH}"
2124

2225
# To preserve the CWD when running the binary, we need to use pushd and popd to

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp