Skip to content

Commit

Permalink
feat: Update generated schema for provisionerd (#121)
Browse files Browse the repository at this point in the history
  • Loading branch information
kylecarbs committed Feb 1, 2022
1 parent bf90ded commit ac617e1
Show file tree
Hide file tree
Showing 21 changed files with 1,585 additions and 727 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Generated files
database/dump.sql linguist-generated=true
peerbroker/proto/*.go linguist-generated=true
provisionerd/proto/*.go linguist-generated=true
provisionersdk/proto/*.go linguist-generated=true
146 changes: 126 additions & 20 deletions database/databasefake/databasefake.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,18 @@ func New() database.Store {
organizationMembers: make([]database.OrganizationMember, 0),
users: make([]database.User, 0),

parameterValue: make([]database.ParameterValue, 0),
project: make([]database.Project, 0),
projectHistory: make([]database.ProjectHistory, 0),
projectParameter: make([]database.ProjectParameter, 0),
provisionerDaemons: make([]database.ProvisionerDaemon, 0),
provisionerJobs: make([]database.ProvisionerJob, 0),
workspace: make([]database.Workspace, 0),
workspaceResource: make([]database.WorkspaceResource, 0),
workspaceHistory: make([]database.WorkspaceHistory, 0),
workspaceAgent: make([]database.WorkspaceAgent, 0),
parameterValue: make([]database.ParameterValue, 0),
project: make([]database.Project, 0),
projectHistory: make([]database.ProjectHistory, 0),
projectHistoryLog: make([]database.ProjectHistoryLog, 0),
projectParameter: make([]database.ProjectParameter, 0),
provisionerDaemons: make([]database.ProvisionerDaemon, 0),
provisionerJobs: make([]database.ProvisionerJob, 0),
workspace: make([]database.Workspace, 0),
workspaceResource: make([]database.WorkspaceResource, 0),
workspaceHistory: make([]database.WorkspaceHistory, 0),
workspaceHistoryLog: make([]database.WorkspaceHistoryLog, 0),
workspaceAgent: make([]database.WorkspaceAgent, 0),
}
}

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

// New tables
parameterValue []database.ParameterValue
project []database.Project
projectHistory []database.ProjectHistory
projectParameter []database.ProjectParameter
provisionerDaemons []database.ProvisionerDaemon
provisionerJobs []database.ProvisionerJob
workspace []database.Workspace
workspaceResource []database.WorkspaceResource
workspaceHistory []database.WorkspaceHistory
workspaceAgent []database.WorkspaceAgent
parameterValue []database.ParameterValue
project []database.Project
projectHistory []database.ProjectHistory
projectHistoryLog []database.ProjectHistoryLog
projectParameter []database.ProjectParameter
provisionerDaemons []database.ProvisionerDaemon
provisionerJobs []database.ProvisionerJob
workspace []database.Workspace
workspaceAgent []database.WorkspaceAgent
workspaceHistory []database.WorkspaceHistory
workspaceHistoryLog []database.WorkspaceHistoryLog
workspaceResource []database.WorkspaceResource
}

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

func (q *fakeQuerier) GetWorkspaceHistoryLogsByIDBefore(_ context.Context, arg database.GetWorkspaceHistoryLogsByIDBeforeParams) ([]database.WorkspaceHistoryLog, error) {
logs := make([]database.WorkspaceHistoryLog, 0)
for _, workspaceHistoryLog := range q.workspaceHistoryLog {
if workspaceHistoryLog.WorkspaceHistoryID.String() != arg.WorkspaceHistoryID.String() {
continue
}
if workspaceHistoryLog.CreatedAt.After(arg.CreatedAt) {
continue
}
logs = append(logs, workspaceHistoryLog)
}
if len(logs) == 0 {
return nil, sql.ErrNoRows
}
return logs, nil
}

func (q *fakeQuerier) GetWorkspaceHistoryByWorkspaceID(_ context.Context, workspaceID uuid.UUID) ([]database.WorkspaceHistory, error) {
history := make([]database.WorkspaceHistory, 0)
for _, workspaceHistory := range q.workspaceHistory {
Expand All @@ -197,6 +218,19 @@ func (q *fakeQuerier) GetWorkspaceHistoryByWorkspaceID(_ context.Context, worksp
return history, nil
}

func (q *fakeQuerier) GetWorkspaceHistoryByWorkspaceIDAndName(_ context.Context, arg database.GetWorkspaceHistoryByWorkspaceIDAndNameParams) (database.WorkspaceHistory, error) {
for _, workspaceHistory := range q.workspaceHistory {
if workspaceHistory.WorkspaceID.String() != arg.WorkspaceID.String() {
continue
}
if !strings.EqualFold(workspaceHistory.Name, arg.Name) {
continue
}
return workspaceHistory, nil
}
return database.WorkspaceHistory{}, sql.ErrNoRows
}

func (q *fakeQuerier) GetWorkspacesByProjectAndUserID(_ context.Context, arg database.GetWorkspacesByProjectAndUserIDParams) ([]database.Workspace, error) {
workspaces := make([]database.Workspace, 0)
for _, workspace := range q.workspace {
Expand Down Expand Up @@ -318,6 +352,36 @@ func (q *fakeQuerier) GetProjectHistoryByProjectID(_ context.Context, projectID
return history, nil
}

func (q *fakeQuerier) GetProjectHistoryByProjectIDAndName(_ context.Context, arg database.GetProjectHistoryByProjectIDAndNameParams) (database.ProjectHistory, error) {
for _, projectHistory := range q.projectHistory {
if projectHistory.ProjectID.String() != arg.ProjectID.String() {
continue
}
if !strings.EqualFold(projectHistory.Name, arg.Name) {
continue
}
return projectHistory, nil
}
return database.ProjectHistory{}, sql.ErrNoRows
}

func (q *fakeQuerier) GetProjectHistoryLogsByIDBefore(_ context.Context, arg database.GetProjectHistoryLogsByIDBeforeParams) ([]database.ProjectHistoryLog, error) {
logs := make([]database.ProjectHistoryLog, 0)
for _, projectHistoryLog := range q.projectHistoryLog {
if projectHistoryLog.ProjectHistoryID.String() != arg.ProjectHistoryID.String() {
continue
}
if projectHistoryLog.CreatedAt.After(arg.CreatedAt) {
continue
}
logs = append(logs, projectHistoryLog)
}
if len(logs) == 0 {
return nil, sql.ErrNoRows
}
return logs, nil
}

func (q *fakeQuerier) GetProjectHistoryByID(_ context.Context, projectHistoryID uuid.UUID) (database.ProjectHistory, error) {
for _, projectHistory := range q.projectHistory {
if projectHistory.ID.String() != projectHistoryID.String() {
Expand Down Expand Up @@ -371,6 +435,13 @@ func (q *fakeQuerier) GetOrganizationMemberByUserID(_ context.Context, arg datab
return database.OrganizationMember{}, sql.ErrNoRows
}

func (q *fakeQuerier) GetProvisionerDaemons(_ context.Context) ([]database.ProvisionerDaemon, error) {
if len(q.provisionerDaemons) == 0 {
return nil, sql.ErrNoRows
}
return q.provisionerDaemons, nil
}

func (q *fakeQuerier) GetProvisionerDaemonByID(_ context.Context, id uuid.UUID) (database.ProvisionerDaemon, error) {
for _, provisionerDaemon := range q.provisionerDaemons {
if provisionerDaemon.ID.String() != id.String() {
Expand Down Expand Up @@ -486,6 +557,22 @@ func (q *fakeQuerier) InsertProjectHistory(_ context.Context, arg database.Inser
return history, nil
}

func (q *fakeQuerier) InsertProjectHistoryLogs(_ context.Context, arg database.InsertProjectHistoryLogsParams) ([]database.ProjectHistoryLog, error) {
logs := make([]database.ProjectHistoryLog, 0)
for index, output := range arg.Output {
logs = append(logs, database.ProjectHistoryLog{
ProjectHistoryID: arg.ProjectHistoryID,
ID: arg.ID[index],
CreatedAt: arg.CreatedAt[index],
Source: arg.Source[index],
Level: arg.Level[index],
Output: output,
})
}
q.projectHistoryLog = append(q.projectHistoryLog, logs...)
return logs, nil
}

func (q *fakeQuerier) InsertProjectParameter(_ context.Context, arg database.InsertProjectParameterParams) (database.ProjectParameter, error) {
//nolint:gosimple
param := database.ProjectParameter{
Expand Down Expand Up @@ -586,6 +673,7 @@ func (q *fakeQuerier) InsertWorkspaceHistory(_ context.Context, arg database.Ins
CreatedAt: arg.CreatedAt,
UpdatedAt: arg.UpdatedAt,
WorkspaceID: arg.WorkspaceID,
Name: arg.Name,
ProjectHistoryID: arg.ProjectHistoryID,
BeforeID: arg.BeforeID,
Transition: arg.Transition,
Expand All @@ -596,6 +684,22 @@ func (q *fakeQuerier) InsertWorkspaceHistory(_ context.Context, arg database.Ins
return workspaceHistory, nil
}

func (q *fakeQuerier) InsertWorkspaceHistoryLogs(_ context.Context, arg database.InsertWorkspaceHistoryLogsParams) ([]database.WorkspaceHistoryLog, error) {
logs := make([]database.WorkspaceHistoryLog, 0)
for index, output := range arg.Output {
logs = append(logs, database.WorkspaceHistoryLog{
WorkspaceHistoryID: arg.WorkspaceHistoryID,
ID: arg.ID[index],
CreatedAt: arg.CreatedAt[index],
Source: arg.Source[index],
Level: arg.Level[index],
Output: output,
})
}
q.workspaceHistoryLog = append(q.workspaceHistoryLog, logs...)
return logs, nil
}

func (q *fakeQuerier) InsertWorkspaceResource(_ context.Context, arg database.InsertWorkspaceResourceParams) (database.WorkspaceResource, error) {
workspaceResource := database.WorkspaceResource{
ID: arg.ID,
Expand Down Expand Up @@ -659,7 +763,9 @@ func (q *fakeQuerier) UpdateWorkspaceHistoryByID(_ context.Context, arg database
continue
}
workspaceHistory.UpdatedAt = arg.UpdatedAt
workspaceHistory.CompletedAt = arg.CompletedAt
workspaceHistory.AfterID = arg.AfterID
workspaceHistory.ProvisionerState = arg.ProvisionerState
q.workspaceHistory[index] = workspaceHistory
return nil
}
Expand Down
52 changes: 38 additions & 14 deletions database/dump.sql

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions database/migrations/000002_projects.up.sql
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,25 @@ CREATE TABLE project_parameter (
validation_value_type varchar(64) NOT NULL,
UNIQUE(project_history_id, name)
);

CREATE TYPE log_level AS ENUM (
'trace',
'debug',
'info',
'warn',
'error'
);

CREATE TYPE log_source AS ENUM (
'provisioner_daemon',
'provisioner'
);

CREATE TABLE project_history_log (
id uuid NOT NULL UNIQUE,
project_history_id uuid NOT NULL REFERENCES project_history (id) ON DELETE CASCADE,
created_at timestamptz NOT NULL,
source log_source NOT NULL,
level log_level NOT NULL,
output varchar(1024) NOT NULL
);

0 comments on commit ac617e1

Please sign in to comment.