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

Commitb503c8b

Browse files
authored
feat: Add parameter and jobs database schema (#81)
* feat: Add parameter and jobs database schemaThis modifies a prior migration which is typically forbidden,but because we're pre-production deployment I felt groupingwould be helpful to future contributors.This adds database functions that are required for the provisionerdaemon and job queue logic.* Add comment to acquire provisioner job query* PostgreSQL hates running in parallel
1 parent599ea2a commitb503c8b

File tree

11 files changed

+1174
-63
lines changed

11 files changed

+1174
-63
lines changed

‎.github/workflows/coder.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ jobs:
160160
run:
161161
DB=true gotestsum --jsonfile="gotests.json" --packages="./..." --
162162
-covermode=atomic -coverprofile="gotests.coverage" -timeout=3m
163-
-count=1 -race -parallel=2
163+
-count=1 -race -parallel=1
164164

165165
-uses:codecov/codecov-action@v2
166166
with:

‎database/databasefake/databasefake.go‎

Lines changed: 199 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,16 @@ func New() database.Store {
1818
organizationMembers:make([]database.OrganizationMember,0),
1919
users:make([]database.User,0),
2020

21-
project:make([]database.Project,0),
22-
projectHistory:make([]database.ProjectHistory,0),
23-
projectParameter:make([]database.ProjectParameter,0),
24-
workspace:make([]database.Workspace,0),
25-
workspaceResource:make([]database.WorkspaceResource,0),
26-
workspaceHistory:make([]database.WorkspaceHistory,0),
27-
workspaceAgent:make([]database.WorkspaceAgent,0),
21+
parameterValue:make([]database.ParameterValue,0),
22+
project:make([]database.Project,0),
23+
projectHistory:make([]database.ProjectHistory,0),
24+
projectParameter:make([]database.ProjectParameter,0),
25+
provisionerDaemons:make([]database.ProvisionerDaemon,0),
26+
provisionerJobs:make([]database.ProvisionerJob,0),
27+
workspace:make([]database.Workspace,0),
28+
workspaceResource:make([]database.WorkspaceResource,0),
29+
workspaceHistory:make([]database.WorkspaceHistory,0),
30+
workspaceAgent:make([]database.WorkspaceAgent,0),
2831
}
2932
}
3033

@@ -37,20 +40,48 @@ type fakeQuerier struct {
3740
users []database.User
3841

3942
// New tables
40-
project []database.Project
41-
projectHistory []database.ProjectHistory
42-
projectParameter []database.ProjectParameter
43-
workspace []database.Workspace
44-
workspaceResource []database.WorkspaceResource
45-
workspaceHistory []database.WorkspaceHistory
46-
workspaceAgent []database.WorkspaceAgent
43+
parameterValue []database.ParameterValue
44+
project []database.Project
45+
projectHistory []database.ProjectHistory
46+
projectParameter []database.ProjectParameter
47+
provisionerDaemons []database.ProvisionerDaemon
48+
provisionerJobs []database.ProvisionerJob
49+
workspace []database.Workspace
50+
workspaceResource []database.WorkspaceResource
51+
workspaceHistory []database.WorkspaceHistory
52+
workspaceAgent []database.WorkspaceAgent
4753
}
4854

4955
// InTx doesn't rollback data properly for in-memory yet.
5056
func (q*fakeQuerier)InTx(fnfunc(database.Store)error)error {
5157
returnfn(q)
5258
}
5359

