- Notifications
You must be signed in to change notification settings - Fork914
chore: persist template import terraform plan in postgres#17012
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Changes fromall commits
c652969
6c250a3
e21a475
e4dd84f
d46076b
f86d7fe
5b97bcd
9418711
746ae46
11d20d5
1a4f3b2
a46470e
1cdb247
9d3d7a0
13ad6c8
a05c8fe
295bceb
6a92c6e
6d46c7e
c237a97
ae5330a
70fce96
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -3320,6 +3320,13 @@ func (q *querier) InsertTemplateVersionParameter(ctx context.Context, arg databa | ||
return q.db.InsertTemplateVersionParameter(ctx, arg) | ||
} | ||
func (q *querier) InsertTemplateVersionTerraformValuesByJobID(ctx context.Context, arg database.InsertTemplateVersionTerraformValuesByJobIDParams) error { | ||
aslilac marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading.Please reload this page. | ||
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceSystem); err != nil { | ||
return err | ||
} | ||
return q.db.InsertTemplateVersionTerraformValuesByJobID(ctx, arg) | ||
} | ||
func (q *querier) InsertTemplateVersionVariable(ctx context.Context, arg database.InsertTemplateVersionVariableParams) (database.TemplateVersionVariable, error) { | ||
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceSystem); err != nil { | ||
return database.TemplateVersionVariable{}, err | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -54,47 +54,48 @@ func New() database.Store { | ||
q := &FakeQuerier{ | ||
mutex: &sync.RWMutex{}, | ||
data: &data{ | ||
apiKeys: make([]database.APIKey, 0), | ||
auditLogs: make([]database.AuditLog, 0), | ||
customRoles: make([]database.CustomRole, 0), | ||
dbcryptKeys: make([]database.DBCryptKey, 0), | ||
externalAuthLinks: make([]database.ExternalAuthLink, 0), | ||
files: make([]database.File, 0), | ||
gitSSHKey: make([]database.GitSSHKey, 0), | ||
groups: make([]database.Group, 0), | ||
groupMembers: make([]database.GroupMemberTable, 0), | ||
licenses: make([]database.License, 0), | ||
locks: map[int64]struct{}{}, | ||
notificationMessages: make([]database.NotificationMessage, 0), | ||
notificationPreferences: make([]database.NotificationPreference, 0), | ||
organizationMembers: make([]database.OrganizationMember, 0), | ||
organizations: make([]database.Organization, 0), | ||
inboxNotifications: make([]database.InboxNotification, 0), | ||
parameterSchemas: make([]database.ParameterSchema, 0), | ||
presets: make([]database.TemplateVersionPreset, 0), | ||
presetParameters: make([]database.TemplateVersionPresetParameter, 0), | ||
provisionerDaemons: make([]database.ProvisionerDaemon, 0), | ||
provisionerJobs: make([]database.ProvisionerJob, 0), | ||
provisionerJobLogs: make([]database.ProvisionerJobLog, 0), | ||
provisionerKeys: make([]database.ProvisionerKey, 0), | ||
runtimeConfig: map[string]string{}, | ||
telemetryItems: make([]database.TelemetryItem, 0), | ||
templateVersions: make([]database.TemplateVersionTable, 0), | ||
templateVersionTerraformValues: make([]database.TemplateVersionTerraformValue, 0), | ||
templates: make([]database.TemplateTable, 0), | ||
users: make([]database.User, 0), | ||
userConfigs: make([]database.UserConfig, 0), | ||
userStatusChanges: make([]database.UserStatusChange, 0), | ||
workspaceAgents: make([]database.WorkspaceAgent, 0), | ||
workspaceResources: make([]database.WorkspaceResource, 0), | ||
workspaceModules: make([]database.WorkspaceModule, 0), | ||
workspaceResourceMetadata: make([]database.WorkspaceResourceMetadatum, 0), | ||
workspaceAgentStats: make([]database.WorkspaceAgentStat, 0), | ||
workspaceAgentLogs: make([]database.WorkspaceAgentLog, 0), | ||
workspaceBuilds: make([]database.WorkspaceBuild, 0), | ||
workspaceApps: make([]database.WorkspaceApp, 0), | ||
workspaceAppAuditSessions: make([]database.WorkspaceAppAuditSession, 0), | ||
workspaces: make([]database.WorkspaceTable, 0), | ||
workspaceProxies: make([]database.WorkspaceProxy, 0), | ||
}, | ||
} | ||
// Always start with a default org. Matching migration 198. | ||
@@ -222,6 +223,7 @@ type data struct { | ||
replicas []database.Replica | ||
templateVersions []database.TemplateVersionTable | ||
templateVersionParameters []database.TemplateVersionParameter | ||
templateVersionTerraformValues []database.TemplateVersionTerraformValue | ||
templateVersionVariables []database.TemplateVersionVariable | ||
templateVersionWorkspaceTags []database.TemplateVersionWorkspaceTag | ||
templates []database.TemplateTable | ||
@@ -8828,6 +8830,37 @@ func (q *FakeQuerier) InsertTemplateVersionParameter(_ context.Context, arg data | ||
return param, nil | ||
} | ||
func (q *FakeQuerier) InsertTemplateVersionTerraformValuesByJobID(_ context.Context, arg database.InsertTemplateVersionTerraformValuesByJobIDParams) error { | ||
err := validateDatabaseType(arg) | ||
if err != nil { | ||
return err | ||
} | ||
q.mutex.Lock() | ||
defer q.mutex.Unlock() | ||
// Find the template version by the job_id | ||
templateVersion, ok := slice.Find(q.templateVersions, func(v database.TemplateVersionTable) bool { | ||
return v.JobID == arg.JobID | ||
}) | ||
if !ok { | ||
return sql.ErrNoRows | ||
} | ||
if !json.Valid(arg.CachedPlan) { | ||
return xerrors.Errorf("cached plan must be valid json, received %q", string(arg.CachedPlan)) | ||
} | ||
// Insert the new row | ||
row := database.TemplateVersionTerraformValue{ | ||
TemplateVersionID: templateVersion.ID, | ||
CachedPlan: arg.CachedPlan, | ||
UpdatedAt: arg.UpdatedAt, | ||
} | ||
aslilac marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading.Please reload this page. | ||
q.templateVersionTerraformValues = append(q.templateVersionTerraformValues, row) | ||
return nil | ||
} | ||
func (q *FakeQuerier) InsertTemplateVersionVariable(_ context.Context, arg database.InsertTemplateVersionVariableParams) (database.TemplateVersionVariable, error) { | ||
if err := validateDatabaseType(arg); err != nil { | ||
return database.TemplateVersionVariable{}, err | ||
Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.
Uh oh!
There was an error while loading.Please reload this page.
Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.
Uh oh!
There was an error while loading.Please reload this page.
Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.
Uh oh!
There was an error while loading.Please reload this page.
Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.
Uh oh!
There was an error while loading.Please reload this page.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
drop table template_version_terraform_values; |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
create table template_version_terraform_values ( | ||
template_version_id uuid not null unique references template_versions(id) on delete cascade, | ||
updated_at timestamptz not null default now(), | ||
cached_plan jsonb not null | ||
); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
insert into | ||
template_version_terraform_values ( | ||
template_version_id, | ||
cached_plan, | ||
updated_at | ||
) | ||
select | ||
id, | ||
'{}', | ||
now() | ||
from | ||
template_versions; |
Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.
Uh oh!
There was an error while loading.Please reload this page.
Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.
Uh oh!
There was an error while loading.Please reload this page.
Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.
Uh oh!
There was an error while loading.Please reload this page.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
-- name: InsertTemplateVersionTerraformValuesByJobID :exec | ||
INSERT INTO | ||
template_version_terraform_values ( | ||
template_version_id, | ||
cached_plan, | ||
updated_at | ||
) | ||
VALUES | ||
( | ||
(select id from template_versions where job_id = @job_id), | ||
@cached_plan, | ||
@updated_at | ||
); |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.