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

Commit124fffb

Browse files
committed
plumb to executor
1 parent16c3751 commit124fffb

File tree

7 files changed

+47
-22
lines changed

7 files changed

+47
-22
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.NewFromStore(options.Database,prometheus.NewRegistry(),options.Authorizer),
362364
prometheus.NewRegistry(),
363365
&templateScheduleStore,
364366
&auditor,

‎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
}

‎enterprise/coderd/prebuilds/claim_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/stretchr/testify/require"
1616
"golang.org/x/xerrors"
1717

18+
"github.com/coder/coder/v2/coderd/files"
1819
"github.com/coder/quartz"
1920

2021
"github.com/coder/coder/v2/coderd/coderdtest"
@@ -164,7 +165,8 @@ func TestClaimPrebuild(t *testing.T) {
164165
})
165166
deferprovisionerCloser.Close()
166167

167-
reconciler:=prebuilds.NewStoreReconciler(spy,pubsub, codersdk.PrebuildsConfig{},logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
168+
cache:=files.NewFromStore(spy,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
169+
reconciler:=prebuilds.NewStoreReconciler(spy,pubsub,cache, codersdk.PrebuildsConfig{},logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
168170
varclaimer agplprebuilds.Claimer=prebuilds.NewEnterpriseClaimer(spy)
169171
api.AGPL.PrebuildsClaimer.Store(&claimer)
170172

‎enterprise/coderd/prebuilds/metricscollector_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313
prometheus_client"github.com/prometheus/client_model/go"
1414

1515
"cdr.dev/slog/sloggers/slogtest"
16+
"github.com/coder/coder/v2/coderd/coderdtest"
17+
"github.com/coder/coder/v2/coderd/files"
1618
"github.com/coder/quartz"
1719

1820
"github.com/coder/coder/v2/coderd/database"
@@ -198,7 +200,8 @@ func TestMetricsCollector(t *testing.T) {
198200
})
199201
clock:=quartz.NewMock(t)
200202
db,pubsub:=dbtestutil.NewDB(t)
201-
reconciler:=prebuilds.NewStoreReconciler(db,pubsub, codersdk.PrebuildsConfig{},logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
203+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
204+
reconciler:=prebuilds.NewStoreReconciler(db,pubsub,cache, codersdk.PrebuildsConfig{},logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
202205
ctx:=testutil.Context(t,testutil.WaitLong)
203206

204207
createdUsers:= []uuid.UUID{database.PrebuildsSystemUserID}
@@ -334,7 +337,8 @@ func TestMetricsCollector_DuplicateTemplateNames(t *testing.T) {
334337
logger:=slogtest.Make(t,&slogtest.Options{IgnoreErrors:true})
335338
clock:=quartz.NewMock(t)
336339
db,pubsub:=dbtestutil.NewDB(t)
337-
reconciler:=prebuilds.NewStoreReconciler(db,pubsub, codersdk.PrebuildsConfig{},logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
340+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
341+
reconciler:=prebuilds.NewStoreReconciler(db,pubsub,cache, codersdk.PrebuildsConfig{},logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
338342
ctx:=testutil.Context(t,testutil.WaitLong)
339343

340344
collector:=prebuilds.NewMetricsCollector(db,logger,reconciler)

‎enterprise/coderd/prebuilds/reconcile_test.go

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import (
1313
"github.com/stretchr/testify/assert"
1414
"golang.org/x/xerrors"
1515

16+
"github.com/coder/coder/v2/coderd/coderdtest"
1617
"github.com/coder/coder/v2/coderd/database/dbtime"
18+
"github.com/coder/coder/v2/coderd/files"
1719
"github.com/coder/coder/v2/coderd/notifications"
1820
"github.com/coder/coder/v2/coderd/notifications/notificationstest"
1921
"github.com/coder/coder/v2/coderd/util/slice"
@@ -53,7 +55,8 @@ func TestNoReconciliationActionsIfNoPresets(t *testing.T) {
5355
ReconciliationInterval:serpent.Duration(testutil.WaitLong),
5456
}
5557
logger:=testutil.Logger(t)
56-
controller:=prebuilds.NewStoreReconciler(db,ps,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
58+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
59+
controller:=prebuilds.NewStoreReconciler(db,ps,cache,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
5760

5861
// given a template version with no presets
5962
org:=dbgen.Organization(t,db, database.Organization{})
@@ -98,7 +101,8 @@ func TestNoReconciliationActionsIfNoPrebuilds(t *testing.T) {
98101
ReconciliationInterval:serpent.Duration(testutil.WaitLong),
99102
}
100103
logger:=testutil.Logger(t)
101-
controller:=prebuilds.NewStoreReconciler(db,ps,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
104+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
105+
controller:=prebuilds.NewStoreReconciler(db,ps,cache,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
102106

103107
// given there are presets, but no prebuilds
104108
org:=dbgen.Organization(t,db, database.Organization{})
@@ -375,7 +379,8 @@ func TestPrebuildReconciliation(t *testing.T) {
375379
ifuseBrokenPubsub {
376380
pubSub=&brokenPublisher{Pubsub:pubSub}
377381
}
378-
controller:=prebuilds.NewStoreReconciler(db,pubSub,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
382+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
383+
controller:=prebuilds.NewStoreReconciler(db,pubSub,cache,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
379384

380385
// Run the reconciliation multiple times to ensure idempotency
381386
// 8 was arbitrary, but large enough to reasonably trust the result
@@ -452,7 +457,8 @@ func TestMultiplePresetsPerTemplateVersion(t *testing.T) {
452457
t,&slogtest.Options{IgnoreErrors:true},
453458
).Leveled(slog.LevelDebug)
454459
db,pubSub:=dbtestutil.NewDB(t)
455-
controller:=prebuilds.NewStoreReconciler(db,pubSub,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
460+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
461+
controller:=prebuilds.NewStoreReconciler(db,pubSub,cache,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
456462

457463
ownerID:=uuid.New()
458464
dbgen.User(t,db, database.User{
@@ -577,7 +583,8 @@ func TestPrebuildScheduling(t *testing.T) {
577583
t,&slogtest.Options{IgnoreErrors:true},
578584
).Leveled(slog.LevelDebug)
579585
db,pubSub:=dbtestutil.NewDB(t)
580-
controller:=prebuilds.NewStoreReconciler(db,pubSub,cfg,logger,clock,prometheus.NewRegistry(),newNoopEnqueuer())
586+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
587+
controller:=prebuilds.NewStoreReconciler(db,pubSub,cache,cfg,logger,clock,prometheus.NewRegistry(),newNoopEnqueuer())
581588

582589
ownerID:=uuid.New()
583590
dbgen.User(t,db, database.User{
@@ -681,7 +688,8 @@ func TestInvalidPreset(t *testing.T) {
681688
t,&slogtest.Options{IgnoreErrors:true},
682689
).Leveled(slog.LevelDebug)
683690
db,pubSub:=dbtestutil.NewDB(t)
684-
controller:=prebuilds.NewStoreReconciler(db,pubSub,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
691+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
692+
controller:=prebuilds.NewStoreReconciler(db,pubSub,cache,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
685693

686694
ownerID:=uuid.New()
687695
dbgen.User(t,db, database.User{
@@ -745,7 +753,8 @@ func TestDeletionOfPrebuiltWorkspaceWithInvalidPreset(t *testing.T) {
745753
t,&slogtest.Options{IgnoreErrors:true},
746754
).Leveled(slog.LevelDebug)
747755
db,pubSub:=dbtestutil.NewDB(t)
748-
controller:=prebuilds.NewStoreReconciler(db,pubSub,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
756+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
757+
controller:=prebuilds.NewStoreReconciler(db,pubSub,cache,cfg,logger,quartz.NewMock(t),prometheus.NewRegistry(),newNoopEnqueuer())
749758

750759
ownerID:=uuid.New()
751760
dbgen.User(t,db, database.User{
@@ -841,7 +850,8 @@ func TestSkippingHardLimitedPresets(t *testing.T) {
841850
db,pubSub:=dbtestutil.NewDB(t)
842851
fakeEnqueuer:=newFakeEnqueuer()
843852
registry:=prometheus.NewRegistry()
844-
controller:=prebuilds.NewStoreReconciler(db,pubSub,cfg,logger,clock,registry,fakeEnqueuer)
853+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
854+
controller:=prebuilds.NewStoreReconciler(db,pubSub,cache,cfg,logger,clock,registry,fakeEnqueuer)
845855

846856
// Template admin to receive a notification.
847857
templateAdmin:=dbgen.User(t,db, database.User{
@@ -1003,7 +1013,8 @@ func TestHardLimitedPresetShouldNotBlockDeletion(t *testing.T) {
10031013
db,pubSub:=dbtestutil.NewDB(t)
10041014
fakeEnqueuer:=newFakeEnqueuer()
10051015
registry:=prometheus.NewRegistry()
1006-
controller:=prebuilds.NewStoreReconciler(db,pubSub,cfg,logger,clock,registry,fakeEnqueuer)
1016+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
1017+
controller:=prebuilds.NewStoreReconciler(db,pubSub,cache,cfg,logger,clock,registry,fakeEnqueuer)
10071018

10081019
// Template admin to receive a notification.
10091020
templateAdmin:=dbgen.User(t,db, database.User{
@@ -1215,7 +1226,8 @@ func TestRunLoop(t *testing.T) {
12151226
t,&slogtest.Options{IgnoreErrors:true},
12161227
).Leveled(slog.LevelDebug)
12171228
db,pubSub:=dbtestutil.NewDB(t)
1218-
reconciler:=prebuilds.NewStoreReconciler(db,pubSub,cfg,logger,clock,prometheus.NewRegistry(),newNoopEnqueuer())
1229+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
1230+
reconciler:=prebuilds.NewStoreReconciler(db,pubSub,cache,cfg,logger,clock,prometheus.NewRegistry(),newNoopEnqueuer())
12191231

12201232
ownerID:=uuid.New()
12211233
dbgen.User(t,db, database.User{
@@ -1345,7 +1357,8 @@ func TestFailedBuildBackoff(t *testing.T) {
13451357
t,&slogtest.Options{IgnoreErrors:true},
13461358
).Leveled(slog.LevelDebug)
13471359
db,ps:=dbtestutil.NewDB(t)
1348-
reconciler:=prebuilds.NewStoreReconciler(db,ps,cfg,logger,clock,prometheus.NewRegistry(),newNoopEnqueuer())
1360+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
1361+
reconciler:=prebuilds.NewStoreReconciler(db,ps,cache,cfg,logger,clock,prometheus.NewRegistry(),newNoopEnqueuer())
13491362

13501363
// Given: an active template version with presets and prebuilds configured.
13511364
constdesiredInstances=2
@@ -1461,9 +1474,11 @@ func TestReconciliationLock(t *testing.T) {
14611474
wg.Add(1)
14621475
gofunc() {
14631476
deferwg.Done()
1477+
cache:=files.NewFromStore(db,prometheus.NewRegistry(),&coderdtest.FakeAuthorizer{})
14641478
reconciler:=prebuilds.NewStoreReconciler(
14651479
db,
14661480
ps,
1481+
cache,
14671482
codersdk.PrebuildsConfig{},
14681483
slogtest.Make(t,&slogtest.Options{IgnoreErrors:true}).Leveled(slog.LevelDebug),
14691484
quartz.NewMock(t),
@@ -1501,7 +1516,8 @@ func TestTrackResourceReplacement(t *testing.T) {
15011516

15021517
fakeEnqueuer:=newFakeEnqueuer()
15031518
registry:=prometheus.NewRegistry()
1504-
reconciler:=prebuilds.NewStoreReconciler(db,ps, codersdk.PrebuildsConfig{},logger,clock,registry,fakeEnqueuer)
1519+
cache:=files.NewFromStore(db,registry,&coderdtest.FakeAuthorizer{})
1520+
reconciler:=prebuilds.NewStoreReconciler(db,ps,cache, codersdk.PrebuildsConfig{},logger,clock,registry,fakeEnqueuer)
15051521

15061522
// Given: a template admin to receive a notification.
15071523
templateAdmin:=dbgen.User(t,db, database.User{
@@ -1656,7 +1672,8 @@ func TestExpiredPrebuildsMultipleActions(t *testing.T) {
16561672
db,pubSub:=dbtestutil.NewDB(t)
16571673
fakeEnqueuer:=newFakeEnqueuer()
16581674
registry:=prometheus.NewRegistry()
1659-
controller:=prebuilds.NewStoreReconciler(db,pubSub,cfg,logger,clock,registry,fakeEnqueuer)
1675+
cache:=files.NewFromStore(db,registry,&coderdtest.FakeAuthorizer{})
1676+
controller:=prebuilds.NewStoreReconciler(db,pubSub,cache,cfg,logger,clock,registry,fakeEnqueuer)
16601677

16611678
// Set up test environment with a template, version, and preset
16621679
ownerID:=uuid.New()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp