mirror of
https://github.com/coder/coder.git
synced 2025-07-06 15:41:45 +00:00
feat!: drop support for legacy parameters (#7663)
This commit is contained in:
@ -77,28 +77,6 @@ func TemplateVersionParameter(param database.TemplateVersionParameter) (codersdk
|
||||
}, nil
|
||||
}
|
||||
|
||||
func Parameters(params []database.ParameterValue) []codersdk.Parameter {
|
||||
out := make([]codersdk.Parameter, len(params))
|
||||
for i, p := range params {
|
||||
out[i] = Parameter(p)
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func Parameter(parameterValue database.ParameterValue) codersdk.Parameter {
|
||||
return codersdk.Parameter{
|
||||
ID: parameterValue.ID,
|
||||
CreatedAt: parameterValue.CreatedAt,
|
||||
UpdatedAt: parameterValue.UpdatedAt,
|
||||
Scope: codersdk.ParameterScope(parameterValue.Scope),
|
||||
ScopeID: parameterValue.ScopeID,
|
||||
Name: parameterValue.Name,
|
||||
SourceScheme: codersdk.ParameterSourceScheme(parameterValue.SourceScheme),
|
||||
DestinationScheme: codersdk.ParameterDestinationScheme(parameterValue.DestinationScheme),
|
||||
SourceValue: parameterValue.SourceValue,
|
||||
}
|
||||
}
|
||||
|
||||
func ProvisionerJobStatus(provisionerJob database.ProvisionerJob) codersdk.ProvisionerJobStatus {
|
||||
switch {
|
||||
case provisionerJob.CanceledAt.Valid:
|
||||
|
@ -526,100 +526,6 @@ func (q *querier) canAssignRoles(ctx context.Context, orgID *uuid.UUID, added, r
|
||||
return nil
|
||||
}
|
||||
|
||||
func (q *querier) parameterRBACResource(ctx context.Context, scope database.ParameterScope, scopeID uuid.UUID) (rbac.Objecter, error) {
|
||||
var resource rbac.Objecter
|
||||
var err error
|
||||
switch scope {
|
||||
case database.ParameterScopeWorkspace:
|
||||
return q.db.GetWorkspaceByID(ctx, scopeID)
|
||||
case database.ParameterScopeImportJob:
|
||||
var version database.TemplateVersion
|
||||
version, err = q.db.GetTemplateVersionByJobID(ctx, scopeID)
|
||||
if err != nil && !errors.Is(err, sql.ErrNoRows) {
|
||||
return nil, err
|
||||
}
|
||||
resource = version.RBACObjectNoTemplate()
|
||||
|
||||
var template database.Template
|
||||
template, err = q.db.GetTemplateByID(ctx, version.TemplateID.UUID)
|
||||
if err == nil {
|
||||
resource = version.RBACObject(template)
|
||||
} else if err != nil && !xerrors.Is(err, sql.ErrNoRows) {
|
||||
return nil, err
|
||||
}
|
||||
return resource, nil
|
||||
case database.ParameterScopeTemplate:
|
||||
return q.db.GetTemplateByID(ctx, scopeID)
|
||||
default:
|
||||
return nil, xerrors.Errorf("Parameter scope %q unsupported", scope)
|
||||
}
|
||||
}
|
||||
|
||||
func (q *querier) InsertParameterValue(ctx context.Context, arg database.InsertParameterValueParams) (database.ParameterValue, error) {
|
||||
resource, err := q.parameterRBACResource(ctx, arg.Scope, arg.ScopeID)
|
||||
if err != nil {
|
||||
return database.ParameterValue{}, err
|
||||
}
|
||||
|
||||
err = q.authorizeContext(ctx, rbac.ActionUpdate, resource)
|
||||
if err != nil {
|
||||
return database.ParameterValue{}, err
|
||||
}
|
||||
|
||||
return q.db.InsertParameterValue(ctx, arg)
|
||||
}
|
||||
|
||||
func (q *querier) ParameterValue(ctx context.Context, id uuid.UUID) (database.ParameterValue, error) {
|
||||
parameter, err := q.db.ParameterValue(ctx, id)
|
||||
if err != nil {
|
||||
return database.ParameterValue{}, err
|
||||
}
|
||||
|
||||
resource, err := q.parameterRBACResource(ctx, parameter.Scope, parameter.ScopeID)
|
||||
if err != nil {
|
||||
return database.ParameterValue{}, err
|
||||
}
|
||||
|
||||
err = q.authorizeContext(ctx, rbac.ActionRead, resource)
|
||||
if err != nil {
|
||||
return database.ParameterValue{}, err
|
||||
}
|
||||
|
||||
return parameter, nil
|
||||
}
|
||||
|
||||
// ParameterValues is implemented as an all or nothing query. If the user is not
|
||||
// able to read a single parameter value, then the entire query is denied.
|
||||
// This should likely be revisited and see if the usage of this function cannot be changed.
|
||||
func (q *querier) ParameterValues(ctx context.Context, arg database.ParameterValuesParams) ([]database.ParameterValue, error) {
|
||||
// This is a bit of a special case. Each parameter value returned might have a different scope. This could likely
|
||||
// be implemented in a more efficient manner.
|
||||
values, err := q.db.ParameterValues(ctx, arg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cached := make(map[uuid.UUID]bool)
|
||||
for _, value := range values {
|
||||
// If we already checked this scopeID, then we can skip it.
|
||||
// All scope ids are uuids of objects and universally unique.
|
||||
if allowed := cached[value.ScopeID]; allowed {
|
||||
continue
|
||||
}
|
||||
rbacObj, err := q.parameterRBACResource(ctx, value.Scope, value.ScopeID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = q.authorizeContext(ctx, rbac.ActionRead, rbacObj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cached[value.ScopeID] = true
|
||||
}
|
||||
|
||||
return values, nil
|
||||
}
|
||||
|
||||
func (q *querier) GetParameterSchemasByJobID(ctx context.Context, jobID uuid.UUID) ([]database.ParameterSchema, error) {
|
||||
version, err := q.db.GetTemplateVersionByJobID(ctx, jobID)
|
||||
if err != nil {
|
||||
@ -641,40 +547,6 @@ func (q *querier) GetParameterSchemasByJobID(ctx context.Context, jobID uuid.UUI
|
||||
return q.db.GetParameterSchemasByJobID(ctx, jobID)
|
||||
}
|
||||
|
||||
func (q *querier) GetParameterValueByScopeAndName(ctx context.Context, arg database.GetParameterValueByScopeAndNameParams) (database.ParameterValue, error) {
|
||||
resource, err := q.parameterRBACResource(ctx, arg.Scope, arg.ScopeID)
|
||||
if err != nil {
|
||||
return database.ParameterValue{}, err
|
||||
}
|
||||
|
||||
err = q.authorizeContext(ctx, rbac.ActionRead, resource)
|
||||
if err != nil {
|
||||
return database.ParameterValue{}, err
|
||||
}
|
||||
|
||||
return q.db.GetParameterValueByScopeAndName(ctx, arg)
|
||||
}
|
||||
|
||||
func (q *querier) DeleteParameterValueByID(ctx context.Context, id uuid.UUID) error {
|
||||
parameter, err := q.db.ParameterValue(ctx, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
resource, err := q.parameterRBACResource(ctx, parameter.Scope, parameter.ScopeID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// A deleted param is still updating the underlying resource for the scope.
|
||||
err = q.authorizeContext(ctx, rbac.ActionUpdate, resource)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return q.db.DeleteParameterValueByID(ctx, id)
|
||||
}
|
||||
|
||||
func (q *querier) GetPreviousTemplateVersion(ctx context.Context, arg database.GetPreviousTemplateVersionParams) (database.TemplateVersion, error) {
|
||||
// An actor can read the previous template version if they can read the related template.
|
||||
// If no linked template exists, we check if the actor can read *a* template.
|
||||
|
@ -468,106 +468,6 @@ func (s *MethodTestSuite) TestWorkspaceProxy() {
|
||||
}))
|
||||
}
|
||||
|
||||
func (s *MethodTestSuite) TestParameters() {
|
||||
s.Run("Workspace/InsertParameterValue", s.Subtest(func(db database.Store, check *expects) {
|
||||
w := dbgen.Workspace(s.T(), db, database.Workspace{})
|
||||
check.Args(database.InsertParameterValueParams{
|
||||
ScopeID: w.ID,
|
||||
Scope: database.ParameterScopeWorkspace,
|
||||
SourceScheme: database.ParameterSourceSchemeNone,
|
||||
DestinationScheme: database.ParameterDestinationSchemeNone,
|
||||
}).Asserts(w, rbac.ActionUpdate)
|
||||
}))
|
||||
s.Run("TemplateVersionNoTemplate/InsertParameterValue", s.Subtest(func(db database.Store, check *expects) {
|
||||
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
||||
v := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{JobID: j.ID, TemplateID: uuid.NullUUID{Valid: false}})
|
||||
check.Args(database.InsertParameterValueParams{
|
||||
ScopeID: j.ID,
|
||||
Scope: database.ParameterScopeImportJob,
|
||||
SourceScheme: database.ParameterSourceSchemeNone,
|
||||
DestinationScheme: database.ParameterDestinationSchemeNone,
|
||||
}).Asserts(v.RBACObjectNoTemplate(), rbac.ActionUpdate)
|
||||
}))
|
||||
s.Run("TemplateVersionTemplate/InsertParameterValue", s.Subtest(func(db database.Store, check *expects) {
|
||||
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
||||
tpl := dbgen.Template(s.T(), db, database.Template{})
|
||||
v := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
|
||||
JobID: j.ID,
|
||||
TemplateID: uuid.NullUUID{
|
||||
UUID: tpl.ID,
|
||||
Valid: true,
|
||||
},
|
||||
},
|
||||
)
|
||||
check.Args(database.InsertParameterValueParams{
|
||||
ScopeID: j.ID,
|
||||
Scope: database.ParameterScopeImportJob,
|
||||
SourceScheme: database.ParameterSourceSchemeNone,
|
||||
DestinationScheme: database.ParameterDestinationSchemeNone,
|
||||
}).Asserts(v.RBACObject(tpl), rbac.ActionUpdate)
|
||||
}))
|
||||
s.Run("Template/InsertParameterValue", s.Subtest(func(db database.Store, check *expects) {
|
||||
tpl := dbgen.Template(s.T(), db, database.Template{})
|
||||
check.Args(database.InsertParameterValueParams{
|
||||
ScopeID: tpl.ID,
|
||||
Scope: database.ParameterScopeTemplate,
|
||||
SourceScheme: database.ParameterSourceSchemeNone,
|
||||
DestinationScheme: database.ParameterDestinationSchemeNone,
|
||||
}).Asserts(tpl, rbac.ActionUpdate)
|
||||
}))
|
||||
s.Run("Template/ParameterValue", s.Subtest(func(db database.Store, check *expects) {
|
||||
tpl := dbgen.Template(s.T(), db, database.Template{})
|
||||
pv := dbgen.ParameterValue(s.T(), db, database.ParameterValue{
|
||||
ScopeID: tpl.ID,
|
||||
Scope: database.ParameterScopeTemplate,
|
||||
})
|
||||
check.Args(pv.ID).Asserts(tpl, rbac.ActionRead).Returns(pv)
|
||||
}))
|
||||
s.Run("ParameterValues", s.Subtest(func(db database.Store, check *expects) {
|
||||
tpl := dbgen.Template(s.T(), db, database.Template{})
|
||||
a := dbgen.ParameterValue(s.T(), db, database.ParameterValue{
|
||||
ScopeID: tpl.ID,
|
||||
Scope: database.ParameterScopeTemplate,
|
||||
})
|
||||
w := dbgen.Workspace(s.T(), db, database.Workspace{})
|
||||
b := dbgen.ParameterValue(s.T(), db, database.ParameterValue{
|
||||
ScopeID: w.ID,
|
||||
Scope: database.ParameterScopeWorkspace,
|
||||
})
|
||||
check.Args(database.ParameterValuesParams{
|
||||
IDs: []uuid.UUID{a.ID, b.ID},
|
||||
}).Asserts(tpl, rbac.ActionRead, w, rbac.ActionRead).Returns(slice.New(a, b))
|
||||
}))
|
||||
s.Run("GetParameterSchemasByJobID", s.Subtest(func(db database.Store, check *expects) {
|
||||
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
||||
tpl := dbgen.Template(s.T(), db, database.Template{})
|
||||
tv := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{JobID: j.ID, TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true}})
|
||||
a := dbgen.ParameterSchema(s.T(), db, database.ParameterSchema{JobID: j.ID})
|
||||
check.Args(j.ID).Asserts(tv.RBACObject(tpl), rbac.ActionRead).
|
||||
Returns([]database.ParameterSchema{a})
|
||||
}))
|
||||
s.Run("Workspace/GetParameterValueByScopeAndName", s.Subtest(func(db database.Store, check *expects) {
|
||||
w := dbgen.Workspace(s.T(), db, database.Workspace{})
|
||||
v := dbgen.ParameterValue(s.T(), db, database.ParameterValue{
|
||||
Scope: database.ParameterScopeWorkspace,
|
||||
ScopeID: w.ID,
|
||||
})
|
||||
check.Args(database.GetParameterValueByScopeAndNameParams{
|
||||
Scope: v.Scope,
|
||||
ScopeID: v.ScopeID,
|
||||
Name: v.Name,
|
||||
}).Asserts(w, rbac.ActionRead).Returns(v)
|
||||
}))
|
||||
s.Run("Workspace/DeleteParameterValueByID", s.Subtest(func(db database.Store, check *expects) {
|
||||
w := dbgen.Workspace(s.T(), db, database.Workspace{})
|
||||
v := dbgen.ParameterValue(s.T(), db, database.ParameterValue{
|
||||
Scope: database.ParameterScopeWorkspace,
|
||||
ScopeID: w.ID,
|
||||
})
|
||||
check.Args(v.ID).Asserts(w, rbac.ActionUpdate).Returns()
|
||||
}))
|
||||
}
|
||||
|
||||
func (s *MethodTestSuite) TestTemplate() {
|
||||
s.Run("GetPreviousTemplateVersion", s.Subtest(func(db database.Store, check *expects) {
|
||||
tvid := uuid.New()
|
||||
|
@ -314,13 +314,6 @@ func (q *querier) GetWorkspacesEligibleForAutoStartStop(ctx context.Context, now
|
||||
return q.db.GetWorkspacesEligibleForAutoStartStop(ctx, now)
|
||||
}
|
||||
|
||||
func (q *querier) GetParameterSchemasCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.ParameterSchema, error) {
|
||||
if err := q.authorizeContext(ctx, rbac.ActionRead, rbac.ResourceSystem); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return q.db.GetParameterSchemasCreatedAfter(ctx, createdAt)
|
||||
}
|
||||
|
||||
// TODO: We need to create a ProvisionerJob resource type
|
||||
func (q *querier) GetProvisionerJobsCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.ProvisionerJob, error) {
|
||||
// if err := q.authorizeContext(ctx, rbac.ActionRead, rbac.ResourceSystem); err != nil {
|
||||
@ -432,13 +425,6 @@ func (q *querier) InsertWorkspaceResource(ctx context.Context, arg database.Inse
|
||||
return q.db.InsertWorkspaceResource(ctx, arg)
|
||||
}
|
||||
|
||||
func (q *querier) InsertParameterSchema(ctx context.Context, arg database.InsertParameterSchemaParams) (database.ParameterSchema, error) {
|
||||
if err := q.authorizeContext(ctx, rbac.ActionCreate, rbac.ResourceSystem); err != nil {
|
||||
return database.ParameterSchema{}, err
|
||||
}
|
||||
return q.db.InsertParameterSchema(ctx, arg)
|
||||
}
|
||||
|
||||
func (q *querier) GetWorkspaceProxyByHostname(ctx context.Context, params database.GetWorkspaceProxyByHostnameParams) (database.WorkspaceProxy, error) {
|
||||
if err := q.authorizeContext(ctx, rbac.ActionRead, rbac.ResourceSystem); err != nil {
|
||||
return database.WorkspaceProxy{}, err
|
||||
|
@ -133,10 +133,6 @@ func (s *MethodTestSuite) TestSystemFunctions() {
|
||||
s.Run("DeleteOldWorkspaceAgentStats", s.Subtest(func(db database.Store, check *expects) {
|
||||
check.Args().Asserts(rbac.ResourceSystem, rbac.ActionDelete)
|
||||
}))
|
||||
s.Run("GetParameterSchemasCreatedAfter", s.Subtest(func(db database.Store, check *expects) {
|
||||
_ = dbgen.ParameterSchema(s.T(), db, database.ParameterSchema{CreatedAt: time.Now().Add(-time.Hour)})
|
||||
check.Args(time.Now()).Asserts(rbac.ResourceSystem, rbac.ActionRead)
|
||||
}))
|
||||
s.Run("GetProvisionerJobsCreatedAfter", s.Subtest(func(db database.Store, check *expects) {
|
||||
// TODO: add provisioner job resource type
|
||||
_ = dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{CreatedAt: time.Now().Add(-time.Hour)})
|
||||
@ -297,12 +293,4 @@ func (s *MethodTestSuite) TestSystemFunctions() {
|
||||
Transition: database.WorkspaceTransitionStart,
|
||||
}).Asserts(rbac.ResourceSystem, rbac.ActionCreate)
|
||||
}))
|
||||
s.Run("InsertParameterSchema", s.Subtest(func(db database.Store, check *expects) {
|
||||
check.Args(database.InsertParameterSchemaParams{
|
||||
ID: uuid.New(),
|
||||
DefaultSourceScheme: database.ParameterSourceSchemeNone,
|
||||
DefaultDestinationScheme: database.ParameterDestinationSchemeNone,
|
||||
ValidationTypeSystem: database.ParameterTypeSystemNone,
|
||||
}).Asserts(rbac.ResourceSystem, rbac.ActionCreate)
|
||||
}))
|
||||
}
|
||||
|
@ -55,7 +55,6 @@ func New() database.Store {
|
||||
files: make([]database.File, 0),
|
||||
gitSSHKey: make([]database.GitSSHKey, 0),
|
||||
parameterSchemas: make([]database.ParameterSchema, 0),
|
||||
parameterValues: make([]database.ParameterValue, 0),
|
||||
provisionerDaemons: make([]database.ProvisionerDaemon, 0),
|
||||
workspaceAgents: make([]database.WorkspaceAgent, 0),
|
||||
provisionerJobLogs: make([]database.ProvisionerJobLog, 0),
|
||||
@ -124,7 +123,6 @@ type data struct {
|
||||
groups []database.Group
|
||||
licenses []database.License
|
||||
parameterSchemas []database.ParameterSchema
|
||||
parameterValues []database.ParameterValue
|
||||
provisionerDaemons []database.ProvisionerDaemon
|
||||
provisionerJobLogs []database.ProvisionerJobLog
|
||||
provisionerJobs []database.ProvisionerJob
|
||||
@ -575,34 +573,6 @@ func (q *fakeQuerier) GetTemplateAverageBuildTime(ctx context.Context, arg datab
|
||||
return row, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) ParameterValue(_ context.Context, id uuid.UUID) (database.ParameterValue, error) {
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
|
||||
for _, parameterValue := range q.parameterValues {
|
||||
if parameterValue.ID != id {
|
||||
continue
|
||||
}
|
||||
return parameterValue, nil
|
||||
}
|
||||
return database.ParameterValue{}, sql.ErrNoRows
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) DeleteParameterValueByID(_ context.Context, id uuid.UUID) error {
|
||||
q.mutex.Lock()
|
||||
defer q.mutex.Unlock()
|
||||
|
||||
for index, parameterValue := range q.parameterValues {
|
||||
if parameterValue.ID != id {
|
||||
continue
|
||||
}
|
||||
q.parameterValues[index] = q.parameterValues[len(q.parameterValues)-1]
|
||||
q.parameterValues = q.parameterValues[:len(q.parameterValues)-1]
|
||||
return nil
|
||||
}
|
||||
return sql.ErrNoRows
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) GetAPIKeyByID(_ context.Context, id string) (database.APIKey, error) {
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
@ -1893,40 +1863,6 @@ func (q *fakeQuerier) GetOrganizationsByUserID(_ context.Context, userID uuid.UU
|
||||
return organizations, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) ParameterValues(_ context.Context, arg database.ParameterValuesParams) ([]database.ParameterValue, error) {
|
||||
if err := validateDatabaseType(arg); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
|
||||
parameterValues := make([]database.ParameterValue, 0)
|
||||
for _, parameterValue := range q.parameterValues {
|
||||
if len(arg.Scopes) > 0 {
|
||||
if !slice.Contains(arg.Scopes, parameterValue.Scope) {
|
||||
continue
|
||||
}
|
||||
}
|
||||
if len(arg.ScopeIds) > 0 {
|
||||
if !slice.Contains(arg.ScopeIds, parameterValue.ScopeID) {
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if len(arg.IDs) > 0 {
|
||||
if !slice.Contains(arg.IDs, parameterValue.ID) {
|
||||
continue
|
||||
}
|
||||
}
|
||||
parameterValues = append(parameterValues, parameterValue)
|
||||
}
|
||||
if len(parameterValues) == 0 {
|
||||
return nil, sql.ErrNoRows
|
||||
}
|
||||
return parameterValues, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) GetTemplateByID(ctx context.Context, id uuid.UUID) (database.Template, error) {
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
@ -2329,42 +2265,6 @@ func (q *fakeQuerier) GetParameterSchemasByJobID(_ context.Context, jobID uuid.U
|
||||
return parameters, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) GetParameterSchemasCreatedAfter(_ context.Context, after time.Time) ([]database.ParameterSchema, error) {
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
|
||||
parameters := make([]database.ParameterSchema, 0)
|
||||
for _, parameterSchema := range q.parameterSchemas {
|
||||
if parameterSchema.CreatedAt.After(after) {
|
||||
parameters = append(parameters, parameterSchema)
|
||||
}
|
||||
}
|
||||
return parameters, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) GetParameterValueByScopeAndName(_ context.Context, arg database.GetParameterValueByScopeAndNameParams) (database.ParameterValue, error) {
|
||||
if err := validateDatabaseType(arg); err != nil {
|
||||
return database.ParameterValue{}, err
|
||||
}
|
||||
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
|
||||
for _, parameterValue := range q.parameterValues {
|
||||
if parameterValue.Scope != arg.Scope {
|
||||
continue
|
||||
}
|
||||
if parameterValue.ScopeID != arg.ScopeID {
|
||||
continue
|
||||
}
|
||||
if parameterValue.Name != arg.Name {
|
||||
continue
|
||||
}
|
||||
return parameterValue, nil
|
||||
}
|
||||
return database.ParameterValue{}, sql.ErrNoRows
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) GetTemplates(_ context.Context) ([]database.Template, error) {
|
||||
q.mutex.RLock()
|
||||
defer q.mutex.RUnlock()
|
||||
@ -2977,30 +2877,6 @@ func (q *fakeQuerier) InsertOrganizationMember(_ context.Context, arg database.I
|
||||
return organizationMember, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) InsertParameterValue(_ context.Context, arg database.InsertParameterValueParams) (database.ParameterValue, error) {
|
||||
if err := validateDatabaseType(arg); err != nil {
|
||||
return database.ParameterValue{}, err
|
||||
}
|
||||
|
||||
q.mutex.Lock()
|
||||
defer q.mutex.Unlock()
|
||||
|
||||
//nolint:gosimple
|
||||
parameterValue := database.ParameterValue{
|
||||
ID: arg.ID,
|
||||
Name: arg.Name,
|
||||
CreatedAt: arg.CreatedAt,
|
||||
UpdatedAt: arg.UpdatedAt,
|
||||
Scope: arg.Scope,
|
||||
ScopeID: arg.ScopeID,
|
||||
SourceScheme: arg.SourceScheme,
|
||||
SourceValue: arg.SourceValue,
|
||||
DestinationScheme: arg.DestinationScheme,
|
||||
}
|
||||
q.parameterValues = append(q.parameterValues, parameterValue)
|
||||
return parameterValue, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) InsertTemplate(_ context.Context, arg database.InsertTemplateParams) (database.Template, error) {
|
||||
if err := validateDatabaseType(arg); err != nil {
|
||||
return database.Template{}, err
|
||||
@ -3139,38 +3015,6 @@ func (q *fakeQuerier) InsertProvisionerJobLogs(_ context.Context, arg database.I
|
||||
return logs, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) InsertParameterSchema(_ context.Context, arg database.InsertParameterSchemaParams) (database.ParameterSchema, error) {
|
||||
if err := validateDatabaseType(arg); err != nil {
|
||||
return database.ParameterSchema{}, err
|
||||
}
|
||||
|
||||
q.mutex.Lock()
|
||||
defer q.mutex.Unlock()
|
||||
|
||||
//nolint:gosimple
|
||||
param := database.ParameterSchema{
|
||||
ID: arg.ID,
|
||||
CreatedAt: arg.CreatedAt,
|
||||
JobID: arg.JobID,
|
||||
Name: arg.Name,
|
||||
Description: arg.Description,
|
||||
DefaultSourceScheme: arg.DefaultSourceScheme,
|
||||
DefaultSourceValue: arg.DefaultSourceValue,
|
||||
AllowOverrideSource: arg.AllowOverrideSource,
|
||||
DefaultDestinationScheme: arg.DefaultDestinationScheme,
|
||||
AllowOverrideDestination: arg.AllowOverrideDestination,
|
||||
DefaultRefresh: arg.DefaultRefresh,
|
||||
RedisplayValue: arg.RedisplayValue,
|
||||
ValidationError: arg.ValidationError,
|
||||
ValidationCondition: arg.ValidationCondition,
|
||||
ValidationTypeSystem: arg.ValidationTypeSystem,
|
||||
ValidationValueType: arg.ValidationValueType,
|
||||
Index: arg.Index,
|
||||
}
|
||||
q.parameterSchemas = append(q.parameterSchemas, param)
|
||||
return param, nil
|
||||
}
|
||||
|
||||
func (q *fakeQuerier) InsertProvisionerDaemon(_ context.Context, arg database.InsertProvisionerDaemonParams) (database.ProvisionerDaemon, error) {
|
||||
if err := validateDatabaseType(arg); err != nil {
|
||||
return database.ProvisionerDaemon{}, err
|
||||
|
@ -439,46 +439,6 @@ func TemplateVersionVariable(t testing.TB, db database.Store, orig database.Temp
|
||||
return version
|
||||
}
|
||||
|
||||
func ParameterSchema(t testing.TB, db database.Store, seed database.ParameterSchema) database.ParameterSchema {
|
||||
scheme, err := db.InsertParameterSchema(context.Background(), database.InsertParameterSchemaParams{
|
||||
ID: takeFirst(seed.ID, uuid.New()),
|
||||
JobID: takeFirst(seed.JobID, uuid.New()),
|
||||
CreatedAt: takeFirst(seed.CreatedAt, database.Now()),
|
||||
Name: takeFirst(seed.Name, namesgenerator.GetRandomName(1)),
|
||||
Description: takeFirst(seed.Description, namesgenerator.GetRandomName(1)),
|
||||
DefaultSourceScheme: takeFirst(seed.DefaultSourceScheme, database.ParameterSourceSchemeNone),
|
||||
DefaultSourceValue: takeFirst(seed.DefaultSourceValue, ""),
|
||||
AllowOverrideSource: takeFirst(seed.AllowOverrideSource, false),
|
||||
DefaultDestinationScheme: takeFirst(seed.DefaultDestinationScheme, database.ParameterDestinationSchemeNone),
|
||||
AllowOverrideDestination: takeFirst(seed.AllowOverrideDestination, false),
|
||||
DefaultRefresh: takeFirst(seed.DefaultRefresh, ""),
|
||||
RedisplayValue: takeFirst(seed.RedisplayValue, false),
|
||||
ValidationError: takeFirst(seed.ValidationError, ""),
|
||||
ValidationCondition: takeFirst(seed.ValidationCondition, ""),
|
||||
ValidationTypeSystem: takeFirst(seed.ValidationTypeSystem, database.ParameterTypeSystemNone),
|
||||
ValidationValueType: takeFirst(seed.ValidationValueType, ""),
|
||||
Index: takeFirst(seed.Index, 1),
|
||||
})
|
||||
require.NoError(t, err, "insert parameter scheme")
|
||||
return scheme
|
||||
}
|
||||
|
||||
func ParameterValue(t testing.TB, db database.Store, seed database.ParameterValue) database.ParameterValue {
|
||||
scheme, err := db.InsertParameterValue(context.Background(), database.InsertParameterValueParams{
|
||||
ID: takeFirst(seed.ID, uuid.New()),
|
||||
Name: takeFirst(seed.Name, namesgenerator.GetRandomName(1)),
|
||||
CreatedAt: takeFirst(seed.CreatedAt, database.Now()),
|
||||
UpdatedAt: takeFirst(seed.UpdatedAt, database.Now()),
|
||||
Scope: takeFirst(seed.Scope, database.ParameterScopeWorkspace),
|
||||
ScopeID: takeFirst(seed.ScopeID, uuid.New()),
|
||||
SourceScheme: takeFirst(seed.SourceScheme, database.ParameterSourceSchemeNone),
|
||||
SourceValue: takeFirst(seed.SourceValue, ""),
|
||||
DestinationScheme: takeFirst(seed.DestinationScheme, database.ParameterDestinationSchemeNone),
|
||||
})
|
||||
require.NoError(t, err, "insert parameter value")
|
||||
return scheme
|
||||
}
|
||||
|
||||
func WorkspaceAgentStat(t testing.TB, db database.Store, orig database.WorkspaceAgentStat) database.WorkspaceAgentStat {
|
||||
if orig.ConnectionsByProto == nil {
|
||||
orig.ConnectionsByProto = json.RawMessage([]byte("{}"))
|
||||
|
@ -153,24 +153,6 @@ func TestGenerator(t *testing.T) {
|
||||
require.Equal(t, exp, must(db.GetTemplateVersionByID(context.Background(), exp.ID)))
|
||||
})
|
||||
|
||||
t.Run("ParameterSchema", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
db := dbfake.New()
|
||||
exp := dbgen.ParameterSchema(t, db, database.ParameterSchema{})
|
||||
require.Equal(t, []database.ParameterSchema{exp}, must(db.GetParameterSchemasByJobID(context.Background(), exp.JobID)))
|
||||
})
|
||||
|
||||
t.Run("ParameterValue", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
db := dbfake.New()
|
||||
exp := dbgen.ParameterValue(t, db, database.ParameterValue{})
|
||||
require.Equal(t, exp, must(db.GetParameterValueByScopeAndName(context.Background(), database.GetParameterValueByScopeAndNameParams{
|
||||
Scope: exp.Scope,
|
||||
ScopeID: exp.ScopeID,
|
||||
Name: exp.Name,
|
||||
})))
|
||||
})
|
||||
|
||||
t.Run("WorkspaceBuild", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
db := dbfake.New()
|
||||
|
@ -154,13 +154,6 @@ func (m metricsStore) DeleteOldWorkspaceAgentStats(ctx context.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (m metricsStore) DeleteParameterValueByID(ctx context.Context, id uuid.UUID) error {
|
||||
start := time.Now()
|
||||
err := m.s.DeleteParameterValueByID(ctx, id)
|
||||
m.queryLatencies.WithLabelValues("DeleteParameterValueByID").Observe(time.Since(start).Seconds())
|
||||
return err
|
||||
}
|
||||
|
||||
func (m metricsStore) DeleteReplicasUpdatedBefore(ctx context.Context, updatedAt time.Time) error {
|
||||
start := time.Now()
|
||||
err := m.s.DeleteReplicasUpdatedBefore(ctx, updatedAt)
|
||||
@ -441,20 +434,6 @@ func (m metricsStore) GetParameterSchemasByJobID(ctx context.Context, jobID uuid
|
||||
return schemas, err
|
||||
}
|
||||
|
||||
func (m metricsStore) GetParameterSchemasCreatedAfter(ctx context.Context, createdAt time.Time) ([]database.ParameterSchema, error) {
|
||||
start := time.Now()
|
||||
schemas, err := m.s.GetParameterSchemasCreatedAfter(ctx, createdAt)
|
||||
m.queryLatencies.WithLabelValues("GetParameterSchemasCreatedAfter").Observe(time.Since(start).Seconds())
|
||||
return schemas, err
|
||||
}
|
||||
|
||||
func (m metricsStore) GetParameterValueByScopeAndName(ctx context.Context, arg database.GetParameterValueByScopeAndNameParams) (database.ParameterValue, error) {
|
||||
start := time.Now()
|
||||
value, err := m.s.GetParameterValueByScopeAndName(ctx, arg)
|
||||
m.queryLatencies.WithLabelValues("GetParameterValueByScopeAndName").Observe(time.Since(start).Seconds())
|
||||
return value, err
|
||||
}
|
||||
|
||||
func (m metricsStore) GetPreviousTemplateVersion(ctx context.Context, arg database.GetPreviousTemplateVersionParams) (database.TemplateVersion, error) {
|
||||
start := time.Now()
|
||||
version, err := m.s.GetPreviousTemplateVersion(ctx, arg)
|
||||
@ -1022,20 +1001,6 @@ func (m metricsStore) InsertOrganizationMember(ctx context.Context, arg database
|
||||
return member, err
|
||||
}
|
||||
|
||||
func (m metricsStore) InsertParameterSchema(ctx context.Context, arg database.InsertParameterSchemaParams) (database.ParameterSchema, error) {
|
||||
start := time.Now()
|
||||
schema, err := m.s.InsertParameterSchema(ctx, arg)
|
||||
m.queryLatencies.WithLabelValues("InsertParameterSchema").Observe(time.Since(start).Seconds())
|
||||
return schema, err
|
||||
}
|
||||
|
||||
func (m metricsStore) InsertParameterValue(ctx context.Context, arg database.InsertParameterValueParams) (database.ParameterValue, error) {
|
||||
start := time.Now()
|
||||
value, err := m.s.InsertParameterValue(ctx, arg)
|
||||
m.queryLatencies.WithLabelValues("InsertParameterValue").Observe(time.Since(start).Seconds())
|
||||
return value, err
|
||||
}
|
||||
|
||||
func (m metricsStore) InsertProvisionerDaemon(ctx context.Context, arg database.InsertProvisionerDaemonParams) (database.ProvisionerDaemon, error) {
|
||||
start := time.Now()
|
||||
daemon, err := m.s.InsertProvisionerDaemon(ctx, arg)
|
||||
@ -1190,20 +1155,6 @@ func (m metricsStore) InsertWorkspaceResourceMetadata(ctx context.Context, arg d
|
||||
return metadata, err
|
||||
}
|
||||
|
||||
func (m metricsStore) ParameterValue(ctx context.Context, id uuid.UUID) (database.ParameterValue, error) {
|
||||
start := time.Now()
|
||||
value, err := m.s.ParameterValue(ctx, id)
|
||||
m.queryLatencies.WithLabelValues("ParameterValue").Observe(time.Since(start).Seconds())
|
||||
return value, err
|
||||
}
|
||||
|
||||
func (m metricsStore) ParameterValues(ctx context.Context, arg database.ParameterValuesParams) ([]database.ParameterValue, error) {
|
||||
start := time.Now()
|
||||
values, err := m.s.ParameterValues(ctx, arg)
|
||||
m.queryLatencies.WithLabelValues("ParameterValues").Observe(time.Since(start).Seconds())
|
||||
return values, err
|
||||
}
|
||||
|
||||
func (m metricsStore) RegisterWorkspaceProxy(ctx context.Context, arg database.RegisterWorkspaceProxyParams) (database.WorkspaceProxy, error) {
|
||||
start := time.Now()
|
||||
proxy, err := m.s.RegisterWorkspaceProxy(ctx, arg)
|
||||
|
@ -209,20 +209,6 @@ func (mr *MockStoreMockRecorder) DeleteOldWorkspaceAgentStats(arg0 interface{})
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOldWorkspaceAgentStats", reflect.TypeOf((*MockStore)(nil).DeleteOldWorkspaceAgentStats), arg0)
|
||||
}
|
||||
|
||||
// DeleteParameterValueByID mocks base method.
|
||||
func (m *MockStore) DeleteParameterValueByID(arg0 context.Context, arg1 uuid.UUID) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "DeleteParameterValueByID", arg0, arg1)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// DeleteParameterValueByID indicates an expected call of DeleteParameterValueByID.
|
||||
func (mr *MockStoreMockRecorder) DeleteParameterValueByID(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteParameterValueByID", reflect.TypeOf((*MockStore)(nil).DeleteParameterValueByID), arg0, arg1)
|
||||
}
|
||||
|
||||
// DeleteReplicasUpdatedBefore mocks base method.
|
||||
func (m *MockStore) DeleteReplicasUpdatedBefore(arg0 context.Context, arg1 time.Time) error {
|
||||
m.ctrl.T.Helper()
|
||||
@ -867,36 +853,6 @@ func (mr *MockStoreMockRecorder) GetParameterSchemasByJobID(arg0, arg1 interface
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetParameterSchemasByJobID", reflect.TypeOf((*MockStore)(nil).GetParameterSchemasByJobID), arg0, arg1)
|
||||
}
|
||||
|
||||
// GetParameterSchemasCreatedAfter mocks base method.
|
||||
func (m *MockStore) GetParameterSchemasCreatedAfter(arg0 context.Context, arg1 time.Time) ([]database.ParameterSchema, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetParameterSchemasCreatedAfter", arg0, arg1)
|
||||
ret0, _ := ret[0].([]database.ParameterSchema)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetParameterSchemasCreatedAfter indicates an expected call of GetParameterSchemasCreatedAfter.
|
||||
func (mr *MockStoreMockRecorder) GetParameterSchemasCreatedAfter(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetParameterSchemasCreatedAfter", reflect.TypeOf((*MockStore)(nil).GetParameterSchemasCreatedAfter), arg0, arg1)
|
||||
}
|
||||
|
||||
// GetParameterValueByScopeAndName mocks base method.
|
||||
func (m *MockStore) GetParameterValueByScopeAndName(arg0 context.Context, arg1 database.GetParameterValueByScopeAndNameParams) (database.ParameterValue, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "GetParameterValueByScopeAndName", arg0, arg1)
|
||||
ret0, _ := ret[0].(database.ParameterValue)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// GetParameterValueByScopeAndName indicates an expected call of GetParameterValueByScopeAndName.
|
||||
func (mr *MockStoreMockRecorder) GetParameterValueByScopeAndName(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetParameterValueByScopeAndName", reflect.TypeOf((*MockStore)(nil).GetParameterValueByScopeAndName), arg0, arg1)
|
||||
}
|
||||
|
||||
// GetPreviousTemplateVersion mocks base method.
|
||||
func (m *MockStore) GetPreviousTemplateVersion(arg0 context.Context, arg1 database.GetPreviousTemplateVersionParams) (database.TemplateVersion, error) {
|
||||
m.ctrl.T.Helper()
|
||||
@ -2153,36 +2109,6 @@ func (mr *MockStoreMockRecorder) InsertOrganizationMember(arg0, arg1 interface{}
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertOrganizationMember", reflect.TypeOf((*MockStore)(nil).InsertOrganizationMember), arg0, arg1)
|
||||
}
|
||||
|
||||
// InsertParameterSchema mocks base method.
|
||||
func (m *MockStore) InsertParameterSchema(arg0 context.Context, arg1 database.InsertParameterSchemaParams) (database.ParameterSchema, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "InsertParameterSchema", arg0, arg1)
|
||||
ret0, _ := ret[0].(database.ParameterSchema)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// InsertParameterSchema indicates an expected call of InsertParameterSchema.
|
||||
func (mr *MockStoreMockRecorder) InsertParameterSchema(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertParameterSchema", reflect.TypeOf((*MockStore)(nil).InsertParameterSchema), arg0, arg1)
|
||||
}
|
||||
|
||||
// InsertParameterValue mocks base method.
|
||||
func (m *MockStore) InsertParameterValue(arg0 context.Context, arg1 database.InsertParameterValueParams) (database.ParameterValue, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "InsertParameterValue", arg0, arg1)
|
||||
ret0, _ := ret[0].(database.ParameterValue)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// InsertParameterValue indicates an expected call of InsertParameterValue.
|
||||
func (mr *MockStoreMockRecorder) InsertParameterValue(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertParameterValue", reflect.TypeOf((*MockStore)(nil).InsertParameterValue), arg0, arg1)
|
||||
}
|
||||
|
||||
// InsertProvisionerDaemon mocks base method.
|
||||
func (m *MockStore) InsertProvisionerDaemon(arg0 context.Context, arg1 database.InsertProvisionerDaemonParams) (database.ProvisionerDaemon, error) {
|
||||
m.ctrl.T.Helper()
|
||||
@ -2510,36 +2436,6 @@ func (mr *MockStoreMockRecorder) InsertWorkspaceResourceMetadata(arg0, arg1 inte
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InsertWorkspaceResourceMetadata", reflect.TypeOf((*MockStore)(nil).InsertWorkspaceResourceMetadata), arg0, arg1)
|
||||
}
|
||||
|
||||
// ParameterValue mocks base method.
|
||||
func (m *MockStore) ParameterValue(arg0 context.Context, arg1 uuid.UUID) (database.ParameterValue, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "ParameterValue", arg0, arg1)
|
||||
ret0, _ := ret[0].(database.ParameterValue)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// ParameterValue indicates an expected call of ParameterValue.
|
||||
func (mr *MockStoreMockRecorder) ParameterValue(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ParameterValue", reflect.TypeOf((*MockStore)(nil).ParameterValue), arg0, arg1)
|
||||
}
|
||||
|
||||
// ParameterValues mocks base method.
|
||||
func (m *MockStore) ParameterValues(arg0 context.Context, arg1 database.ParameterValuesParams) ([]database.ParameterValue, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "ParameterValues", arg0, arg1)
|
||||
ret0, _ := ret[0].([]database.ParameterValue)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// ParameterValues indicates an expected call of ParameterValues.
|
||||
func (mr *MockStoreMockRecorder) ParameterValues(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ParameterValues", reflect.TypeOf((*MockStore)(nil).ParameterValues), arg0, arg1)
|
||||
}
|
||||
|
||||
// Ping mocks base method.
|
||||
func (m *MockStore) Ping(arg0 context.Context) (time.Duration, error) {
|
||||
m.ctrl.T.Helper()
|
||||
|
@ -38,7 +38,6 @@ type sqlcQuerier interface {
|
||||
// Logs can take up a lot of space, so it's important we clean up frequently.
|
||||
DeleteOldWorkspaceAgentStartupLogs(ctx context.Context) error
|
||||
DeleteOldWorkspaceAgentStats(ctx context.Context) error
|
||||
DeleteParameterValueByID(ctx context.Context, id uuid.UUID) error
|
||||
DeleteReplicasUpdatedBefore(ctx context.Context, updatedAt time.Time) error
|
||||
GetAPIKeyByID(ctx context.Context, id string) (APIKey, error)
|
||||
// there is no unique constraint on empty token names
|
||||
@ -86,8 +85,6 @@ type sqlcQuerier interface {
|
||||
GetOrganizations(ctx context.Context) ([]Organization, error)
|
||||
GetOrganizationsByUserID(ctx context.Context, userID uuid.UUID) ([]Organization, error)
|
||||
GetParameterSchemasByJobID(ctx context.Context, jobID uuid.UUID) ([]ParameterSchema, error)
|
||||
GetParameterSchemasCreatedAfter(ctx context.Context, createdAt time.Time) ([]ParameterSchema, error)
|
||||
GetParameterValueByScopeAndName(ctx context.Context, arg GetParameterValueByScopeAndNameParams) (ParameterValue, error)
|
||||
GetPreviousTemplateVersion(ctx context.Context, arg GetPreviousTemplateVersionParams) (TemplateVersion, error)
|
||||
GetProvisionerDaemons(ctx context.Context) ([]ProvisionerDaemon, error)
|
||||
GetProvisionerJobByID(ctx context.Context, id uuid.UUID) (ProvisionerJob, error)
|
||||
@ -183,8 +180,6 @@ type sqlcQuerier interface {
|
||||
InsertLicense(ctx context.Context, arg InsertLicenseParams) (License, error)
|
||||
InsertOrganization(ctx context.Context, arg InsertOrganizationParams) (Organization, error)
|
||||
InsertOrganizationMember(ctx context.Context, arg InsertOrganizationMemberParams) (OrganizationMember, error)
|
||||
InsertParameterSchema(ctx context.Context, arg InsertParameterSchemaParams) (ParameterSchema, error)
|
||||
InsertParameterValue(ctx context.Context, arg InsertParameterValueParams) (ParameterValue, 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)
|
||||
@ -208,8 +203,6 @@ type sqlcQuerier interface {
|
||||
InsertWorkspaceProxy(ctx context.Context, arg InsertWorkspaceProxyParams) (WorkspaceProxy, error)
|
||||
InsertWorkspaceResource(ctx context.Context, arg InsertWorkspaceResourceParams) (WorkspaceResource, error)
|
||||
InsertWorkspaceResourceMetadata(ctx context.Context, arg InsertWorkspaceResourceMetadataParams) ([]WorkspaceResourceMetadatum, error)
|
||||
ParameterValue(ctx context.Context, id uuid.UUID) (ParameterValue, error)
|
||||
ParameterValues(ctx context.Context, arg ParameterValuesParams) ([]ParameterValue, error)
|
||||
RegisterWorkspaceProxy(ctx context.Context, arg RegisterWorkspaceProxyParams) (WorkspaceProxy, error)
|
||||
// Non blocking lock. Returns true if the lock was acquired, false otherwise.
|
||||
//
|
||||
|
@ -1935,358 +1935,6 @@ func (q *sqlQuerier) GetParameterSchemasByJobID(ctx context.Context, jobID uuid.
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const getParameterSchemasCreatedAfter = `-- name: GetParameterSchemasCreatedAfter :many
|
||||
SELECT id, created_at, job_id, name, description, default_source_scheme, default_source_value, allow_override_source, default_destination_scheme, allow_override_destination, default_refresh, redisplay_value, validation_error, validation_condition, validation_type_system, validation_value_type, index FROM parameter_schemas WHERE created_at > $1
|
||||
`
|
||||
|
||||
func (q *sqlQuerier) GetParameterSchemasCreatedAfter(ctx context.Context, createdAt time.Time) ([]ParameterSchema, error) {
|
||||
rows, err := q.db.QueryContext(ctx, getParameterSchemasCreatedAfter, createdAt)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []ParameterSchema
|
||||
for rows.Next() {
|
||||
var i ParameterSchema
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.CreatedAt,
|
||||
&i.JobID,
|
||||
&i.Name,
|
||||
&i.Description,
|
||||
&i.DefaultSourceScheme,
|
||||
&i.DefaultSourceValue,
|
||||
&i.AllowOverrideSource,
|
||||
&i.DefaultDestinationScheme,
|
||||
&i.AllowOverrideDestination,
|
||||
&i.DefaultRefresh,
|
||||
&i.RedisplayValue,
|
||||
&i.ValidationError,
|
||||
&i.ValidationCondition,
|
||||
&i.ValidationTypeSystem,
|
||||
&i.ValidationValueType,
|
||||
&i.Index,
|
||||
); 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 insertParameterSchema = `-- name: InsertParameterSchema :one
|
||||
INSERT INTO
|
||||
parameter_schemas (
|
||||
id,
|
||||
created_at,
|
||||
job_id,
|
||||
"name",
|
||||
description,
|
||||
default_source_scheme,
|
||||
default_source_value,
|
||||
allow_override_source,
|
||||
default_destination_scheme,
|
||||
allow_override_destination,
|
||||
default_refresh,
|
||||
redisplay_value,
|
||||
validation_error,
|
||||
validation_condition,
|
||||
validation_type_system,
|
||||
validation_value_type,
|
||||
index
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
$1,
|
||||
$2,
|
||||
$3,
|
||||
$4,
|
||||
$5,
|
||||
$6,
|
||||
$7,
|
||||
$8,
|
||||
$9,
|
||||
$10,
|
||||
$11,
|
||||
$12,
|
||||
$13,
|
||||
$14,
|
||||
$15,
|
||||
$16,
|
||||
$17
|
||||
) RETURNING id, created_at, job_id, name, description, default_source_scheme, default_source_value, allow_override_source, default_destination_scheme, allow_override_destination, default_refresh, redisplay_value, validation_error, validation_condition, validation_type_system, validation_value_type, index
|
||||
`
|
||||
|
||||
type InsertParameterSchemaParams struct {
|
||||
ID uuid.UUID `db:"id" json:"id"`
|
||||
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
||||
JobID uuid.UUID `db:"job_id" json:"job_id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
Description string `db:"description" json:"description"`
|
||||
DefaultSourceScheme ParameterSourceScheme `db:"default_source_scheme" json:"default_source_scheme"`
|
||||
DefaultSourceValue string `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"`
|
||||
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"`
|
||||
Index int32 `db:"index" json:"index"`
|
||||
}
|
||||
|
||||
func (q *sqlQuerier) InsertParameterSchema(ctx context.Context, arg InsertParameterSchemaParams) (ParameterSchema, error) {
|
||||
row := q.db.QueryRowContext(ctx, insertParameterSchema,
|
||||
arg.ID,
|
||||
arg.CreatedAt,
|
||||
arg.JobID,
|
||||
arg.Name,
|
||||
arg.Description,
|
||||
arg.DefaultSourceScheme,
|
||||
arg.DefaultSourceValue,
|
||||
arg.AllowOverrideSource,
|
||||
arg.DefaultDestinationScheme,
|
||||
arg.AllowOverrideDestination,
|
||||
arg.DefaultRefresh,
|
||||
arg.RedisplayValue,
|
||||
arg.ValidationError,
|
||||
arg.ValidationCondition,
|
||||
arg.ValidationTypeSystem,
|
||||
arg.ValidationValueType,
|
||||
arg.Index,
|
||||
)
|
||||
var i ParameterSchema
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.CreatedAt,
|
||||
&i.JobID,
|
||||
&i.Name,
|
||||
&i.Description,
|
||||
&i.DefaultSourceScheme,
|
||||
&i.DefaultSourceValue,
|
||||
&i.AllowOverrideSource,
|
||||
&i.DefaultDestinationScheme,
|
||||
&i.AllowOverrideDestination,
|
||||
&i.DefaultRefresh,
|
||||
&i.RedisplayValue,
|
||||
&i.ValidationError,
|
||||
&i.ValidationCondition,
|
||||
&i.ValidationTypeSystem,
|
||||
&i.ValidationValueType,
|
||||
&i.Index,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const deleteParameterValueByID = `-- name: DeleteParameterValueByID :exec
|
||||
DELETE FROM
|
||||
parameter_values
|
||||
WHERE
|
||||
id = $1
|
||||
`
|
||||
|
||||
func (q *sqlQuerier) DeleteParameterValueByID(ctx context.Context, id uuid.UUID) error {
|
||||
_, err := q.db.ExecContext(ctx, deleteParameterValueByID, id)
|
||||
return err
|
||||
}
|
||||
|
||||
const getParameterValueByScopeAndName = `-- name: GetParameterValueByScopeAndName :one
|
||||
SELECT
|
||||
id, created_at, updated_at, scope, scope_id, name, source_scheme, source_value, destination_scheme
|
||||
FROM
|
||||
parameter_values
|
||||
WHERE
|
||||
scope = $1
|
||||
AND scope_id = $2
|
||||
AND NAME = $3
|
||||
LIMIT
|
||||
1
|
||||
`
|
||||
|
||||
type GetParameterValueByScopeAndNameParams struct {
|
||||
Scope ParameterScope `db:"scope" json:"scope"`
|
||||
ScopeID uuid.UUID `db:"scope_id" json:"scope_id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
}
|
||||
|
||||
func (q *sqlQuerier) GetParameterValueByScopeAndName(ctx context.Context, arg GetParameterValueByScopeAndNameParams) (ParameterValue, error) {
|
||||
row := q.db.QueryRowContext(ctx, getParameterValueByScopeAndName, arg.Scope, arg.ScopeID, arg.Name)
|
||||
var i ParameterValue
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
&i.Scope,
|
||||
&i.ScopeID,
|
||||
&i.Name,
|
||||
&i.SourceScheme,
|
||||
&i.SourceValue,
|
||||
&i.DestinationScheme,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const insertParameterValue = `-- name: InsertParameterValue :one
|
||||
INSERT INTO
|
||||
parameter_values (
|
||||
id,
|
||||
"name",
|
||||
created_at,
|
||||
updated_at,
|
||||
scope,
|
||||
scope_id,
|
||||
source_scheme,
|
||||
source_value,
|
||||
destination_scheme
|
||||
)
|
||||
VALUES
|
||||
($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING id, created_at, updated_at, scope, scope_id, name, source_scheme, source_value, destination_scheme
|
||||
`
|
||||
|
||||
type InsertParameterValueParams struct {
|
||||
ID uuid.UUID `db:"id" json:"id"`
|
||||
Name string `db:"name" json:"name"`
|
||||
CreatedAt time.Time `db:"created_at" json:"created_at"`
|
||||
UpdatedAt time.Time `db:"updated_at" json:"updated_at"`
|
||||
Scope ParameterScope `db:"scope" json:"scope"`
|
||||
ScopeID uuid.UUID `db:"scope_id" json:"scope_id"`
|
||||
SourceScheme ParameterSourceScheme `db:"source_scheme" json:"source_scheme"`
|
||||
SourceValue string `db:"source_value" json:"source_value"`
|
||||
DestinationScheme ParameterDestinationScheme `db:"destination_scheme" json:"destination_scheme"`
|
||||
}
|
||||
|
||||
func (q *sqlQuerier) InsertParameterValue(ctx context.Context, arg InsertParameterValueParams) (ParameterValue, error) {
|
||||
row := q.db.QueryRowContext(ctx, insertParameterValue,
|
||||
arg.ID,
|
||||
arg.Name,
|
||||
arg.CreatedAt,
|
||||
arg.UpdatedAt,
|
||||
arg.Scope,
|
||||
arg.ScopeID,
|
||||
arg.SourceScheme,
|
||||
arg.SourceValue,
|
||||
arg.DestinationScheme,
|
||||
)
|
||||
var i ParameterValue
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
&i.Scope,
|
||||
&i.ScopeID,
|
||||
&i.Name,
|
||||
&i.SourceScheme,
|
||||
&i.SourceValue,
|
||||
&i.DestinationScheme,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const parameterValue = `-- name: ParameterValue :one
|
||||
SELECT id, created_at, updated_at, scope, scope_id, name, source_scheme, source_value, destination_scheme FROM
|
||||
parameter_values
|
||||
WHERE
|
||||
id = $1
|
||||
`
|
||||
|
||||
func (q *sqlQuerier) ParameterValue(ctx context.Context, id uuid.UUID) (ParameterValue, error) {
|
||||
row := q.db.QueryRowContext(ctx, parameterValue, id)
|
||||
var i ParameterValue
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
&i.Scope,
|
||||
&i.ScopeID,
|
||||
&i.Name,
|
||||
&i.SourceScheme,
|
||||
&i.SourceValue,
|
||||
&i.DestinationScheme,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const parameterValues = `-- name: ParameterValues :many
|
||||
SELECT
|
||||
id, created_at, updated_at, scope, scope_id, name, source_scheme, source_value, destination_scheme
|
||||
FROM
|
||||
parameter_values
|
||||
WHERE
|
||||
CASE
|
||||
WHEN cardinality($1 :: parameter_scope[]) > 0 THEN
|
||||
scope = ANY($1 :: parameter_scope[])
|
||||
ELSE true
|
||||
END
|
||||
AND CASE
|
||||
WHEN cardinality($2 :: uuid[]) > 0 THEN
|
||||
scope_id = ANY($2 :: uuid[])
|
||||
ELSE true
|
||||
END
|
||||
AND CASE
|
||||
WHEN cardinality($3 :: uuid[]) > 0 THEN
|
||||
id = ANY($3 :: uuid[])
|
||||
ELSE true
|
||||
END
|
||||
AND CASE
|
||||
WHEN cardinality($4 :: text[]) > 0 THEN
|
||||
"name" = ANY($4 :: text[])
|
||||
ELSE true
|
||||
END
|
||||
`
|
||||
|
||||
type ParameterValuesParams struct {
|
||||
Scopes []ParameterScope `db:"scopes" json:"scopes"`
|
||||
ScopeIds []uuid.UUID `db:"scope_ids" json:"scope_ids"`
|
||||
IDs []uuid.UUID `db:"ids" json:"ids"`
|
||||
Names []string `db:"names" json:"names"`
|
||||
}
|
||||
|
||||
func (q *sqlQuerier) ParameterValues(ctx context.Context, arg ParameterValuesParams) ([]ParameterValue, error) {
|
||||
rows, err := q.db.QueryContext(ctx, parameterValues,
|
||||
pq.Array(arg.Scopes),
|
||||
pq.Array(arg.ScopeIds),
|
||||
pq.Array(arg.IDs),
|
||||
pq.Array(arg.Names),
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []ParameterValue
|
||||
for rows.Next() {
|
||||
var i ParameterValue
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
&i.Scope,
|
||||
&i.ScopeID,
|
||||
&i.Name,
|
||||
&i.SourceScheme,
|
||||
&i.SourceValue,
|
||||
&i.DestinationScheme,
|
||||
); 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 getProvisionerDaemons = `-- name: GetProvisionerDaemons :many
|
||||
SELECT
|
||||
id, created_at, updated_at, name, provisioners, replica_id, tags
|
||||
|
@ -7,48 +7,3 @@ WHERE
|
||||
job_id = $1
|
||||
ORDER BY
|
||||
index;
|
||||
|
||||
-- name: GetParameterSchemasCreatedAfter :many
|
||||
SELECT * FROM parameter_schemas WHERE created_at > $1;
|
||||
|
||||
-- name: InsertParameterSchema :one
|
||||
INSERT INTO
|
||||
parameter_schemas (
|
||||
id,
|
||||
created_at,
|
||||
job_id,
|
||||
"name",
|
||||
description,
|
||||
default_source_scheme,
|
||||
default_source_value,
|
||||
allow_override_source,
|
||||
default_destination_scheme,
|
||||
allow_override_destination,
|
||||
default_refresh,
|
||||
redisplay_value,
|
||||
validation_error,
|
||||
validation_condition,
|
||||
validation_type_system,
|
||||
validation_value_type,
|
||||
index
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
$1,
|
||||
$2,
|
||||
$3,
|
||||
$4,
|
||||
$5,
|
||||
$6,
|
||||
$7,
|
||||
$8,
|
||||
$9,
|
||||
$10,
|
||||
$11,
|
||||
$12,
|
||||
$13,
|
||||
$14,
|
||||
$15,
|
||||
$16,
|
||||
$17
|
||||
) RETURNING *;
|
||||
|
@ -1,68 +0,0 @@
|
||||
-- name: ParameterValue :one
|
||||
SELECT * FROM
|
||||
parameter_values
|
||||
WHERE
|
||||
id = $1;
|
||||
|
||||
|
||||
-- name: DeleteParameterValueByID :exec
|
||||
DELETE FROM
|
||||
parameter_values
|
||||
WHERE
|
||||
id = $1;
|
||||
|
||||
-- name: ParameterValues :many
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
parameter_values
|
||||
WHERE
|
||||
CASE
|
||||
WHEN cardinality(@scopes :: parameter_scope[]) > 0 THEN
|
||||
scope = ANY(@scopes :: parameter_scope[])
|
||||
ELSE true
|
||||
END
|
||||
AND CASE
|
||||
WHEN cardinality(@scope_ids :: uuid[]) > 0 THEN
|
||||
scope_id = ANY(@scope_ids :: uuid[])
|
||||
ELSE true
|
||||
END
|
||||
AND CASE
|
||||
WHEN cardinality(@ids :: uuid[]) > 0 THEN
|
||||
id = ANY(@ids :: uuid[])
|
||||
ELSE true
|
||||
END
|
||||
AND CASE
|
||||
WHEN cardinality(@names :: text[]) > 0 THEN
|
||||
"name" = ANY(@names :: text[])
|
||||
ELSE true
|
||||
END
|
||||
;
|
||||
|
||||
-- name: GetParameterValueByScopeAndName :one
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
parameter_values
|
||||
WHERE
|
||||
scope = $1
|
||||
AND scope_id = $2
|
||||
AND NAME = $3
|
||||
LIMIT
|
||||
1;
|
||||
|
||||
-- name: InsertParameterValue :one
|
||||
INSERT INTO
|
||||
parameter_values (
|
||||
id,
|
||||
"name",
|
||||
created_at,
|
||||
updated_at,
|
||||
scope,
|
||||
scope_id,
|
||||
source_scheme,
|
||||
source_value,
|
||||
destination_scheme
|
||||
)
|
||||
VALUES
|
||||
($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING *;
|
Reference in New Issue
Block a user