60+
func (q*fakeQuerier)AcquireProvisionerJob(_ context.Context,arg database.AcquireProvisionerJobParams) (database.ProvisionerJob,error) {
61+
forindex,provisionerJob:=rangeq.provisionerJobs {
62+
ifprovisionerJob.StartedAt.Valid {
63+
continue
64+
}
65+
found:=false
66+
for_,provisionerType:=rangearg.Types {
67+
ifprovisionerJob.Provisioner!=provisionerType {
68+
continue
69+
}
70+
found=true
71+
break
72+
}
73+
if!found {
74+
continue
75+
}
76+
provisionerJob.StartedAt=arg.StartedAt
77+
provisionerJob.UpdatedAt=arg.StartedAt.Time
78+
provisionerJob.WorkerID=arg.WorkerID
79+
q.provisionerJobs[index]=provisionerJob
80+
returnprovisionerJob,nil
81+
}
82+
return database.ProvisionerJob{},sql.ErrNoRows
83+
}
84+
5485
func (q*fakeQuerier)GetAPIKeyByID(_ context.Context,idstring) (database.APIKey,error) {
5586
for_,apiKey:=rangeq.apiKeys {
5687
ifapiKey.ID==id {
@@ -97,6 +128,15 @@ func (q *fakeQuerier) GetWorkspaceAgentsByResourceIDs(_ context.Context, ids []u
97128
returnagents,nil
98129
}
99130

131+
func (q*fakeQuerier)GetWorkspaceByID(_ context.Context,id uuid.UUID) (database.Workspace,error) {
132+
for_,workspace:=rangeq.workspace {
133+
ifworkspace.ID.String()==id.String() {
134+
returnworkspace,nil
135+
}
136+
}
137+
return database.Workspace{},sql.ErrNoRows
138+
}
139+
100140
func (q*fakeQuerier)GetWorkspaceByUserIDAndName(_ context.Context,arg database.GetWorkspaceByUserIDAndNameParams) (database.Workspace,error) {
101141
for_,workspace:=rangeq.workspace {
102142
ifworkspace.OwnerID!=arg.OwnerID {
@@ -123,6 +163,15 @@ func (q *fakeQuerier) GetWorkspaceResourcesByHistoryID(_ context.Context, worksp
123163
returnresources,nil
124164
}
125165

166+
func (q*fakeQuerier)GetWorkspaceHistoryByID(_ context.Context,id uuid.UUID) (database.WorkspaceHistory,error) {
167+
for_,history:=rangeq.workspaceHistory {
168+
ifhistory.ID.String()==id.String() {
169+
returnhistory,nil
170+
}
171+
}
172+
return database.WorkspaceHistory{},sql.ErrNoRows
173+
}
174+
126175
func (q*fakeQuerier)GetWorkspaceHistoryByWorkspaceIDWithoutAfter(_ context.Context,workspaceID uuid.UUID) (database.WorkspaceHistory,error) {
127176
for_,workspaceHistory:=rangeq.workspaceHistory {
128177
ifworkspaceHistory.WorkspaceID.String()!=workspaceID.String() {
@@ -179,6 +228,15 @@ func (q *fakeQuerier) GetWorkspacesByUserID(_ context.Context, ownerID string) (
179228
returnworkspaces,nil
180229
}
181230

231+
func (q*fakeQuerier)GetOrganizationByID(_ context.Context,idstring) (database.Organization,error) {
232+
for_,organization:=rangeq.organizations {
233+
iforganization.ID==id {
234+
returnorganization,nil
235+
}
236+
}
237+
return database.Organization{},sql.ErrNoRows
238+
}
239+
182240
func (q*fakeQuerier)GetOrganizationByName(_ context.Context,namestring) (database.Organization,error) {
183241
for_,organization:=rangeq.organizations {
184242
iforganization.Name==name {
@@ -207,6 +265,23 @@ func (q *fakeQuerier) GetOrganizationsByUserID(_ context.Context, userID string)
207265
returnorganizations,nil
208266
}
209267

268+
func (q*fakeQuerier)GetParameterValuesByScope(_ context.Context,arg database.GetParameterValuesByScopeParams) ([]database.ParameterValue,error) {
269+
parameterValues:=make([]database.ParameterValue,0)
270+
for_,parameterValue:=rangeq.parameterValue {
271+
ifparameterValue.Scope!=arg.Scope {
272+
continue
273+
}
274+
ifparameterValue.ScopeID!=arg.ScopeID {
275+
continue
276+
}
277+
parameterValues=append(parameterValues,parameterValue)
278+
}
279+
iflen(parameterValues)==0 {
280+
returnnil,sql.ErrNoRows
281+
}
282+
returnparameterValues,nil
283+
}
284+
210285
func (q*fakeQuerier)GetProjectByID(_ context.Context,id uuid.UUID) (database.Project,error) {
211286
for_,project:=rangeq.project {
212287
ifproject.ID.String()==id.String() {
@@ -253,6 +328,20 @@ func (q *fakeQuerier) GetProjectHistoryByID(_ context.Context, projectHistoryID
253328
return database.ProjectHistory{},sql.ErrNoRows
254329
}
255330

331+
func (q*fakeQuerier)GetProjectParametersByHistoryID(_ context.Context,projectHistoryID uuid.UUID) ([]database.ProjectParameter,error) {
332+
parameters:=make([]database.ProjectParameter,0)
333+
for_,projectParameter:=rangeq.projectParameter {
334+
ifprojectParameter.ProjectHistoryID.String()!=projectHistoryID.String() {
335+
continue
336+
}
337+
parameters=append(parameters,projectParameter)
338+
}
339+
iflen(parameters)==0 {
340+
returnnil,sql.ErrNoRows
341+
}
342+
returnparameters,nil
343+
}
344+
256345
func (q*fakeQuerier)GetProjectsByOrganizationIDs(_ context.Context,ids []string) ([]database.Project,error) {
257346
projects:=make([]database.Project,0)
258347
for_,project:=rangeq.project {
@@ -282,6 +371,26 @@ func (q *fakeQuerier) GetOrganizationMemberByUserID(_ context.Context, arg datab
282371
return database.OrganizationMember{},sql.ErrNoRows
283372
}
284373

374+
func (q*fakeQuerier)GetProvisionerDaemonByID(_ context.Context,id uuid.UUID) (database.ProvisionerDaemon,error) {
375+
for_,provisionerDaemon:=rangeq.provisionerDaemons {
376+
ifprovisionerDaemon.ID.String()!=id.String() {
377+
continue
378+
}
379+
returnprovisionerDaemon,nil
380+
}
381+
return database.ProvisionerDaemon{},sql.ErrNoRows
382+
}
383+
384+
func (q*fakeQuerier)GetProvisionerJobByID(_ context.Context,id uuid.UUID) (database.ProvisionerJob,error) {
385+
for_,provisionerJob:=rangeq.provisionerJobs {
386+
ifprovisionerJob.ID.String()!=id.String() {
387+
continue
388+
}
389+
returnprovisionerJob,nil
390+
}
391+
return database.ProvisionerJob{},sql.ErrNoRows
392+
}
393+
285394
func (q*fakeQuerier)InsertAPIKey(_ context.Context,arg database.InsertAPIKeyParams) (database.APIKey,error) {
286395
//nolint:gosimple
287396
key:= database.APIKey{
@@ -329,6 +438,24 @@ func (q *fakeQuerier) InsertOrganizationMember(_ context.Context, arg database.I
329438
returnorganizationMember,nil
330439
}
331440

441+
func (q*fakeQuerier)InsertParameterValue(_ context.Context,arg database.InsertParameterValueParams) (database.ParameterValue,error) {
442+
//nolint:gosimple
443+
parameterValue:= database.ParameterValue{
444+
ID:arg.ID,
445+
Name:arg.Name,
446+
CreatedAt:arg.CreatedAt,
447+
UpdatedAt:arg.UpdatedAt,
448+
Scope:arg.Scope,
449+
ScopeID:arg.ScopeID,
450+
SourceScheme:arg.SourceScheme,
451+
SourceValue:arg.SourceValue,
452+
DestinationScheme:arg.DestinationScheme,
453+
DestinationValue:arg.DestinationValue,
454+
}
455+
q.parameterValue=append(q.parameterValue,parameterValue)
456+
returnparameterValue,nil
457+
}
458+
332459
func (q*fakeQuerier)InsertProject(_ context.Context,arg database.InsertProjectParams) (database.Project,error) {
333460
project:= database.Project{
334461
ID:arg.ID,
@@ -367,9 +494,11 @@ func (q *fakeQuerier) InsertProjectParameter(_ context.Context, arg database.Ins
367494
ProjectHistoryID:arg.ProjectHistoryID,
368495
Name:arg.Name,
369496
Description:arg.Description,
370-
DefaultSource:arg.DefaultSource,
497+
DefaultSourceScheme:arg.DefaultSourceScheme,
498+
DefaultSourceValue:arg.DefaultSourceValue,
371499
AllowOverrideSource:arg.AllowOverrideSource,
372-
DefaultDestination:arg.DefaultDestination,
500+
DefaultDestinationScheme:arg.DefaultDestinationScheme,
501+
DefaultDestinationValue:arg.DefaultDestinationValue,
373502
AllowOverrideDestination:arg.AllowOverrideDestination,
374503
DefaultRefresh:arg.DefaultRefresh,
375504
RedisplayValue:arg.RedisplayValue,
@@ -382,6 +511,32 @@ func (q *fakeQuerier) InsertProjectParameter(_ context.Context, arg database.Ins
382511
returnparam,nil
383512
}
384513

514+
func (q*fakeQuerier)InsertProvisionerDaemon(_ context.Context,arg database.InsertProvisionerDaemonParams) (database.ProvisionerDaemon,error) {
515+
daemon:= database.ProvisionerDaemon{
516+
ID:arg.ID,
517+
CreatedAt:arg.CreatedAt,
518+
Name:arg.Name,
519+
Provisioners:arg.Provisioners,
520+
}
521+
q.provisionerDaemons=append(q.provisionerDaemons,daemon)
522+
returndaemon,nil
523+
}
524+
525+
func (q*fakeQuerier)InsertProvisionerJob(_ context.Context,arg database.InsertProvisionerJobParams) (database.ProvisionerJob,error) {
526+
job:= database.ProvisionerJob{
527+
ID:arg.ID,
528+
CreatedAt:arg.CreatedAt,
529+
UpdatedAt:arg.UpdatedAt,
530+
InitiatorID:arg.InitiatorID,
531+
Provisioner:arg.Provisioner,
532+
ProjectID:arg.ProjectID,
533+
Type:arg.Type,
534+
Input:arg.Input,
535+
}
536+
q.provisionerJobs=append(q.provisionerJobs,job)
537+
returnjob,nil
538+
}
539+
385540
func (q*fakeQuerier)InsertUser(_ context.Context,arg database.InsertUserParams) (database.User,error) {
386541
user:= database.User{
387542
ID:arg.ID,
@@ -470,6 +625,34 @@ func (q *fakeQuerier) UpdateAPIKeyByID(_ context.Context, arg database.UpdateAPI
470625
returnsql.ErrNoRows
471626
}
472627

628+
func (q*fakeQuerier)UpdateProvisionerDaemonByID(_ context.Context,arg database.UpdateProvisionerDaemonByIDParams)error {
629+
forindex,daemon:=rangeq.provisionerDaemons {
630+
ifarg.ID.String()!=daemon.ID.String() {
631+
continue
632+
}
633+
daemon.UpdatedAt=arg.UpdatedAt
634+
daemon.Provisioners=arg.Provisioners
635+
q.provisionerDaemons[index]=daemon
636+
returnnil
637+
}
638+
returnsql.ErrNoRows
639+
}
640+
641+
func (q*fakeQuerier)UpdateProvisionerJobByID(_ context.Context,arg database.UpdateProvisionerJobByIDParams)error {
642+
forindex,job:=rangeq.provisionerJobs {
643+
ifarg.ID.String()!=job.ID.String() {
644+
continue
645+
}
646+
job.CompletedAt=arg.CompletedAt
647+
job.CancelledAt=arg.CancelledAt
648+
job.UpdatedAt=arg.UpdatedAt
649+
job.Error=arg.Error
650+
q.provisionerJobs[index]=job
651+
returnnil
652+
}
653+
returnsql.ErrNoRows
654+
}
655+
473656
func (q*fakeQuerier)UpdateWorkspaceHistoryByID(_ context.Context,arg database.UpdateWorkspaceHistoryByIDParams)error {
474657
forindex,workspaceHistory:=rangeq.workspaceHistory {
475658
ifworkspaceHistory.ID.String()!=arg.ID.String() {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp