|
|
|
@@ -344,14 +344,14 @@ func (s *MethodTestSuite) TestGroup() {
|
|
|
|
|
func (s *MethodTestSuite) TestProvsionerJob() {
|
|
|
|
|
s.Run("Build/GetProvisionerJobByID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
w := dbgen.Workspace(s.T(), db, database.Workspace{})
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
Type: database.ProvisionerJobTypeWorkspaceBuild,
|
|
|
|
|
})
|
|
|
|
|
_ = dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{JobID: j.ID, WorkspaceID: w.ID})
|
|
|
|
|
check.Args(j.ID).Asserts(w, rbac.ActionRead).Returns(j)
|
|
|
|
|
}))
|
|
|
|
|
s.Run("TemplateVersion/GetProvisionerJobByID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
Type: database.ProvisionerJobTypeTemplateVersionImport,
|
|
|
|
|
})
|
|
|
|
|
tpl := dbgen.Template(s.T(), db, database.Template{})
|
|
|
|
@@ -366,7 +366,7 @@ func (s *MethodTestSuite) TestProvsionerJob() {
|
|
|
|
|
v := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
|
|
|
|
|
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
|
|
|
|
|
})
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
Type: database.ProvisionerJobTypeTemplateVersionDryRun,
|
|
|
|
|
Input: must(json.Marshal(struct {
|
|
|
|
|
TemplateVersionID uuid.UUID `json:"template_version_id"`
|
|
|
|
@@ -377,7 +377,7 @@ func (s *MethodTestSuite) TestProvsionerJob() {
|
|
|
|
|
s.Run("Build/UpdateProvisionerJobWithCancelByID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
tpl := dbgen.Template(s.T(), db, database.Template{AllowUserCancelWorkspaceJobs: true})
|
|
|
|
|
w := dbgen.Workspace(s.T(), db, database.Workspace{TemplateID: tpl.ID})
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
Type: database.ProvisionerJobTypeWorkspaceBuild,
|
|
|
|
|
})
|
|
|
|
|
_ = dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{JobID: j.ID, WorkspaceID: w.ID})
|
|
|
|
@@ -386,14 +386,14 @@ func (s *MethodTestSuite) TestProvsionerJob() {
|
|
|
|
|
s.Run("BuildFalseCancel/UpdateProvisionerJobWithCancelByID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
tpl := dbgen.Template(s.T(), db, database.Template{AllowUserCancelWorkspaceJobs: false})
|
|
|
|
|
w := dbgen.Workspace(s.T(), db, database.Workspace{TemplateID: tpl.ID})
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
Type: database.ProvisionerJobTypeWorkspaceBuild,
|
|
|
|
|
})
|
|
|
|
|
_ = dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{JobID: j.ID, WorkspaceID: w.ID})
|
|
|
|
|
check.Args(database.UpdateProvisionerJobWithCancelByIDParams{ID: j.ID}).Asserts(w, rbac.ActionUpdate).Returns()
|
|
|
|
|
}))
|
|
|
|
|
s.Run("TemplateVersion/UpdateProvisionerJobWithCancelByID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
Type: database.ProvisionerJobTypeTemplateVersionImport,
|
|
|
|
|
})
|
|
|
|
|
tpl := dbgen.Template(s.T(), db, database.Template{})
|
|
|
|
@@ -405,7 +405,7 @@ func (s *MethodTestSuite) TestProvsionerJob() {
|
|
|
|
|
Asserts(v.RBACObject(tpl), []rbac.Action{rbac.ActionRead, rbac.ActionUpdate}).Returns()
|
|
|
|
|
}))
|
|
|
|
|
s.Run("TemplateVersionNoTemplate/UpdateProvisionerJobWithCancelByID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
Type: database.ProvisionerJobTypeTemplateVersionImport,
|
|
|
|
|
})
|
|
|
|
|
v := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
|
|
|
|
@@ -420,7 +420,7 @@ func (s *MethodTestSuite) TestProvsionerJob() {
|
|
|
|
|
v := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{
|
|
|
|
|
TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true},
|
|
|
|
|
})
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
Type: database.ProvisionerJobTypeTemplateVersionDryRun,
|
|
|
|
|
Input: must(json.Marshal(struct {
|
|
|
|
|
TemplateVersionID uuid.UUID `json:"template_version_id"`
|
|
|
|
@@ -430,13 +430,13 @@ func (s *MethodTestSuite) TestProvsionerJob() {
|
|
|
|
|
Asserts(v.RBACObject(tpl), []rbac.Action{rbac.ActionRead, rbac.ActionUpdate}).Returns()
|
|
|
|
|
}))
|
|
|
|
|
s.Run("GetProvisionerJobsByIDs", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
a := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
|
|
|
|
b := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
|
|
|
|
a := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{})
|
|
|
|
|
b := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{})
|
|
|
|
|
check.Args([]uuid.UUID{a.ID, b.ID}).Asserts().Returns(slice.New(a, b))
|
|
|
|
|
}))
|
|
|
|
|
s.Run("GetProvisionerLogsAfterID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
w := dbgen.Workspace(s.T(), db, database.Workspace{})
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
Type: database.ProvisionerJobTypeWorkspaceBuild,
|
|
|
|
|
})
|
|
|
|
|
_ = dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{JobID: j.ID, WorkspaceID: w.ID})
|
|
|
|
@@ -1151,20 +1151,20 @@ func (s *MethodTestSuite) TestWorkspace() {
|
|
|
|
|
s.Run("GetWorkspaceResourceByID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
ws := dbgen.Workspace(s.T(), db, database.Workspace{})
|
|
|
|
|
build := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: uuid.New()})
|
|
|
|
|
_ = dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
|
|
|
|
|
_ = dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
|
|
|
|
|
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: build.JobID})
|
|
|
|
|
check.Args(res.ID).Asserts(ws, rbac.ActionRead).Returns(res)
|
|
|
|
|
}))
|
|
|
|
|
s.Run("Build/GetWorkspaceResourcesByJobID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
ws := dbgen.Workspace(s.T(), db, database.Workspace{})
|
|
|
|
|
build := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: uuid.New()})
|
|
|
|
|
job := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
|
|
|
|
|
job := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
|
|
|
|
|
check.Args(job.ID).Asserts(ws, rbac.ActionRead).Returns([]database.WorkspaceResource{})
|
|
|
|
|
}))
|
|
|
|
|
s.Run("Template/GetWorkspaceResourcesByJobID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
tpl := dbgen.Template(s.T(), db, database.Template{})
|
|
|
|
|
v := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true}, JobID: uuid.New()})
|
|
|
|
|
job := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{ID: v.JobID, Type: database.ProvisionerJobTypeTemplateVersionImport})
|
|
|
|
|
job := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{ID: v.JobID, Type: database.ProvisionerJobTypeTemplateVersionImport})
|
|
|
|
|
check.Args(job.ID).Asserts(v.RBACObject(tpl), []rbac.Action{rbac.ActionRead, rbac.ActionRead}).Returns([]database.WorkspaceResource{})
|
|
|
|
|
}))
|
|
|
|
|
s.Run("InsertWorkspace", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
@@ -1411,7 +1411,7 @@ func (s *MethodTestSuite) TestSystemFunctions() {
|
|
|
|
|
}))
|
|
|
|
|
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)})
|
|
|
|
|
_ = dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{CreatedAt: time.Now().Add(-time.Hour)})
|
|
|
|
|
check.Args(time.Now()).Asserts( /*rbac.ResourceSystem, rbac.ActionRead*/ )
|
|
|
|
|
}))
|
|
|
|
|
s.Run("GetTemplateVersionsByIDs", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
@@ -1450,11 +1450,11 @@ func (s *MethodTestSuite) TestSystemFunctions() {
|
|
|
|
|
s.Run("GetWorkspaceResourcesByJobIDs", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
tpl := dbgen.Template(s.T(), db, database.Template{})
|
|
|
|
|
v := dbgen.TemplateVersion(s.T(), db, database.TemplateVersion{TemplateID: uuid.NullUUID{UUID: tpl.ID, Valid: true}, JobID: uuid.New()})
|
|
|
|
|
tJob := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{ID: v.JobID, Type: database.ProvisionerJobTypeTemplateVersionImport})
|
|
|
|
|
tJob := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{ID: v.JobID, Type: database.ProvisionerJobTypeTemplateVersionImport})
|
|
|
|
|
|
|
|
|
|
ws := dbgen.Workspace(s.T(), db, database.Workspace{})
|
|
|
|
|
build := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: uuid.New()})
|
|
|
|
|
wJob := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
|
|
|
|
|
wJob := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
|
|
|
|
|
check.Args([]uuid.UUID{tJob.ID, wJob.ID}).
|
|
|
|
|
Asserts(rbac.ResourceSystem, rbac.ActionRead).
|
|
|
|
|
Returns([]database.WorkspaceResource{})
|
|
|
|
@@ -1462,7 +1462,7 @@ func (s *MethodTestSuite) TestSystemFunctions() {
|
|
|
|
|
s.Run("GetWorkspaceResourceMetadataByResourceIDs", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
ws := dbgen.Workspace(s.T(), db, database.Workspace{})
|
|
|
|
|
build := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: uuid.New()})
|
|
|
|
|
_ = dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
|
|
|
|
|
_ = dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{ID: build.JobID, Type: database.ProvisionerJobTypeWorkspaceBuild})
|
|
|
|
|
a := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: build.JobID})
|
|
|
|
|
b := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: build.JobID})
|
|
|
|
|
check.Args([]uuid.UUID{a.ID, b.ID}).
|
|
|
|
@@ -1479,8 +1479,8 @@ func (s *MethodTestSuite) TestSystemFunctions() {
|
|
|
|
|
}))
|
|
|
|
|
s.Run("GetProvisionerJobsByIDs", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
// TODO: add a ProvisionerJob resource type
|
|
|
|
|
a := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
|
|
|
|
b := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
|
|
|
|
a := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{})
|
|
|
|
|
b := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{})
|
|
|
|
|
check.Args([]uuid.UUID{a.ID, b.ID}).
|
|
|
|
|
Asserts( /*rbac.ResourceSystem, rbac.ActionRead*/ ).
|
|
|
|
|
Returns(slice.New(a, b))
|
|
|
|
@@ -1514,7 +1514,7 @@ func (s *MethodTestSuite) TestSystemFunctions() {
|
|
|
|
|
}))
|
|
|
|
|
s.Run("AcquireProvisionerJob", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
// TODO: we need to create a ProvisionerJob resource
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{
|
|
|
|
|
StartedAt: sql.NullTime{Valid: false},
|
|
|
|
|
})
|
|
|
|
|
check.Args(database.AcquireProvisionerJobParams{Types: []database.ProvisionerType{j.Provisioner}, Tags: must(json.Marshal(j.Tags))}).
|
|
|
|
@@ -1522,14 +1522,14 @@ func (s *MethodTestSuite) TestSystemFunctions() {
|
|
|
|
|
}))
|
|
|
|
|
s.Run("UpdateProvisionerJobWithCompleteByID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
// TODO: we need to create a ProvisionerJob resource
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{})
|
|
|
|
|
check.Args(database.UpdateProvisionerJobWithCompleteByIDParams{
|
|
|
|
|
ID: j.ID,
|
|
|
|
|
}).Asserts( /*rbac.ResourceSystem, rbac.ActionUpdate*/ )
|
|
|
|
|
}))
|
|
|
|
|
s.Run("UpdateProvisionerJobByID", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
// TODO: we need to create a ProvisionerJob resource
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{})
|
|
|
|
|
check.Args(database.UpdateProvisionerJobByIDParams{
|
|
|
|
|
ID: j.ID,
|
|
|
|
|
UpdatedAt: time.Now(),
|
|
|
|
@@ -1546,7 +1546,7 @@ func (s *MethodTestSuite) TestSystemFunctions() {
|
|
|
|
|
}))
|
|
|
|
|
s.Run("InsertProvisionerJobLogs", s.Subtest(func(db database.Store, check *expects) {
|
|
|
|
|
// TODO: we need to create a ProvisionerJob resource
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, database.ProvisionerJob{})
|
|
|
|
|
j := dbgen.ProvisionerJob(s.T(), db, nil, database.ProvisionerJob{})
|
|
|
|
|
check.Args(database.InsertProvisionerJobLogsParams{
|
|
|
|
|
JobID: j.ID,
|
|
|
|
|
}).Asserts( /*rbac.ResourceSystem, rbac.ActionCreate*/ )
|
|
|
|
|