Skip to content

Commit 4d97580

Browse files
committed
Decompose GetTemplatePrebuildState into separate queries, reimplement logic in Go
This is in service of testability Signed-off-by: Danny Kopping <danny@coder.com>
1 parent 64d4765 commit 4d97580

File tree

10 files changed

+479
-378
lines changed

10 files changed

+479
-378
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1977,6 +1977,13 @@ func (q *querier) GetParameterSchemasByJobID(ctx context.Context, jobID uuid.UUI
19771977
return q.db.GetParameterSchemasByJobID(ctx, jobID)
19781978
}
19791979

1980+
func (q *querier) GetPrebuildsInProgress(ctx context.Context) ([]database.GetPrebuildsInProgressRow, error) {
1981+
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceTemplate); err != nil {
1982+
return nil, err
1983+
}
1984+
return q.db.GetPrebuildsInProgress(ctx)
1985+
}
1986+
19801987
func (q *querier) GetPresetByWorkspaceBuildID(ctx context.Context, workspaceID uuid.UUID) (database.TemplateVersionPreset, error) {
19811988
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceTemplate); err != nil {
19821989
return database.TemplateVersionPreset{}, err
@@ -2144,6 +2151,13 @@ func (q *querier) GetReplicasUpdatedAfter(ctx context.Context, updatedAt time.Ti
21442151
return q.db.GetReplicasUpdatedAfter(ctx, updatedAt)
21452152
}
21462153

2154+
func (q *querier) GetRunningPrebuilds(ctx context.Context) ([]database.GetRunningPrebuildsRow, error) {
2155+
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceTemplate); err != nil {
2156+
return nil, err
2157+
}
2158+
return q.db.GetRunningPrebuilds(ctx)
2159+
}
2160+
21472161
func (q *querier) GetRuntimeConfig(ctx context.Context, key string) (string, error) {
21482162
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceSystem); err != nil {
21492163
return "", err
@@ -2268,12 +2282,11 @@ func (q *querier) GetTemplateParameterInsights(ctx context.Context, arg database
22682282
return q.db.GetTemplateParameterInsights(ctx, arg)
22692283
}
22702284

2271-
func (q *querier) GetTemplatePrebuildState(ctx context.Context, templateID uuid.UUID) ([]database.GetTemplatePrebuildStateRow, error) {
2272-
// TODO: authz
2285+
func (q *querier) GetTemplatePresetsWithPrebuilds(ctx context.Context, templateID uuid.NullUUID) ([]database.GetTemplatePresetsWithPrebuildsRow, error) {
22732286
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceTemplate); err != nil {
22742287
return nil, err
22752288
}
2276-
return q.db.GetTemplatePrebuildState(ctx, templateID)
2289+
return q.db.GetTemplatePresetsWithPrebuilds(ctx, templateID)
22772290
}
22782291

22792292
func (q *querier) GetTemplateUsageStats(ctx context.Context, arg database.GetTemplateUsageStatsParams) ([]database.TemplateUsageStat, error) {

coderd/database/dbmem/dbmem.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3784,6 +3784,10 @@ func (q *FakeQuerier) GetParameterSchemasByJobID(_ context.Context, jobID uuid.U
37843784
return parameters, nil
37853785
}
37863786

3787+
func (q *FakeQuerier) GetPrebuildsInProgress(ctx context.Context) ([]database.GetPrebuildsInProgressRow, error) {
3788+
panic("not implemented")
3789+
}
3790+
37873791
func (q *FakeQuerier) GetPresetByWorkspaceBuildID(_ context.Context, workspaceBuildID uuid.UUID) (database.TemplateVersionPreset, error) {
37883792
q.mutex.RLock()
37893793
defer q.mutex.RUnlock()
@@ -4489,6 +4493,10 @@ func (q *FakeQuerier) GetReplicasUpdatedAfter(_ context.Context, updatedAt time.
44894493
return replicas, nil
44904494
}
44914495

4496+
func (q *FakeQuerier) GetRunningPrebuilds(ctx context.Context) ([]database.GetRunningPrebuildsRow, error) {
4497+
panic("not implemented")
4498+
}
4499+
44924500
func (q *FakeQuerier) GetRuntimeConfig(_ context.Context, key string) (string, error) {
44934501
q.mutex.Lock()
44944502
defer q.mutex.Unlock()
@@ -5528,7 +5536,7 @@ func (q *FakeQuerier) GetTemplateParameterInsights(ctx context.Context, arg data
55285536
return rows, nil
55295537
}
55305538

5531-
func (q *FakeQuerier) GetTemplatePrebuildState(ctx context.Context, templateID uuid.UUID) ([]database.GetTemplatePrebuildStateRow, error) {
5539+
func (q *FakeQuerier) GetTemplatePresetsWithPrebuilds(ctx context.Context, templateID uuid.NullUUID) ([]database.GetTemplatePresetsWithPrebuildsRow, error) {
55325540
panic("not implemented")
55335541
}
55345542

coderd/database/dbmetrics/querymetrics.go

Lines changed: 17 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbmock/dbmock.go

Lines changed: 37 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)