Skip to content

Commit ac617e1

Browse files
authored
feat: Update generated schema for provisionerd (#121)
1 parent bf90ded commit ac617e1

21 files changed

+1585
-727
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Generated files
2+
database/dump.sql linguist-generated=true
23
peerbroker/proto/*.go linguist-generated=true
34
provisionerd/proto/*.go linguist-generated=true
45
provisionersdk/proto/*.go linguist-generated=true

database/databasefake/databasefake.go

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

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),
21+
parameterValue: make([]database.ParameterValue, 0),
22+
project: make([]database.Project, 0),
23+
projectHistory: make([]database.ProjectHistory, 0),
24+
projectHistoryLog: make([]database.ProjectHistoryLog, 0),
25+
projectParameter: make([]database.ProjectParameter, 0),
26+
provisionerDaemons: make([]database.ProvisionerDaemon, 0),
27+
provisionerJobs: make([]database.ProvisionerJob, 0),
28+
workspace: make([]database.Workspace, 0),
29+
workspaceResource: make([]database.WorkspaceResource, 0),
30+
workspaceHistory: make([]database.WorkspaceHistory, 0),
31+
workspaceHistoryLog: make([]database.WorkspaceHistoryLog, 0),
32+
workspaceAgent: make([]database.WorkspaceAgent, 0),
3133
}
3234
}
3335

@@ -40,16 +42,18 @@ type fakeQuerier struct {
4042
users []database.User
4143

4244
// New tables
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
45+
parameterValue []database.ParameterValue
46+
project []database.Project
47+
projectHistory []database.ProjectHistory
48+
projectHistoryLog []database.ProjectHistoryLog
49+
projectParameter []database.ProjectParameter
50+
provisionerDaemons []database.ProvisionerDaemon
51+
provisionerJobs []database.ProvisionerJob
52+
workspace []database.Workspace
53+
workspaceAgent []database.WorkspaceAgent
54+
workspaceHistory []database.WorkspaceHistory
55+
workspaceHistoryLog []database.WorkspaceHistoryLog
56+
workspaceResource []database.WorkspaceResource
5357
}
5458

5559
// InTx doesn't rollback data properly for in-memory yet.
@@ -184,6 +188,23 @@ func (q *fakeQuerier) GetWorkspaceHistoryByWorkspaceIDWithoutAfter(_ context.Con
184188
return database.WorkspaceHistory{}, sql.ErrNoRows
185189
}
186190

191+
func (q *fakeQuerier) GetWorkspaceHistoryLogsByIDBefore(_ context.Context, arg database.GetWorkspaceHistoryLogsByIDBeforeParams) ([]database.WorkspaceHistoryLog, error) {
192+
logs := make([]database.WorkspaceHistoryLog, 0)
193+
for _, workspaceHistoryLog := range q.workspaceHistoryLog {
194+
if workspaceHistoryLog.WorkspaceHistoryID.String() != arg.WorkspaceHistoryID.String() {
195+
continue
196+
}
197+
if workspaceHistoryLog.CreatedAt.After(arg.CreatedAt) {
198+
continue
199+
}
200+
logs = append(logs, workspaceHistoryLog)
201+
}
202+
if len(logs) == 0 {
203+
return nil, sql.ErrNoRows
204+
}
205+
return logs, nil
206+
}
207+
187208
func (q *fakeQuerier) GetWorkspaceHistoryByWorkspaceID(_ context.Context, workspaceID uuid.UUID) ([]database.WorkspaceHistory, error) {
188209
history := make([]database.WorkspaceHistory, 0)
189210
for _, workspaceHistory := range q.workspaceHistory {
@@ -197,6 +218,19 @@ func (q *fakeQuerier) GetWorkspaceHistoryByWorkspaceID(_ context.Context, worksp
197218
return history, nil
198219
}
199220

221+
func (q *fakeQuerier) GetWorkspaceHistoryByWorkspaceIDAndName(_ context.Context, arg database.GetWorkspaceHistoryByWorkspaceIDAndNameParams) (database.WorkspaceHistory, error) {
222+
for _, workspaceHistory := range q.workspaceHistory {
223+
if workspaceHistory.WorkspaceID.String() != arg.WorkspaceID.String() {
224+
continue
225+
}
226+
if !strings.EqualFold(workspaceHistory.Name, arg.Name) {
227+
continue
228+
}
229+
return workspaceHistory, nil
230+
}
231+
return database.WorkspaceHistory{}, sql.ErrNoRows
232+
}
233+
200234
func (q *fakeQuerier) GetWorkspacesByProjectAndUserID(_ context.Context, arg database.GetWorkspacesByProjectAndUserIDParams) ([]database.Workspace, error) {
201235
workspaces := make([]database.Workspace, 0)
202236
for _, workspace := range q.workspace {
@@ -318,6 +352,36 @@ func (q *fakeQuerier) GetProjectHistoryByProjectID(_ context.Context, projectID
318352
return history, nil
319353
}
320354

355+
func (q *fakeQuerier) GetProjectHistoryByProjectIDAndName(_ context.Context, arg database.GetProjectHistoryByProjectIDAndNameParams) (database.ProjectHistory, error) {
356+
for _, projectHistory := range q.projectHistory {
357+
if projectHistory.ProjectID.String() != arg.ProjectID.String() {
358+
continue
359+
}
360+
if !strings.EqualFold(projectHistory.Name, arg.Name) {
361+
continue
362+
}
363+
return projectHistory, nil
364+
}
365+
return database.ProjectHistory{}, sql.ErrNoRows
366+
}
367+
368+
func (q *fakeQuerier) GetProjectHistoryLogsByIDBefore(_ context.Context, arg database.GetProjectHistoryLogsByIDBeforeParams) ([]database.ProjectHistoryLog, error) {
369+
logs := make([]database.ProjectHistoryLog, 0)
370+
for _, projectHistoryLog := range q.projectHistoryLog {
371+
if projectHistoryLog.ProjectHistoryID.String() != arg.ProjectHistoryID.String() {
372+
continue
373+
}
374+
if projectHistoryLog.CreatedAt.After(arg.CreatedAt) {
375+
continue
376+
}
377+
logs = append(logs, projectHistoryLog)
378+
}
379+
if len(logs) == 0 {
380+
return nil, sql.ErrNoRows
381+
}
382+
return logs, nil
383+
}
384+
321385
func (q *fakeQuerier) GetProjectHistoryByID(_ context.Context, projectHistoryID uuid.UUID) (database.ProjectHistory, error) {
322386
for _, projectHistory := range q.projectHistory {
323387
if projectHistory.ID.String() != projectHistoryID.String() {
@@ -371,6 +435,13 @@ func (q *fakeQuerier) GetOrganizationMemberByUserID(_ context.Context, arg datab
371435
return database.OrganizationMember{}, sql.ErrNoRows
372436
}
373437

438+
func (q *fakeQuerier) GetProvisionerDaemons(_ context.Context) ([]database.ProvisionerDaemon, error) {
439+
if len(q.provisionerDaemons) == 0 {
440+
return nil, sql.ErrNoRows
441+
}
442+
return q.provisionerDaemons, nil
443+
}
444+
374445
func (q *fakeQuerier) GetProvisionerDaemonByID(_ context.Context, id uuid.UUID) (database.ProvisionerDaemon, error) {
375446
for _, provisionerDaemon := range q.provisionerDaemons {
376447
if provisionerDaemon.ID.String() != id.String() {
@@ -486,6 +557,22 @@ func (q *fakeQuerier) InsertProjectHistory(_ context.Context, arg database.Inser
486557
return history, nil
487558
}
488559

560+
func (q *fakeQuerier) InsertProjectHistoryLogs(_ context.Context, arg database.InsertProjectHistoryLogsParams) ([]database.ProjectHistoryLog, error) {
561+
logs := make([]database.ProjectHistoryLog, 0)
562+
for index, output := range arg.Output {
563+
logs = append(logs, database.ProjectHistoryLog{
564+
ProjectHistoryID: arg.ProjectHistoryID,
565+
ID: arg.ID[index],
566+
CreatedAt: arg.CreatedAt[index],
567+
Source: arg.Source[index],
568+
Level: arg.Level[index],
569+
Output: output,
570+
})
571+
}
572+
q.projectHistoryLog = append(q.projectHistoryLog, logs...)
573+
return logs, nil
574+
}
575+
489576
func (q *fakeQuerier) InsertProjectParameter(_ context.Context, arg database.InsertProjectParameterParams) (database.ProjectParameter, error) {
490577
//nolint:gosimple
491578
param := database.ProjectParameter{
@@ -586,6 +673,7 @@ func (q *fakeQuerier) InsertWorkspaceHistory(_ context.Context, arg database.Ins
586673
CreatedAt: arg.CreatedAt,
587674
UpdatedAt: arg.UpdatedAt,
588675
WorkspaceID: arg.WorkspaceID,
676+
Name: arg.Name,
589677
ProjectHistoryID: arg.ProjectHistoryID,
590678
BeforeID: arg.BeforeID,
591679
Transition: arg.Transition,
@@ -596,6 +684,22 @@ func (q *fakeQuerier) InsertWorkspaceHistory(_ context.Context, arg database.Ins
596684
return workspaceHistory, nil
597685
}
598686

687+
func (q *fakeQuerier) InsertWorkspaceHistoryLogs(_ context.Context, arg database.InsertWorkspaceHistoryLogsParams) ([]database.WorkspaceHistoryLog, error) {
688+
logs := make([]database.WorkspaceHistoryLog, 0)
689+
for index, output := range arg.Output {
690+
logs = append(logs, database.WorkspaceHistoryLog{
691+
WorkspaceHistoryID: arg.WorkspaceHistoryID,
692+
ID: arg.ID[index],
693+
CreatedAt: arg.CreatedAt[index],
694+
Source: arg.Source[index],
695+
Level: arg.Level[index],
696+
Output: output,
697+
})
698+
}
699+
q.workspaceHistoryLog = append(q.workspaceHistoryLog, logs...)
700+
return logs, nil
701+
}
702+
599703
func (q *fakeQuerier) InsertWorkspaceResource(_ context.Context, arg database.InsertWorkspaceResourceParams) (database.WorkspaceResource, error) {
600704
workspaceResource := database.WorkspaceResource{
601705
ID: arg.ID,
@@ -659,7 +763,9 @@ func (q *fakeQuerier) UpdateWorkspaceHistoryByID(_ context.Context, arg database
659763
continue
660764
}
661765
workspaceHistory.UpdatedAt = arg.UpdatedAt
766+
workspaceHistory.CompletedAt = arg.CompletedAt
662767
workspaceHistory.AfterID = arg.AfterID
768+
workspaceHistory.ProvisionerState = arg.ProvisionerState
663769
q.workspaceHistory[index] = workspaceHistory
664770
return nil
665771
}

database/dump.sql

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

database/migrations/000002_projects.up.sql

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,25 @@ CREATE TABLE project_parameter (
9090
validation_value_type varchar(64) NOT NULL,
9191
UNIQUE(project_history_id, name)
9292
);
93+
94+
CREATE TYPE log_level AS ENUM (
95+
'trace',
96+
'debug',
97+
'info',
98+
'warn',
99+
'error'
100+
);
101+
102+
CREATE TYPE log_source AS ENUM (
103+
'provisioner_daemon',
104+
'provisioner'
105+
);
106+
107+
CREATE TABLE project_history_log (
108+
id uuid NOT NULL UNIQUE,
109+
project_history_id uuid NOT NULL REFERENCES project_history (id) ON DELETE CASCADE,
110+
created_at timestamptz NOT NULL,
111+
source log_source NOT NULL,
112+
level log_level NOT NULL,
113+
output varchar(1024) NOT NULL
114+
);

0 commit comments

Comments
 (0)