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

Commit81d451c

Browse files
committed
plumb to executor
1 parent4653105 commit81d451c

File tree

13 files changed

+137
-71
lines changed

13 files changed

+137
-71
lines changed

‎cli/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1125,7 +1125,7 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd.
11251125
autobuildTicker:=time.NewTicker(vals.AutobuildPollInterval.Value())
11261126
deferautobuildTicker.Stop()
11271127
autobuildExecutor:=autobuild.NewExecutor(
1128-
ctx,options.Database,options.Pubsub,options.PrometheusRegistry,coderAPI.TemplateScheduleStore,&coderAPI.Auditor,coderAPI.AccessControlStore,logger,autobuildTicker.C,options.NotificationsEnqueuer,coderAPI.Experiments)
1128+
ctx,options.Database,options.Pubsub,coderAPI.FileCache,options.PrometheusRegistry,coderAPI.TemplateScheduleStore,&coderAPI.Auditor,coderAPI.AccessControlStore,logger,autobuildTicker.C,options.NotificationsEnqueuer,coderAPI.Experiments)
11291129
autobuildExecutor.Run()
11301130

11311131
jobReaperTicker:=time.NewTicker(vals.JobReaperDetectorInterval.Value())

‎coderd/autobuild/lifecycle_executor.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ import (
3333

3434
// Executor automatically starts or stops workspaces.
3535
typeExecutorstruct {
36-
ctx context.Context
37-
db database.Store
38-
ps pubsub.Pubsub
39-
//fileCache *files.Cache
36+
ctxcontext.Context
37+
dbdatabase.Store
38+
pspubsub.Pubsub
39+
fileCache*files.Cache
4040
templateScheduleStore*atomic.Pointer[schedule.TemplateScheduleStore]
4141
accessControlStore*atomic.Pointer[dbauthz.AccessControlStore]
4242
auditor*atomic.Pointer[audit.Auditor]

‎coderd/coderdtest/coderdtest.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import (
5252
"cdr.dev/slog"
5353
"cdr.dev/slog/sloggers/sloghuman"
5454
"cdr.dev/slog/sloggers/slogtest"
55+
"github.com/coder/coder/v2/coderd/files"
5556
"github.com/coder/quartz"
5657

5758
"github.com/coder/coder/v2/coderd"
@@ -359,6 +360,7 @@ func NewOptions(t testing.TB, options *Options) (func(http.Handler), context.Can
359360
ctx,
360361
options.Database,
361362
options.Pubsub,
363+
files.New(prometheus.NewRegistry(),options.Authorizer),
362364
prometheus.NewRegistry(),
363365
&templateScheduleStore,
364366
&auditor,

‎coderd/dynamicparameters/render_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
packagedynamicparameters
1+
packagedynamicparameters_test
22

33
import (
44
"testing"
55

66
"github.com/stretchr/testify/require"
7+
8+
"github.com/coder/coder/v2/coderd/dynamicparameters"
79
)
810

911
funcTestProvisionerVersionSupportsDynamicParameters(t*testing.T) {
@@ -26,7 +28,7 @@ func TestProvisionerVersionSupportsDynamicParameters(t *testing.T) {
2628
t.Run(v,func(t*testing.T) {
2729
t.Parallel()
2830

29-
does:=ProvisionerVersionSupportsDynamicParameters(v)
31+
does:=dynamicparameters.ProvisionerVersionSupportsDynamicParameters(v)
3032
require.Equal(t,dyn,does)
3133
})
3234
}

‎coderd/dynamicparameters/resolver.go

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,6 @@ import (
1212
"github.com/coder/coder/v2/codersdk"
1313
)
1414

15-
typeParameterResolverstruct {
16-
rendererRenderer
17-
firstBuildbool
18-
presetValues []database.TemplateVersionPresetParameter
19-
previousValues []database.WorkspaceBuildParameter
20-
buildValues []database.WorkspaceBuildParameter
21-
}
22-
2315
typeparameterValueSourceint
2416

2517
const (
@@ -33,6 +25,7 @@ type parameterValue struct {
3325
SourceparameterValueSource
3426
}
3527

28+
//nolint:revive // firstbuild is a control flag to turn on immutable validation
3629
funcResolveParameters(
3730
ctx context.Context,
3831
ownerID uuid.UUID,
@@ -53,16 +46,12 @@ func ResolveParameters(
5346

5447
// Add build values
5548
for_,buildValue:=rangebuildValues {
56-
if_,ok:=values[buildValue.Name];!ok {
57-
values[buildValue.Name]=parameterValue{Source:sourceBuild,Value:buildValue.Value}
58-
}
49+
values[buildValue.Name]=parameterValue{Source:sourceBuild,Value:buildValue.Value}
5950
}
6051

6152
// Add preset values
6253
for_,preset:=rangepresetValues {
63-
if_,ok:=values[preset.Name];!ok {
64-
values[preset.Name]=parameterValue{Source:sourcePreset,Value:preset.Value}
65-
}
54+
values[preset.Name]=parameterValue{Source:sourcePreset,Value:preset.Value}
6655
}
6756

6857
originalValues:=make(map[string]parameterValue,len(values))

‎coderd/parameters_test.go

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,11 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
100100
require.Equal(t,-1,preview.ID)
101101
require.Empty(t,preview.Diagnostics)
102102

103-
require.Len(t,preview.Parameters,1)
104-
require.Equal(t,"jetbrains_ide",preview.Parameters[0].Name)
105-
require.True(t,preview.Parameters[0].Value.Valid)
106-
require.Equal(t,"CL",preview.Parameters[0].Value.Value)
103+
require.Len(t,preview.Parameters,2)
104+
coderdtest.AssertParameter(t,"jetbrains_ide",preview.Parameters).
105+
Exists().Value("CL")
106+
coderdtest.AssertParameter(t,"region",preview.Parameters).
107+
Exists().Value("na")
107108
})
108109

109110
// OldProvisioners use the static parameters in the dynamic param flow
@@ -241,10 +242,11 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
241242
require.Equal(t,-1,preview.ID)
242243
require.Empty(t,preview.Diagnostics)
243244

244-
require.Len(t,preview.Parameters,1)
245-
require.Equal(t,"jetbrains_ide",preview.Parameters[0].Name)
246-
require.True(t,preview.Parameters[0].Value.Valid)
247-
require.Equal(t,"CL",preview.Parameters[0].Value.Value)
245+
require.Len(t,preview.Parameters,2)
246+
coderdtest.AssertParameter(t,"jetbrains_ide",preview.Parameters).
247+
Exists().Value("CL")
248+
coderdtest.AssertParameter(t,"region",preview.Parameters).
249+
Exists().Value("na")
248250
_=stream.Close(websocket.StatusGoingAway)
249251

250252
wrk:=coderdtest.CreateWorkspace(t,setup.client,setup.template.ID,func(request*codersdk.CreateWorkspaceRequest) {
@@ -253,29 +255,35 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
253255
Name:preview.Parameters[0].Name,
254256
Value:"GO",
255257
},
258+
{
259+
Name:preview.Parameters[1].Name,
260+
Value:"eu",
261+
},
256262
}
257263
request.EnableDynamicParameters=true
258264
})
259265
coderdtest.AwaitWorkspaceBuildJobCompleted(t,setup.client,wrk.LatestBuild.ID)
260266

261267
params,err:=setup.client.WorkspaceBuildParameters(ctx,wrk.LatestBuild.ID)
262268
require.NoError(t,err)
263-
require.Len(t,params,1)
264-
require.Equal(t,"jetbrains_ide",params[0].Name)
265-
require.Equal(t,"GO",params[0].Value)
269+
require.ElementsMatch(t, []codersdk.WorkspaceBuildParameter{
270+
{Name:"jetbrains_ide",Value:"GO"}, {Name:"region",Value:"eu"},
271+
},params)
272+
273+
regionOptions:= []string{"na","af","sa","as"}
266274

267275
// A helper function to assert params
268276
doTransition:=func(t*testing.T,trans codersdk.WorkspaceTransition) {
269277
t.Helper()
270278

271-
fooVal:=coderdtest.RandomUsername(t)
279+
regionVal:=regionOptions[0]
280+
regionOptions=regionOptions[1:]// Choose the next region on the next build
281+
272282
bld,err:=setup.client.CreateWorkspaceBuild(ctx,wrk.ID, codersdk.CreateWorkspaceBuildRequest{
273283
TemplateVersionID:setup.template.ActiveVersionID,
274284
Transition:trans,
275285
RichParameterValues: []codersdk.WorkspaceBuildParameter{
276-
// No validation, so this should work as is.
277-
// Overwrite the value on each transition
278-
{Name:"foo",Value:fooVal},
286+
{Name:"region",Value:regionVal},
279287
},
280288
EnableDynamicParameters:ptr.Ref(true),
281289
})
@@ -286,7 +294,7 @@ func TestDynamicParametersWithTerraformValues(t *testing.T) {
286294
require.NoError(t,err)
287295
require.ElementsMatch(t,latestParams, []codersdk.WorkspaceBuildParameter{
288296
{Name:"jetbrains_ide",Value:"GO"},
289-
{Name:"foo",Value:fooVal},
297+
{Name:"region",Value:regionVal},
290298
})
291299
}
292300

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,47 @@
1-
terraform {}
1+
terraform {
2+
required_providers {
3+
coder={
4+
source="coder/coder"
5+
version="2.5.3"
6+
}
7+
}
8+
}
29

310
module"jetbrains_gateway" {
411
source="jetbrains_gateway"
512
}
13+
14+
data"coder_parameter""region" {
15+
name="region"
16+
display_name="Select a region"
17+
type="string"
18+
form_type="dropdown"
19+
mutable=true
20+
default="na"
21+
order=1000
22+
23+
option {
24+
name="North America"
25+
value="na"
26+
}
27+
28+
option {
29+
name="South America"
30+
value="sa"
31+
}
32+
33+
option {
34+
name="Europe"
35+
value="eu"
36+
}
37+
38+
option {
39+
name="Africa"
40+
value="af"
41+
}
42+
43+
option {
44+
name="Asia"
45+
value="as"
46+
}
47+
}

‎coderd/wsbuilder/wsbuilder.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -716,8 +716,8 @@ func (b *Builder) getDynamicParameters() (names, values []string, err error) {
716716
returnnil,nil,xerrors.Errorf("something went wrong: %w",errors.Join(diagnostics.Errs()...))
717717
}
718718

719-
names=make([]string,len(buildValues))
720-
values=make([]string,len(buildValues))
719+
names=make([]string,0,len(buildValues))
720+
values=make([]string,0,len(buildValues))
721721
fork,v:=rangebuildValues {
722722
names=append(names,k)
723723
values=append(values,v)

‎coderd/wsbuilder/wsbuilder_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ func TestBuilder_NoOptions(t *testing.T) {
9898
asrt.Empty(params.Value)
9999
}),
100100
)
101-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
101+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
102102

103103
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
104104
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart)
@@ -138,7 +138,7 @@ func TestBuilder_Initiator(t *testing.T) {
138138
}),
139139
withBuild,
140140
)
141-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
141+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
142142

143143
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
144144
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).Initiator(otherUserID)
@@ -184,7 +184,7 @@ func TestBuilder_Baggage(t *testing.T) {
184184
}),
185185
withBuild,
186186
)
187-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
187+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
188188

