From d55231cc0f9643cb774d511811c51a0ba6ef66ed Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 7 Feb 2022 15:40:08 -0600 Subject: [PATCH] refactor: Rename ProjectParameter to ProjectVersionParameter (#170) This was confusing with ParameterValue before. It still is a bit, but this should help distinguish scope. --- coderd/projectparameter/projectparameter.go | 6 +- .../projectparameter/projectparameter_test.go | 6 +- coderd/projectversion.go | 16 +- coderd/provisionerdaemons.go | 10 +- coderd/provisionerdaemons_test.go | 2 +- codersdk/projects.go | 4 +- database/databasefake/databasefake.go | 62 +-- database/dump.sql | 48 ++- database/migrations/000002_projects.up.sql | 2 +- database/models.go | 35 +- database/querier.go | 6 +- database/query.sql | 10 +- database/query.sql.go | 396 +++++++++--------- 13 files changed, 309 insertions(+), 294 deletions(-) diff --git a/coderd/projectparameter/projectparameter.go b/coderd/projectparameter/projectparameter.go index 0ba65eae8f..a9394f3de6 100644 --- a/coderd/projectparameter/projectparameter.go +++ b/coderd/projectparameter/projectparameter.go @@ -40,11 +40,11 @@ func Compute(ctx context.Context, db database.Store, scope Scope) ([]Value, erro compute := &compute{ db: db, computedParameterByName: map[string]Value{}, - projectVersionParametersByName: map[string]database.ProjectParameter{}, + projectVersionParametersByName: map[string]database.ProjectVersionParameter{}, } // All parameters for the project version! - projectVersionParameters, err := db.GetProjectParametersByVersionID(ctx, scope.ProjectVersionID) + projectVersionParameters, err := db.GetProjectVersionParametersByVersionID(ctx, scope.ProjectVersionID) if errors.Is(err, sql.ErrNoRows) { // This occurs when the project version has defined // no parameters, so we have nothing to compute! @@ -144,7 +144,7 @@ func Compute(ctx context.Context, db database.Store, scope Scope) ([]Value, erro type compute struct { db database.Store computedParameterByName map[string]Value - projectVersionParametersByName map[string]database.ProjectParameter + projectVersionParametersByName map[string]database.ProjectVersionParameter } // Validates and computes the value for parameters; setting the value on "parameterByName". diff --git a/coderd/projectparameter/projectparameter_test.go b/coderd/projectparameter/projectparameter_test.go index 1cc2cd80f9..2fa42ff88d 100644 --- a/coderd/projectparameter/projectparameter_test.go +++ b/coderd/projectparameter/projectparameter_test.go @@ -31,7 +31,7 @@ func TestCompute(t *testing.T) { DefaultDestinationScheme database.ParameterDestinationScheme ProjectVersionID uuid.UUID } - generateProjectParameter := func(t *testing.T, db database.Store, opts projectParameterOptions) database.ProjectParameter { + generateProjectParameter := func(t *testing.T, db database.Store, opts projectParameterOptions) database.ProjectVersionParameter { if opts.DefaultDestinationScheme == "" { opts.DefaultDestinationScheme = database.ParameterDestinationSchemeEnvironmentVariable } @@ -41,7 +41,7 @@ func TestCompute(t *testing.T) { require.NoError(t, err) destinationValue, err := cryptorand.String(8) require.NoError(t, err) - param, err := db.InsertProjectParameter(context.Background(), database.InsertProjectParameterParams{ + param, err := db.InsertProjectVersionParameter(context.Background(), database.InsertProjectVersionParameterParams{ ID: uuid.New(), Name: name, ProjectVersionID: opts.ProjectVersionID, @@ -66,7 +66,7 @@ func TestCompute(t *testing.T) { t.Parallel() db := databasefake.New() scope := generateScope() - parameter, err := db.InsertProjectParameter(context.Background(), database.InsertProjectParameterParams{ + parameter, err := db.InsertProjectVersionParameter(context.Background(), database.InsertProjectVersionParameterParams{ ID: uuid.New(), ProjectVersionID: scope.ProjectVersionID, Name: "hey", diff --git a/coderd/projectversion.go b/coderd/projectversion.go index bd60d4c9bd..c2e04e40fc 100644 --- a/coderd/projectversion.go +++ b/coderd/projectversion.go @@ -31,8 +31,8 @@ type ProjectVersion struct { Import ProvisionerJob `json:"import"` } -// ProjectParameter represents a parameter parsed from project version source on creation. -type ProjectParameter struct { +// ProjectVersionParameter represents a parameter parsed from project version source on creation. +type ProjectVersionParameter struct { ID uuid.UUID `json:"id"` CreatedAt time.Time `json:"created_at"` ProjectVersionID uuid.UUID `json:"project_version_id"` @@ -62,7 +62,7 @@ type CreateProjectVersionRequest struct { func (api *api) projectVersionsByOrganization(rw http.ResponseWriter, r *http.Request) { project := httpmw.ProjectParam(r) - version, err := api.Database.GetProjectVersionByProjectID(r.Context(), project.ID) + version, err := api.Database.GetProjectVersionsByProjectID(r.Context(), project.ID) if errors.Is(err, sql.ErrNoRows) { err = nil } @@ -194,10 +194,10 @@ func (api *api) projectVersionParametersByOrganizationAndName(rw http.ResponseWr return } - parameters, err := api.Database.GetProjectParametersByVersionID(r.Context(), projectVersion.ID) + parameters, err := api.Database.GetProjectVersionParametersByVersionID(r.Context(), projectVersion.ID) if errors.Is(err, sql.ErrNoRows) { err = nil - parameters = []database.ProjectParameter{} + parameters = []database.ProjectVersionParameter{} } if err != nil { httpapi.Write(rw, http.StatusInternalServerError, httpapi.Response{ @@ -206,7 +206,7 @@ func (api *api) projectVersionParametersByOrganizationAndName(rw http.ResponseWr return } - apiParameters := make([]ProjectParameter, 0, len(parameters)) + apiParameters := make([]ProjectVersionParameter, 0, len(parameters)) for _, parameter := range parameters { apiParameters = append(apiParameters, convertProjectParameter(parameter)) } @@ -227,8 +227,8 @@ func convertProjectVersion(version database.ProjectVersion, job database.Provisi } } -func convertProjectParameter(parameter database.ProjectParameter) ProjectParameter { - return ProjectParameter{ +func convertProjectParameter(parameter database.ProjectVersionParameter) ProjectVersionParameter { + return ProjectVersionParameter{ ID: parameter.ID, CreatedAt: parameter.CreatedAt, ProjectVersionID: parameter.ProjectVersionID, diff --git a/coderd/provisionerdaemons.go b/coderd/provisionerdaemons.go index fa29121e86..67907810fd 100644 --- a/coderd/provisionerdaemons.go +++ b/coderd/provisionerdaemons.go @@ -378,14 +378,14 @@ func (server *provisionerdServer) CompleteJob(ctx context.Context, completed *pr // Validate that all parameters send from the provisioner daemon // follow the protocol. - projectParameters := make([]database.InsertProjectParameterParams, 0, len(jobType.ProjectImport.ParameterSchemas)) + projectVersionParameters := make([]database.InsertProjectVersionParameterParams, 0, len(jobType.ProjectImport.ParameterSchemas)) for _, protoParameter := range jobType.ProjectImport.ParameterSchemas { validationTypeSystem, err := convertValidationTypeSystem(protoParameter.ValidationTypeSystem) if err != nil { return nil, xerrors.Errorf("convert validation type system for %q: %w", protoParameter.Name, err) } - projectParameter := database.InsertProjectParameterParams{ + projectParameter := database.InsertProjectVersionParameterParams{ ID: uuid.New(), CreatedAt: database.Now(), ProjectVersionID: input.ProjectVersionID, @@ -430,7 +430,7 @@ func (server *provisionerdServer) CompleteJob(ctx context.Context, completed *pr } } - projectParameters = append(projectParameters, projectParameter) + projectVersionParameters = append(projectVersionParameters, projectParameter) } // This must occur in a transaction in case of failure. @@ -448,8 +448,8 @@ func (server *provisionerdServer) CompleteJob(ctx context.Context, completed *pr } // This could be a bulk-insert operation to improve performance. // See the "InsertWorkspaceHistoryLogs" query. - for _, projectParameter := range projectParameters { - _, err = db.InsertProjectParameter(ctx, projectParameter) + for _, projectParameter := range projectVersionParameters { + _, err = db.InsertProjectVersionParameter(ctx, projectParameter) if err != nil { return xerrors.Errorf("insert project parameter %q: %w", projectParameter.Name, err) } diff --git a/coderd/provisionerdaemons_test.go b/coderd/provisionerdaemons_test.go index f37923aa00..4c62c7c96e 100644 --- a/coderd/provisionerdaemons_test.go +++ b/coderd/provisionerdaemons_test.go @@ -24,5 +24,5 @@ func TestProvisionerDaemons(t *testing.T) { daemons, err := client.ProvisionerDaemons(context.Background()) require.NoError(t, err) return len(daemons) > 0 - }, time.Second, 25*time.Millisecond) + }, 3*time.Second, 50*time.Millisecond) } diff --git a/codersdk/projects.go b/codersdk/projects.go index e3805ba3c4..b58825778c 100644 --- a/codersdk/projects.go +++ b/codersdk/projects.go @@ -100,7 +100,7 @@ func (c *Client) CreateProjectVersion(ctx context.Context, organization, project } // ProjectVersionParameters returns project parameters for a version by name. -func (c *Client) ProjectVersionParameters(ctx context.Context, organization, project, version string) ([]coderd.ProjectParameter, error) { +func (c *Client) ProjectVersionParameters(ctx context.Context, organization, project, version string) ([]coderd.ProjectVersionParameter, error) { res, err := c.request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/projects/%s/%s/versions/%s/parameters", organization, project, version), nil) if err != nil { return nil, err @@ -109,7 +109,7 @@ func (c *Client) ProjectVersionParameters(ctx context.Context, organization, pro if res.StatusCode != http.StatusOK { return nil, readBodyAsError(res) } - var params []coderd.ProjectParameter + var params []coderd.ProjectVersionParameter return params, json.NewDecoder(res.Body).Decode(¶ms) } diff --git a/database/databasefake/databasefake.go b/database/databasefake/databasefake.go index a1ee7edf3a..1befa0d153 100644 --- a/database/databasefake/databasefake.go +++ b/database/databasefake/databasefake.go @@ -19,18 +19,18 @@ func New() database.Store { organizationMembers: make([]database.OrganizationMember, 0), users: make([]database.User, 0), - files: make([]database.File, 0), - parameterValue: make([]database.ParameterValue, 0), - project: make([]database.Project, 0), - projectVersion: make([]database.ProjectVersion, 0), - projectParameter: make([]database.ProjectParameter, 0), - provisionerDaemons: make([]database.ProvisionerDaemon, 0), - provisionerJobs: make([]database.ProvisionerJob, 0), - provisionerJobLog: make([]database.ProvisionerJobLog, 0), - workspace: make([]database.Workspace, 0), - workspaceResource: make([]database.WorkspaceResource, 0), - workspaceHistory: make([]database.WorkspaceHistory, 0), - workspaceAgent: make([]database.WorkspaceAgent, 0), + files: make([]database.File, 0), + parameterValue: make([]database.ParameterValue, 0), + project: make([]database.Project, 0), + projectVersion: make([]database.ProjectVersion, 0), + projectVersionParameter: make([]database.ProjectVersionParameter, 0), + provisionerDaemons: make([]database.ProvisionerDaemon, 0), + provisionerJobs: make([]database.ProvisionerJob, 0), + provisionerJobLog: make([]database.ProvisionerJobLog, 0), + workspace: make([]database.Workspace, 0), + workspaceResource: make([]database.WorkspaceResource, 0), + workspaceHistory: make([]database.WorkspaceHistory, 0), + workspaceAgent: make([]database.WorkspaceAgent, 0), } } @@ -40,23 +40,23 @@ type fakeQuerier struct { // Legacy tables apiKeys []database.APIKey - files []database.File organizations []database.Organization organizationMembers []database.OrganizationMember users []database.User // New tables - parameterValue []database.ParameterValue - project []database.Project - projectVersion []database.ProjectVersion - projectParameter []database.ProjectParameter - provisionerDaemons []database.ProvisionerDaemon - provisionerJobs []database.ProvisionerJob - provisionerJobLog []database.ProvisionerJobLog - workspace []database.Workspace - workspaceAgent []database.WorkspaceAgent - workspaceHistory []database.WorkspaceHistory - workspaceResource []database.WorkspaceResource + files []database.File + parameterValue []database.ParameterValue + project []database.Project + projectVersion []database.ProjectVersion + projectVersionParameter []database.ProjectVersionParameter + provisionerDaemons []database.ProvisionerDaemon + provisionerJobs []database.ProvisionerJob + provisionerJobLog []database.ProvisionerJobLog + workspace []database.Workspace + workspaceAgent []database.WorkspaceAgent + workspaceHistory []database.WorkspaceHistory + workspaceResource []database.WorkspaceResource } // InTx doesn't rollback data properly for in-memory yet. @@ -399,7 +399,7 @@ func (q *fakeQuerier) GetProjectByOrganizationAndName(_ context.Context, arg dat return database.Project{}, sql.ErrNoRows } -func (q *fakeQuerier) GetProjectVersionByProjectID(_ context.Context, projectID uuid.UUID) ([]database.ProjectVersion, error) { +func (q *fakeQuerier) GetProjectVersionsByProjectID(_ context.Context, projectID uuid.UUID) ([]database.ProjectVersion, error) { q.mutex.Lock() defer q.mutex.Unlock() @@ -445,12 +445,12 @@ func (q *fakeQuerier) GetProjectVersionByID(_ context.Context, projectVersionID return database.ProjectVersion{}, sql.ErrNoRows } -func (q *fakeQuerier) GetProjectParametersByVersionID(_ context.Context, projectVersionID uuid.UUID) ([]database.ProjectParameter, error) { +func (q *fakeQuerier) GetProjectVersionParametersByVersionID(_ context.Context, projectVersionID uuid.UUID) ([]database.ProjectVersionParameter, error) { q.mutex.Lock() defer q.mutex.Unlock() - parameters := make([]database.ProjectParameter, 0) - for _, projectParameter := range q.projectParameter { + parameters := make([]database.ProjectVersionParameter, 0) + for _, projectParameter := range q.projectVersionParameter { if projectParameter.ProjectVersionID.String() != projectVersionID.String() { continue } @@ -703,12 +703,12 @@ func (q *fakeQuerier) InsertProvisionerJobLogs(_ context.Context, arg database.I return logs, nil } -func (q *fakeQuerier) InsertProjectParameter(_ context.Context, arg database.InsertProjectParameterParams) (database.ProjectParameter, error) { +func (q *fakeQuerier) InsertProjectVersionParameter(_ context.Context, arg database.InsertProjectVersionParameterParams) (database.ProjectVersionParameter, error) { q.mutex.Lock() defer q.mutex.Unlock() //nolint:gosimple - param := database.ProjectParameter{ + param := database.ProjectVersionParameter{ ID: arg.ID, CreatedAt: arg.CreatedAt, ProjectVersionID: arg.ProjectVersionID, @@ -727,7 +727,7 @@ func (q *fakeQuerier) InsertProjectParameter(_ context.Context, arg database.Ins ValidationTypeSystem: arg.ValidationTypeSystem, ValidationValueType: arg.ValidationValueType, } - q.projectParameter = append(q.projectParameter, param) + q.projectVersionParameter = append(q.projectVersionParameter, param) return param, nil } diff --git a/database/dump.sql b/database/dump.sql index 721f1c034c..d7b2d1caee 100644 --- a/database/dump.sql +++ b/database/dump.sql @@ -144,7 +144,28 @@ CREATE TABLE project ( active_version_id uuid ); -CREATE TABLE project_parameter ( +CREATE TABLE project_version ( + id uuid NOT NULL, + project_id uuid NOT NULL, + created_at timestamp with time zone NOT NULL, + updated_at timestamp with time zone NOT NULL, + name character varying(64) NOT NULL, + description character varying(1048576) NOT NULL, + storage_method project_storage_method NOT NULL, + storage_source bytea NOT NULL, + import_job_id uuid NOT NULL +); + +CREATE TABLE project_version_log ( + id uuid NOT NULL, + project_version_id uuid NOT NULL, + created_at timestamp with time zone NOT NULL, + source log_source NOT NULL, + level log_level NOT NULL, + output character varying(1024) NOT NULL +); + +CREATE TABLE project_version_parameter ( id uuid NOT NULL, created_at timestamp with time zone NOT NULL, project_version_id uuid NOT NULL, @@ -164,18 +185,6 @@ CREATE TABLE project_parameter ( validation_value_type character varying(64) NOT NULL ); -CREATE TABLE project_version ( - id uuid NOT NULL, - project_id uuid NOT NULL, - created_at timestamp with time zone NOT NULL, - updated_at timestamp with time zone NOT NULL, - name character varying(64) NOT NULL, - description character varying(1048576) NOT NULL, - storage_method project_storage_method NOT NULL, - storage_source bytea NOT NULL, - import_job_id uuid NOT NULL -); - CREATE TABLE provisioner_daemon ( id uuid NOT NULL, created_at timestamp with time zone NOT NULL, @@ -288,12 +297,6 @@ ALTER TABLE ONLY project ALTER TABLE ONLY project ADD CONSTRAINT project_organization_id_name_key UNIQUE (organization_id, name); -ALTER TABLE ONLY project_parameter - ADD CONSTRAINT project_parameter_id_key UNIQUE (id); - -ALTER TABLE ONLY project_parameter - ADD CONSTRAINT project_parameter_project_version_id_name_key UNIQUE (project_version_id, name); - ALTER TABLE ONLY project_version ADD CONSTRAINT project_version_id_key UNIQUE (id); @@ -336,8 +339,11 @@ ALTER TABLE ONLY workspace_resource ALTER TABLE ONLY workspace_resource ADD CONSTRAINT workspace_resource_workspace_history_id_name_key UNIQUE (workspace_history_id, name); -ALTER TABLE ONLY project_parameter - ADD CONSTRAINT project_parameter_project_version_id_fkey FOREIGN KEY (project_version_id) REFERENCES project_version(id) ON DELETE CASCADE; +ALTER TABLE ONLY project_version_log + ADD CONSTRAINT project_version_log_project_version_id_fkey FOREIGN KEY (project_version_id) REFERENCES project_version(id) ON DELETE CASCADE; + +ALTER TABLE ONLY project_version_parameter + ADD CONSTRAINT project_version_parameter_project_version_id_fkey FOREIGN KEY (project_version_id) REFERENCES project_version(id) ON DELETE CASCADE; ALTER TABLE ONLY project_version ADD CONSTRAINT project_version_project_id_fkey FOREIGN KEY (project_id) REFERENCES project(id); diff --git a/database/migrations/000002_projects.up.sql b/database/migrations/000002_projects.up.sql index f8c3a85ca3..cb27bca942 100644 --- a/database/migrations/000002_projects.up.sql +++ b/database/migrations/000002_projects.up.sql @@ -71,7 +71,7 @@ CREATE TYPE parameter_destination_scheme AS ENUM('none', 'environment_variable', -- Parameter types, description, and validation will produce -- a UI for users to enter values. -- Needs to be made consistent with the examples below. -CREATE TABLE project_parameter ( +CREATE TABLE project_version_parameter ( id uuid NOT NULL UNIQUE, created_at timestamptz NOT NULL, project_version_id uuid NOT NULL REFERENCES project_version(id) ON DELETE CASCADE, diff --git a/database/models.go b/database/models.go index 6c0534c3e1..5c20d561ce 100644 --- a/database/models.go +++ b/database/models.go @@ -323,7 +323,28 @@ type Project struct { ActiveVersionID uuid.NullUUID `db:"active_version_id" json:"active_version_id"` } -type ProjectParameter struct { +type ProjectVersion struct { + ID uuid.UUID `db:"id" json:"id"` + ProjectID uuid.UUID `db:"project_id" json:"project_id"` + CreatedAt time.Time `db:"created_at" json:"created_at"` + UpdatedAt time.Time `db:"updated_at" json:"updated_at"` + Name string `db:"name" json:"name"` + Description string `db:"description" json:"description"` + StorageMethod ProjectStorageMethod `db:"storage_method" json:"storage_method"` + StorageSource []byte `db:"storage_source" json:"storage_source"` + ImportJobID uuid.UUID `db:"import_job_id" json:"import_job_id"` +} + +type ProjectVersionLog struct { + ID uuid.UUID `db:"id" json:"id"` + ProjectVersionID uuid.UUID `db:"project_version_id" json:"project_version_id"` + CreatedAt time.Time `db:"created_at" json:"created_at"` + Source LogSource `db:"source" json:"source"` + Level LogLevel `db:"level" json:"level"` + Output string `db:"output" json:"output"` +} + +type ProjectVersionParameter struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` ProjectVersionID uuid.UUID `db:"project_version_id" json:"project_version_id"` @@ -343,18 +364,6 @@ type ProjectParameter struct { ValidationValueType string `db:"validation_value_type" json:"validation_value_type"` } -type ProjectVersion struct { - ID uuid.UUID `db:"id" json:"id"` - ProjectID uuid.UUID `db:"project_id" json:"project_id"` - CreatedAt time.Time `db:"created_at" json:"created_at"` - UpdatedAt time.Time `db:"updated_at" json:"updated_at"` - Name string `db:"name" json:"name"` - Description string `db:"description" json:"description"` - StorageMethod ProjectStorageMethod `db:"storage_method" json:"storage_method"` - StorageSource []byte `db:"storage_source" json:"storage_source"` - ImportJobID uuid.UUID `db:"import_job_id" json:"import_job_id"` -} - type ProvisionerDaemon struct { ID uuid.UUID `db:"id" json:"id"` CreatedAt time.Time `db:"created_at" json:"created_at"` diff --git a/database/querier.go b/database/querier.go index 43ba8f66db..f6051faf52 100644 --- a/database/querier.go +++ b/database/querier.go @@ -19,10 +19,10 @@ type querier interface { GetParameterValuesByScope(ctx context.Context, arg GetParameterValuesByScopeParams) ([]ParameterValue, error) GetProjectByID(ctx context.Context, id uuid.UUID) (Project, error) GetProjectByOrganizationAndName(ctx context.Context, arg GetProjectByOrganizationAndNameParams) (Project, error) - GetProjectParametersByVersionID(ctx context.Context, projectVersionID uuid.UUID) ([]ProjectParameter, error) GetProjectVersionByID(ctx context.Context, id uuid.UUID) (ProjectVersion, error) - GetProjectVersionByProjectID(ctx context.Context, projectID uuid.UUID) ([]ProjectVersion, error) GetProjectVersionByProjectIDAndName(ctx context.Context, arg GetProjectVersionByProjectIDAndNameParams) (ProjectVersion, error) + GetProjectVersionParametersByVersionID(ctx context.Context, projectVersionID uuid.UUID) ([]ProjectVersionParameter, error) + GetProjectVersionsByProjectID(ctx context.Context, projectID uuid.UUID) ([]ProjectVersion, error) GetProjectsByOrganizationIDs(ctx context.Context, ids []string) ([]Project, error) GetProvisionerDaemonByID(ctx context.Context, id uuid.UUID) (ProvisionerDaemon, error) GetProvisionerDaemons(ctx context.Context) ([]ProvisionerDaemon, error) @@ -47,8 +47,8 @@ type querier interface { InsertOrganizationMember(ctx context.Context, arg InsertOrganizationMemberParams) (OrganizationMember, error) InsertParameterValue(ctx context.Context, arg InsertParameterValueParams) (ParameterValue, error) InsertProject(ctx context.Context, arg InsertProjectParams) (Project, error) - InsertProjectParameter(ctx context.Context, arg InsertProjectParameterParams) (ProjectParameter, error) InsertProjectVersion(ctx context.Context, arg InsertProjectVersionParams) (ProjectVersion, error) + InsertProjectVersionParameter(ctx context.Context, arg InsertProjectVersionParameterParams) (ProjectVersionParameter, error) InsertProvisionerDaemon(ctx context.Context, arg InsertProvisionerDaemonParams) (ProvisionerDaemon, error) InsertProvisionerJob(ctx context.Context, arg InsertProvisionerJobParams) (ProvisionerJob, error) InsertProvisionerJobLogs(ctx context.Context, arg InsertProvisionerJobLogsParams) ([]ProvisionerJobLog, error) diff --git a/database/query.sql b/database/query.sql index ffd619b174..ef27a08136 100644 --- a/database/query.sql +++ b/database/query.sql @@ -165,15 +165,15 @@ FROM WHERE organization_id = ANY(@ids :: text [ ]); --- name: GetProjectParametersByVersionID :many +-- name: GetProjectVersionParametersByVersionID :many SELECT * FROM - project_parameter + project_version_parameter WHERE project_version_id = $1; --- name: GetProjectVersionByProjectID :many +-- name: GetProjectVersionsByProjectID :many SELECT * FROM @@ -443,9 +443,9 @@ INSERT INTO VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING *; --- name: InsertProjectParameter :one +-- name: InsertProjectVersionParameter :one INSERT INTO - project_parameter ( + project_version_parameter ( id, created_at, project_version_id, diff --git a/database/query.sql.go b/database/query.sql.go index 547330860c..3b232bb3b1 100644 --- a/database/query.sql.go +++ b/database/query.sql.go @@ -372,56 +372,6 @@ func (q *sqlQuerier) GetProjectByOrganizationAndName(ctx context.Context, arg Ge return i, err } -const getProjectParametersByVersionID = `-- name: GetProjectParametersByVersionID :many -SELECT - id, created_at, project_version_id, name, description, default_source_scheme, default_source_value, allow_override_source, default_destination_scheme, default_destination_value, allow_override_destination, default_refresh, redisplay_value, validation_error, validation_condition, validation_type_system, validation_value_type -FROM - project_parameter -WHERE - project_version_id = $1 -` - -func (q *sqlQuerier) GetProjectParametersByVersionID(ctx context.Context, projectVersionID uuid.UUID) ([]ProjectParameter, error) { - rows, err := q.db.QueryContext(ctx, getProjectParametersByVersionID, projectVersionID) - if err != nil { - return nil, err - } - defer rows.Close() - var items []ProjectParameter - for rows.Next() { - var i ProjectParameter - if err := rows.Scan( - &i.ID, - &i.CreatedAt, - &i.ProjectVersionID, - &i.Name, - &i.Description, - &i.DefaultSourceScheme, - &i.DefaultSourceValue, - &i.AllowOverrideSource, - &i.DefaultDestinationScheme, - &i.DefaultDestinationValue, - &i.AllowOverrideDestination, - &i.DefaultRefresh, - &i.RedisplayValue, - &i.ValidationError, - &i.ValidationCondition, - &i.ValidationTypeSystem, - &i.ValidationValueType, - ); err != nil { - return nil, err - } - items = append(items, i) - } - if err := rows.Close(); err != nil { - return nil, err - } - if err := rows.Err(); err != nil { - return nil, err - } - return items, nil -} - const getProjectVersionByID = `-- name: GetProjectVersionByID :one SELECT id, project_id, created_at, updated_at, name, description, storage_method, storage_source, import_job_id @@ -448,48 +398,6 @@ func (q *sqlQuerier) GetProjectVersionByID(ctx context.Context, id uuid.UUID) (P return i, err } -const getProjectVersionByProjectID = `-- name: GetProjectVersionByProjectID :many -SELECT - id, project_id, created_at, updated_at, name, description, storage_method, storage_source, import_job_id -FROM - project_version -WHERE - project_id = $1 -` - -func (q *sqlQuerier) GetProjectVersionByProjectID(ctx context.Context, projectID uuid.UUID) ([]ProjectVersion, error) { - rows, err := q.db.QueryContext(ctx, getProjectVersionByProjectID, projectID) - if err != nil { - return nil, err - } - defer rows.Close() - var items []ProjectVersion - for rows.Next() { - var i ProjectVersion - if err := rows.Scan( - &i.ID, - &i.ProjectID, - &i.CreatedAt, - &i.UpdatedAt, - &i.Name, - &i.Description, - &i.StorageMethod, - &i.StorageSource, - &i.ImportJobID, - ); err != nil { - return nil, err - } - items = append(items, i) - } - if err := rows.Close(); err != nil { - return nil, err - } - if err := rows.Err(); err != nil { - return nil, err - } - return items, nil -} - const getProjectVersionByProjectIDAndName = `-- name: GetProjectVersionByProjectIDAndName :one SELECT id, project_id, created_at, updated_at, name, description, storage_method, storage_source, import_job_id @@ -522,6 +430,98 @@ func (q *sqlQuerier) GetProjectVersionByProjectIDAndName(ctx context.Context, ar return i, err } +const getProjectVersionParametersByVersionID = `-- name: GetProjectVersionParametersByVersionID :many +SELECT + id, created_at, project_version_id, name, description, default_source_scheme, default_source_value, allow_override_source, default_destination_scheme, default_destination_value, allow_override_destination, default_refresh, redisplay_value, validation_error, validation_condition, validation_type_system, validation_value_type +FROM + project_version_parameter +WHERE + project_version_id = $1 +` + +func (q *sqlQuerier) GetProjectVersionParametersByVersionID(ctx context.Context, projectVersionID uuid.UUID) ([]ProjectVersionParameter, error) { + rows, err := q.db.QueryContext(ctx, getProjectVersionParametersByVersionID, projectVersionID) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ProjectVersionParameter + for rows.Next() { + var i ProjectVersionParameter + if err := rows.Scan( + &i.ID, + &i.CreatedAt, + &i.ProjectVersionID, + &i.Name, + &i.Description, + &i.DefaultSourceScheme, + &i.DefaultSourceValue, + &i.AllowOverrideSource, + &i.DefaultDestinationScheme, + &i.DefaultDestinationValue, + &i.AllowOverrideDestination, + &i.DefaultRefresh, + &i.RedisplayValue, + &i.ValidationError, + &i.ValidationCondition, + &i.ValidationTypeSystem, + &i.ValidationValueType, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const getProjectVersionsByProjectID = `-- name: GetProjectVersionsByProjectID :many +SELECT + id, project_id, created_at, updated_at, name, description, storage_method, storage_source, import_job_id +FROM + project_version +WHERE + project_id = $1 +` + +func (q *sqlQuerier) GetProjectVersionsByProjectID(ctx context.Context, projectID uuid.UUID) ([]ProjectVersion, error) { + rows, err := q.db.QueryContext(ctx, getProjectVersionsByProjectID, projectID) + if err != nil { + return nil, err + } + defer rows.Close() + var items []ProjectVersion + for rows.Next() { + var i ProjectVersion + if err := rows.Scan( + &i.ID, + &i.ProjectID, + &i.CreatedAt, + &i.UpdatedAt, + &i.Name, + &i.Description, + &i.StorageMethod, + &i.StorageSource, + &i.ImportJobID, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const getProjectsByOrganizationIDs = `-- name: GetProjectsByOrganizationIDs :many SELECT id, created_at, updated_at, organization_id, name, provisioner, active_version_id @@ -1467,112 +1467,6 @@ func (q *sqlQuerier) InsertProject(ctx context.Context, arg InsertProjectParams) return i, err } -const insertProjectParameter = `-- name: InsertProjectParameter :one -INSERT INTO - project_parameter ( - id, - created_at, - project_version_id, - name, - description, - default_source_scheme, - default_source_value, - allow_override_source, - default_destination_scheme, - default_destination_value, - allow_override_destination, - default_refresh, - redisplay_value, - validation_error, - validation_condition, - validation_type_system, - validation_value_type - ) -VALUES - ( - $1, - $2, - $3, - $4, - $5, - $6, - $7, - $8, - $9, - $10, - $11, - $12, - $13, - $14, - $15, - $16, - $17 - ) RETURNING id, created_at, project_version_id, name, description, default_source_scheme, default_source_value, allow_override_source, default_destination_scheme, default_destination_value, allow_override_destination, default_refresh, redisplay_value, validation_error, validation_condition, validation_type_system, validation_value_type -` - -type InsertProjectParameterParams struct { - ID uuid.UUID `db:"id" json:"id"` - CreatedAt time.Time `db:"created_at" json:"created_at"` - ProjectVersionID uuid.UUID `db:"project_version_id" json:"project_version_id"` - Name string `db:"name" json:"name"` - Description string `db:"description" json:"description"` - DefaultSourceScheme ParameterSourceScheme `db:"default_source_scheme" json:"default_source_scheme"` - DefaultSourceValue sql.NullString `db:"default_source_value" json:"default_source_value"` - AllowOverrideSource bool `db:"allow_override_source" json:"allow_override_source"` - DefaultDestinationScheme ParameterDestinationScheme `db:"default_destination_scheme" json:"default_destination_scheme"` - DefaultDestinationValue sql.NullString `db:"default_destination_value" json:"default_destination_value"` - AllowOverrideDestination bool `db:"allow_override_destination" json:"allow_override_destination"` - DefaultRefresh string `db:"default_refresh" json:"default_refresh"` - RedisplayValue bool `db:"redisplay_value" json:"redisplay_value"` - ValidationError string `db:"validation_error" json:"validation_error"` - ValidationCondition string `db:"validation_condition" json:"validation_condition"` - ValidationTypeSystem ParameterTypeSystem `db:"validation_type_system" json:"validation_type_system"` - ValidationValueType string `db:"validation_value_type" json:"validation_value_type"` -} - -func (q *sqlQuerier) InsertProjectParameter(ctx context.Context, arg InsertProjectParameterParams) (ProjectParameter, error) { - row := q.db.QueryRowContext(ctx, insertProjectParameter, - arg.ID, - arg.CreatedAt, - arg.ProjectVersionID, - arg.Name, - arg.Description, - arg.DefaultSourceScheme, - arg.DefaultSourceValue, - arg.AllowOverrideSource, - arg.DefaultDestinationScheme, - arg.DefaultDestinationValue, - arg.AllowOverrideDestination, - arg.DefaultRefresh, - arg.RedisplayValue, - arg.ValidationError, - arg.ValidationCondition, - arg.ValidationTypeSystem, - arg.ValidationValueType, - ) - var i ProjectParameter - err := row.Scan( - &i.ID, - &i.CreatedAt, - &i.ProjectVersionID, - &i.Name, - &i.Description, - &i.DefaultSourceScheme, - &i.DefaultSourceValue, - &i.AllowOverrideSource, - &i.DefaultDestinationScheme, - &i.DefaultDestinationValue, - &i.AllowOverrideDestination, - &i.DefaultRefresh, - &i.RedisplayValue, - &i.ValidationError, - &i.ValidationCondition, - &i.ValidationTypeSystem, - &i.ValidationValueType, - ) - return i, err -} - const insertProjectVersion = `-- name: InsertProjectVersion :one INSERT INTO project_version ( @@ -1629,6 +1523,112 @@ func (q *sqlQuerier) InsertProjectVersion(ctx context.Context, arg InsertProject return i, err } +const insertProjectVersionParameter = `-- name: InsertProjectVersionParameter :one +INSERT INTO + project_version_parameter ( + id, + created_at, + project_version_id, + name, + description, + default_source_scheme, + default_source_value, + allow_override_source, + default_destination_scheme, + default_destination_value, + allow_override_destination, + default_refresh, + redisplay_value, + validation_error, + validation_condition, + validation_type_system, + validation_value_type + ) +VALUES + ( + $1, + $2, + $3, + $4, + $5, + $6, + $7, + $8, + $9, + $10, + $11, + $12, + $13, + $14, + $15, + $16, + $17 + ) RETURNING id, created_at, project_version_id, name, description, default_source_scheme, default_source_value, allow_override_source, default_destination_scheme, default_destination_value, allow_override_destination, default_refresh, redisplay_value, validation_error, validation_condition, validation_type_system, validation_value_type +` + +type InsertProjectVersionParameterParams struct { + ID uuid.UUID `db:"id" json:"id"` + CreatedAt time.Time `db:"created_at" json:"created_at"` + ProjectVersionID uuid.UUID `db:"project_version_id" json:"project_version_id"` + Name string `db:"name" json:"name"` + Description string `db:"description" json:"description"` + DefaultSourceScheme ParameterSourceScheme `db:"default_source_scheme" json:"default_source_scheme"` + DefaultSourceValue sql.NullString `db:"default_source_value" json:"default_source_value"` + AllowOverrideSource bool `db:"allow_override_source" json:"allow_override_source"` + DefaultDestinationScheme ParameterDestinationScheme `db:"default_destination_scheme" json:"default_destination_scheme"` + DefaultDestinationValue sql.NullString `db:"default_destination_value" json:"default_destination_value"` + AllowOverrideDestination bool `db:"allow_override_destination" json:"allow_override_destination"` + DefaultRefresh string `db:"default_refresh" json:"default_refresh"` + RedisplayValue bool `db:"redisplay_value" json:"redisplay_value"` + ValidationError string `db:"validation_error" json:"validation_error"` + ValidationCondition string `db:"validation_condition" json:"validation_condition"` + ValidationTypeSystem ParameterTypeSystem `db:"validation_type_system" json:"validation_type_system"` + ValidationValueType string `db:"validation_value_type" json:"validation_value_type"` +} + +func (q *sqlQuerier) InsertProjectVersionParameter(ctx context.Context, arg InsertProjectVersionParameterParams) (ProjectVersionParameter, error) { + row := q.db.QueryRowContext(ctx, insertProjectVersionParameter, + arg.ID, + arg.CreatedAt, + arg.ProjectVersionID, + arg.Name, + arg.Description, + arg.DefaultSourceScheme, + arg.DefaultSourceValue, + arg.AllowOverrideSource, + arg.DefaultDestinationScheme, + arg.DefaultDestinationValue, + arg.AllowOverrideDestination, + arg.DefaultRefresh, + arg.RedisplayValue, + arg.ValidationError, + arg.ValidationCondition, + arg.ValidationTypeSystem, + arg.ValidationValueType, + ) + var i ProjectVersionParameter + err := row.Scan( + &i.ID, + &i.CreatedAt, + &i.ProjectVersionID, + &i.Name, + &i.Description, + &i.DefaultSourceScheme, + &i.DefaultSourceValue, + &i.AllowOverrideSource, + &i.DefaultDestinationScheme, + &i.DefaultDestinationValue, + &i.AllowOverrideDestination, + &i.DefaultRefresh, + &i.RedisplayValue, + &i.ValidationError, + &i.ValidationCondition, + &i.ValidationTypeSystem, + &i.ValidationValueType, + ) + return i, err +} + const insertProvisionerDaemon = `-- name: InsertProvisionerDaemon :one INSERT INTO provisioner_daemon (id, created_at, name, provisioners)