Skip to content

Commit cfb84f5

Browse files
committed
Add GetWorkspaceResources query
This lets us get all the latest resources (for telemetry purposes).
1 parent 1c56f16 commit cfb84f5

File tree

4 files changed

+72
-0
lines changed

4 files changed

+72
-0
lines changed

coderd/database/databasefake/databasefake.go

+20
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,26 @@ func (q *fakeQuerier) GetWorkspaceResourceByID(_ context.Context, id uuid.UUID)
993993
return database.WorkspaceResource{}, sql.ErrNoRows
994994
}
995995

996+
func (q *fakeQuerier) GetWorkspaceResources(ctx context.Context) ([]database.WorkspaceResource, error) {
997+
q.mutex.RLock()
998+
defer q.mutex.RUnlock()
999+
1000+
resources := make([]database.WorkspaceResource, 0)
1001+
for _, workspaceBuild := range q.workspaceBuilds {
1002+
if !workspaceBuild.AfterID.Valid {
1003+
rs, err := q.GetWorkspaceResourcesByJobID(ctx, workspaceBuild.JobID)
1004+
if err != nil {
1005+
return nil, err
1006+
}
1007+
resources = append(resources, rs...)
1008+
}
1009+
}
1010+
if len(resources) == 0 {
1011+
return nil, sql.ErrNoRows
1012+
}
1013+
return resources, nil
1014+
}
1015+
9961016
func (q *fakeQuerier) GetWorkspaceResourcesByJobID(_ context.Context, jobID uuid.UUID) ([]database.WorkspaceResource, error) {
9971017
q.mutex.RLock()
9981018
defer q.mutex.RUnlock()

coderd/database/querier.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

+41
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/workspaceresources.sql

+10
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,13 @@ INSERT INTO
1919
workspace_resources (id, created_at, job_id, transition, type, name)
2020
VALUES
2121
($1, $2, $3, $4, $5, $6) RETURNING *;
22+
23+
-- name: GetWorkspaceResources :many
24+
SELECT
25+
workspace_resources.*
26+
FROM
27+
workspace_resources
28+
INNER JOIN workspace_builds
29+
ON workspace_resources.job_id = workspace_builds.job_id
30+
WHERE
31+
workspace_builds.after_id IS NULL;

0 commit comments

Comments
 (0)