189189
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
190190
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).Initiator(otherUserID)
@@ -223,7 +223,7 @@ func TestBuilder_Reason(t *testing.T) {
223223
}),
224224
withBuild,
225225
)
226-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
226+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
227227

228228
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
229229
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).Reason(database.BuildReasonAutostart)
@@ -267,7 +267,7 @@ func TestBuilder_ActiveVersion(t *testing.T) {
267267
}),
268268
withBuild,
269269
)
270-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
270+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
271271

272272
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
273273
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).ActiveVersion()
@@ -382,7 +382,7 @@ func TestWorkspaceBuildWithTags(t *testing.T) {
382382
}),
383383
withBuild,
384384
)
385-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
385+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
386386

387387
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
388388
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).RichParameterValues(buildParameters)
@@ -465,7 +465,7 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
465465
}),
466466
withBuild,
467467
)
468-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
468+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
469469

470470
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
471471
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).RichParameterValues(nextBuildParameters)
@@ -513,7 +513,7 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
513513
}),
514514
withBuild,
515515
)
516-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
516+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
517517

518518
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
519519
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).RichParameterValues(nextBuildParameters)
@@ -552,7 +552,7 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
552552
withParameterSchemas(inactiveJobID,schemas),
553553
withWorkspaceTags(inactiveVersionID,nil),
554554
)
555-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
555+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
556556

