MCPcopy Create free account
hub / github.com/coder/coder / NewGlobalSnapshot

Function NewGlobalSnapshot

coderd/prebuilds/global_snapshot.go:28–55  ·  view source on GitHub ↗
(
	presets []database.GetTemplatePresetsWithPrebuildsRow,
	prebuildSchedules []database.TemplateVersionPresetPrebuildSchedule,
	runningPrebuilds []database.GetRunningPrebuiltWorkspacesRow,
	prebuildsInProgress []database.CountInProgressPrebuildsRow,
	pendingPrebuilds []database.CountPendingNonActivePrebuildsRow,
	backoffs []database.GetPresetsBackoffRow,
	hardLimitedPresets []database.GetPresetsAtFailureLimitRow,
	clock quartz.Clock,
	logger slog.Logger,
)

Source from the content-addressed store, hash-verified

26}
27
28func NewGlobalSnapshot(
29 presets []database.GetTemplatePresetsWithPrebuildsRow,
30 prebuildSchedules []database.TemplateVersionPresetPrebuildSchedule,
31 runningPrebuilds []database.GetRunningPrebuiltWorkspacesRow,
32 prebuildsInProgress []database.CountInProgressPrebuildsRow,
33 pendingPrebuilds []database.CountPendingNonActivePrebuildsRow,
34 backoffs []database.GetPresetsBackoffRow,
35 hardLimitedPresets []database.GetPresetsAtFailureLimitRow,
36 clock quartz.Clock,
37 logger slog.Logger,
38) GlobalSnapshot {
39 hardLimitedPresetsMap := make(map[uuid.UUID]database.GetPresetsAtFailureLimitRow, len(hardLimitedPresets))
40 for _, preset := range hardLimitedPresets {
41 hardLimitedPresetsMap[preset.PresetID] = preset
42 }
43
44 return GlobalSnapshot{
45 Presets: presets,
46 PrebuildSchedules: prebuildSchedules,
47 RunningPrebuilds: runningPrebuilds,
48 PrebuildsInProgress: prebuildsInProgress,
49 PendingPrebuilds: pendingPrebuilds,
50 Backoffs: backoffs,
51 HardLimitedPresetsMap: hardLimitedPresetsMap,
52 clock: clock,
53 logger: logger,
54 }
55}
56
57func (s GlobalSnapshot) FilterByPreset(presetID uuid.UUID) (*PresetSnapshot, error) {
58 preset, found := slice.Find(s.Presets, func(preset database.GetTemplatePresetsWithPrebuildsRow) bool {

Callers 13

TestNoPrebuildsFunction · 0.92
TestNetNewFunction · 0.92
TestOutdatedPrebuildsFunction · 0.92
TestInProgressActionsFunction · 0.92
TestExtraneousFunction · 0.92
TestExpiredPrebuildsFunction · 0.92
TestDeprecatedFunction · 0.92
TestLatestBuildFailedFunction · 0.92
TestPrebuildSchedulingFunction · 0.92

Calls

no outgoing calls

Tested by 12

TestNoPrebuildsFunction · 0.74
TestNetNewFunction · 0.74
TestOutdatedPrebuildsFunction · 0.74
TestInProgressActionsFunction · 0.74
TestExtraneousFunction · 0.74
TestExpiredPrebuildsFunction · 0.74
TestDeprecatedFunction · 0.74
TestLatestBuildFailedFunction · 0.74
TestPrebuildSchedulingFunction · 0.74