mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
chore: wire quartz.Clock into Acquirer (#27291)
- Wires quartz.Clock into provisionerdserver.Acquirer - Allows overriding Acquirer in coderd.Options - Updates existing tests to use an Acquirer driven by a quartz.Mock Before this change `enterprise/coderd/prebuilds` package tests would take ~60-70s to run. After this change, it's down to ~10s. > Generated by Coder agents, massaged by this human.
This commit is contained in:
+16
-9
@@ -319,6 +319,9 @@ type Options struct {
|
||||
// rotator is the sole creator of nats_ca rows, so this cache is read-only.
|
||||
NATSCACache cryptokeys.SigningKeycache
|
||||
Clock quartz.Clock
|
||||
// Acquirer acquires provisioner jobs. Defaults to provisionerdserver.Acquirer
|
||||
// backed by Database and Pubsub.
|
||||
Acquirer *provisionerdserver.Acquirer
|
||||
|
||||
// WebPushDispatcher is a way to send notifications over Web Push.
|
||||
WebPushDispatcher webpush.Dispatcher
|
||||
@@ -671,6 +674,15 @@ func New(options *Options) *API {
|
||||
var buildUsageChecker atomic.Pointer[wsbuilder.UsageChecker]
|
||||
var noopUsageChecker wsbuilder.UsageChecker = wsbuilder.NoopUsageChecker{}
|
||||
buildUsageChecker.Store(&noopUsageChecker)
|
||||
acquirer := options.Acquirer
|
||||
if acquirer == nil {
|
||||
acquirer = provisionerdserver.NewAcquirer(
|
||||
ctx,
|
||||
options.Logger.Named("acquirer"),
|
||||
options.Database,
|
||||
options.Pubsub,
|
||||
)
|
||||
}
|
||||
api := &API{
|
||||
ctx: ctx,
|
||||
cancel: cancel,
|
||||
@@ -696,15 +708,10 @@ func New(options *Options) *API {
|
||||
Experiments: experiments,
|
||||
WebpushDispatcher: options.WebPushDispatcher,
|
||||
healthCheckGroup: &singleflight.Group[string, *healthsdk.HealthcheckReport]{},
|
||||
Acquirer: provisionerdserver.NewAcquirer(
|
||||
ctx,
|
||||
options.Logger.Named("acquirer"),
|
||||
options.Database,
|
||||
options.Pubsub,
|
||||
),
|
||||
dbRolluper: options.DatabaseRolluper,
|
||||
ProfileCollector: defaultProfileCollector{},
|
||||
AISeatTracker: aiseats.Noop{},
|
||||
Acquirer: acquirer,
|
||||
dbRolluper: options.DatabaseRolluper,
|
||||
ProfileCollector: defaultProfileCollector{},
|
||||
AISeatTracker: aiseats.Noop{},
|
||||
}
|
||||
|
||||
api.WorkspaceAppsProvider = workspaceapps.NewDBTokenProvider(
|
||||
|
||||
Reference in New Issue
Block a user