557557
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
558558
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart)
@@ -588,7 +588,7 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
588588
// Outputs
589589
// no transaction, since we failed fast while validation build parameters
590590
)
591-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
591+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
592592

593593
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
594594
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).RichParameterValues(nextBuildParameters)
@@ -653,7 +653,7 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
653653
}),
654654
withBuild,
655655
)
656-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
656+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
657657

658658
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
659659
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).
@@ -717,7 +717,7 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
717717
}),
718718
withBuild,
719719
)
720-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
720+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
721721

722722
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
723723
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).
@@ -779,7 +779,7 @@ func TestWorkspaceBuildWithRichParameters(t *testing.T) {
779779
}),
780780
withBuild,
781781
)
782-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
782+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
783783

784784
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
785785
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).
@@ -846,7 +846,7 @@ func TestWorkspaceBuildWithPreset(t *testing.T) {
846846
asrt.Empty(params.Value)
847847
}),
848848
)
849-
fc:=files.NewFromStore(mDB,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
849+
fc:=files.New(prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
850850

851851
ws:= database.Workspace{ID:workspaceID,TemplateID:templateID,OwnerID:userID}
852852
uut:=wsbuilder.New(ws,database.WorkspaceTransitionStart).

‎enterprise/coderd/coderd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1164,7 +1164,7 @@ func (api *API) setupPrebuilds(featureEnabled bool) (agplprebuilds.Reconciliatio
11641164
returnagplprebuilds.DefaultReconciler,agplprebuilds.DefaultClaimer
11651165
}
11661166

1167-
reconciler:=prebuilds.NewStoreReconciler(api.Database,api.Pubsub,api.DeploymentValues.Prebuilds,
1167+
reconciler:=prebuilds.NewStoreReconciler(api.Database,api.Pubsub,api.AGPL.FileCache,api.DeploymentValues.Prebuilds,
11681168
api.Logger.Named("prebuilds"),quartz.NewReal(),api.PrometheusRegistry,api.NotificationsEnqueuer)
11691169
returnreconciler,prebuilds.NewEnterpriseClaimer(api.Database)
11701170
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp