Skip to content

Commit d3c045a

Browse files
committed
migrate fields
1 parent 740f2b7 commit d3c045a

File tree

8 files changed

+50
-43
lines changed

8 files changed

+50
-43
lines changed

backend/controllers/github_after_merge.go

+12-11
Original file line numberDiff line numberDiff line change
@@ -202,16 +202,17 @@ func handlePushEventApplyAfterMerge(gh utils.GithubClientProvider, payload *gith
202202
for i, _ := range planJobs {
203203
planJob := planJobs[i]
204204
applyJob := applyJobs[i]
205+
projectName := planJob.ProjectName
205206
planJobSpec, err := json.Marshal(orchestrator.JobToJson(planJob, impactedProjects[i]))
206207
if err != nil {
207-
log.Printf("Error creating jobspec: %v %v", planJob.ProjectName, err)
208+
log.Printf("Error creating jobspec: %v %v", projectName, err)
208209
return fmt.Errorf("error creating jobspec")
209210

210211
}
211212

212213
applyJobSpec, err := json.Marshal(orchestrator.JobToJson(applyJob, impactedProjects[i]))
213214
if err != nil {
214-
log.Printf("Error creating jobs: %v %v", applyJob.ProjectName, err)
215+
log.Printf("Error creating jobs: %v %v", projectName, err)
215216
return fmt.Errorf("error creating jobs")
216217
}
217218
// create batches
@@ -240,26 +241,26 @@ func handlePushEventApplyAfterMerge(gh utils.GithubClientProvider, payload *gith
240241
return fmt.Errorf("error creating digger job")
241242
}
242243

243-
diggerRun, err := models.DB.CreateDiggerRun("push", 0, models.RunQueued, commitId, diggerYmlStr, installationId, 0, 0, models.PlanAndApply)
244-
if err != nil {
245-
log.Printf("Error creating digger run: %v", err)
246-
return fmt.Errorf("error creating digger run")
247-
}
248-
249244
// creating run stages
250-
_, err = models.DB.CreateDiggerRunStage(diggerRun.ID, planBatch.ID.String())
245+
planStage, err := models.DB.CreateDiggerRunStage(planBatch.ID.String())
251246
if err != nil {
252247
log.Printf("Error creating digger run stage: %v", err)
253248
return fmt.Errorf("error creating digger run stage")
254249
}
255250

256-
_, err = models.DB.CreateDiggerRunStage(diggerRun.ID, applyBatch.ID.String())
251+
applyStage, err := models.DB.CreateDiggerRunStage(applyBatch.ID.String())
257252
if err != nil {
258253
log.Printf("Error creating digger run stage: %v", err)
259254
return fmt.Errorf("error creating digger run stage")
260255
}
261256

262-
models.DB.CreateDiggerRunQueueItem(0, diggerRun.ID)
257+
diggerRun, err := models.DB.CreateDiggerRun("push", 0, models.RunQueued, commitId, diggerYmlStr, installationId, repo.ID, projectName, models.PlanAndApply, &planStage.ID, &applyStage.ID)
258+
if err != nil {
259+
log.Printf("Error creating digger run: %v", err)
260+
return fmt.Errorf("error creating digger run")
261+
}
262+
263+
models.DB.CreateDiggerRunQueueItem(diggerRun.ID)
263264

264265
}
265266

backend/migrations/20240404160724.sql

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- Modify "digger_run_queue_items" table
2+
ALTER TABLE "public"."digger_run_queue_items" DROP COLUMN "project_id";

backend/migrations/20240404161121.sql

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- Modify "digger_run_stages" table
2+
ALTER TABLE "public"."digger_run_stages" DROP COLUMN "run_id";

backend/migrations/20240404161723.sql

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-- Modify "digger_runs" table
2+
ALTER TABLE "public"."digger_runs" ADD COLUMN "plan_stage_id" bigint NULL, ADD COLUMN "apply_stage_id" bigint NULL, ADD
3+
CONSTRAINT "fk_digger_runs_apply_stage" FOREIGN KEY ("apply_stage_id") REFERENCES "public"."digger_run_stages" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION, ADD
4+
CONSTRAINT "fk_digger_runs_plan_stage" FOREIGN KEY ("plan_stage_id") REFERENCES "public"."digger_run_stages" ("id") ON UPDATE NO ACTION ON DELETE NO ACTION;

backend/migrations/atlas.sum

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
h1:AwUIRwmx9E+aRp469t6izImEEgfQt6IHwtAKXumn4jo=
1+
h1:wCerMVvOi8Co+XSFeE+18Vcex7+cmseQ9ZJp4sHZwaY=
22
20231227132525.sql h1:43xn7XC0GoJsCnXIMczGXWis9d504FAWi4F1gViTIcw=
33
20240115170600.sql h1:IW8fF/8vc40+eWqP/xDK+R4K9jHJ9QBSGO6rN9LtfSA=
44
20240116123649.sql h1:R1JlUIgxxF6Cyob9HdtMqiKmx/BfnsctTl5rvOqssQw=
@@ -11,3 +11,6 @@ h1:AwUIRwmx9E+aRp469t6izImEEgfQt6IHwtAKXumn4jo=
1111
20240402110915.sql h1:bG2Dvbzm3ZvFa29Feb0Bwj6KtAtZy1Vyuje6yV31msQ=
1212
20240403155357_drop_dup_idx.sql h1:6LyRtGfutHQompownriYYrq8us+Cdj4FTgWa7VPsXFA=
1313
20240403155456.sql h1:XJgyne416JMAV4xHA3IweHZos0ULrjFEJBqhWFjGNho=
14+
20240404160724.sql h1:cjEZiC7JC0dCJIRSIh1OBBhi2IBuRZEBj/ifoYqNzAw=
15+
20240404161121.sql h1:ZbMLfHRom6Tws+2M3BcnMu1lcjz/YFwAI8kGmC+I+H4=
16+
20240404161723.sql h1:z3bJcKs0ZJSyTJewqgE0GSHpn33sX7zgc2rmCMF99Qo=

backend/models/runs.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ const (
3030

3131
type DiggerRunQueueItem struct {
3232
gorm.Model
33-
ProjectId uint `gorm:"index:idx_digger_run_queue_project_id"`
34-
Project *Project
3533
DiggerRunId uint `gorm:"index:idx_digger_run_queue_run_id"`
3634
DiggerRun DiggerRun
3735
time time.Time
@@ -47,15 +45,16 @@ type DiggerRun struct {
4745
GithubInstallationId int64
4846
RepoId uint
4947
Repo *Repo
50-
Project *Project
51-
ProjectID uint
48+
ProjectName string
5249
RunType RunType
50+
PlanStage *DiggerRunStage
51+
PlanStageId *uint
52+
ApplyStage *DiggerRunStage
53+
ApplyStageId *uint
5354
}
5455

5556
type DiggerRunStage struct {
5657
gorm.Model
57-
Run *DiggerRun
58-
RunID uint `gorm:"index:idx_digger_run_stage_id"`
5958
Batch *DiggerBatch
6059
BatchID *string `gorm:"index:idx_digger_run_batch_id"`
6160
}
@@ -78,9 +77,9 @@ func (r *DiggerRunStage) MapToJsonStruct() (interface{}, error) {
7877
}
7978

8079
return SerializedRunStage{
81-
DiggerJobId: job.DiggerJobID,
82-
Status: job.Status,
83-
ProjectName: r.Run.Project.Name,
80+
DiggerJobId: job.DiggerJobID,
81+
Status: job.Status,
82+
//ProjectName: r.Run.Project.Name,
8483
WorkflowRunUrl: job.WorkflowRunUrl,
8584
ResourcesCreated: job.DiggerJobSummary.ResourcesCreated,
8685
ResourcesUpdated: job.DiggerJobSummary.ResourcesUpdated,

backend/models/storage.go

+7-11
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,7 @@ func (db *Database) CreateDiggerJob(batchId uuid.UUID, serializedJob []byte, wor
655655
return job, nil
656656
}
657657

658-
func (db *Database) CreateDiggerRun(Triggertype string, PrNumber int, Status DiggerRunStatus, CommitId string, DiggerConfig string, GithubInstallationId int64, RepoId uint, ProjectID uint, RunType RunType) (*DiggerRun, error) {
658+
func (db *Database) CreateDiggerRun(Triggertype string, PrNumber int, Status DiggerRunStatus, CommitId string, DiggerConfig string, GithubInstallationId int64, RepoId uint, ProjectName string, RunType RunType, planStageId *uint, applyStageId *uint) (*DiggerRun, error) {
659659
dr := &DiggerRun{
660660
Triggertype: Triggertype,
661661
PrNumber: &PrNumber,
@@ -664,8 +664,10 @@ func (db *Database) CreateDiggerRun(Triggertype string, PrNumber int, Status Dig
664664
DiggerConfig: DiggerConfig,
665665
GithubInstallationId: GithubInstallationId,
666666
RepoId: RepoId,
667-
ProjectID: ProjectID,
667+
ProjectName: ProjectName,
668668
RunType: RunType,
669+
PlanStageId: planStageId,
670+
ApplyStageId: applyStageId,
669671
}
670672
result := db.GormDB.Save(dr)
671673
if result.Error != nil {
@@ -676,9 +678,8 @@ func (db *Database) CreateDiggerRun(Triggertype string, PrNumber int, Status Dig
676678
return dr, nil
677679
}
678680

679-
func (db *Database) CreateDiggerRunStage(runId uint, batchId string) (*DiggerRunStage, error) {
681+
func (db *Database) CreateDiggerRunStage(batchId string) (*DiggerRunStage, error) {
680682
drs := &DiggerRunStage{
681-
RunID: runId,
682683
BatchID: &batchId,
683684
}
684685
result := db.GormDB.Save(drs)
@@ -709,9 +710,8 @@ func (db *Database) GetDiggerRun(id uint) (*DiggerRun, error) {
709710
return dr, nil
710711
}
711712

712-
func (db *Database) CreateDiggerRunQueueItem(projectId uint, diggeRrunId uint) (*DiggerRunQueueItem, error) {
713+
func (db *Database) CreateDiggerRunQueueItem(diggeRrunId uint) (*DiggerRunQueueItem, error) {
713714
drq := &DiggerRunQueueItem{
714-
ProjectId: projectId,
715715
DiggerRunId: diggeRrunId,
716716
}
717717
result := db.GormDB.Save(drq)
@@ -796,15 +796,11 @@ WHERE
796796

797797
// 2. Preload Project and DiggerRun for every DiggerrunQueue item (front of queue)
798798
var runqueuesWithData []DiggerRunQueueItem
799-
projectIds := lo.Map(runqueues, func(run DiggerRunQueueItem, index int) uint {
800-
return run.ProjectId
801-
})
802799
diggerRunIds := lo.Map(runqueues, func(run DiggerRunQueueItem, index int) uint {
803800
return run.DiggerRunId
804801
})
805802

806-
tx = db.GormDB.Preload("Project").Preload("DiggerRun").
807-
Where("digger_run_queues.project_id in ?", projectIds).
803+
tx = db.GormDB.Preload("DiggerRun").
808804
Where("digger_run_queues.digger_run_id in ?", diggerRunIds).Find(&runqueuesWithData)
809805

810806
if tx.Error != nil {

backend/tasks/runs.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func RunQueuesStateMachine(queueItem *models.DiggerRunQueueItem, CIBackend ci_ba
1818
dr.Status = models.RunPlanning
1919
err := models.DB.UpdateDiggerRun(&dr)
2020
if err != nil {
21-
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
21+
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
2222
}
2323
case models.RunPlanning:
2424
// Check the status of the batch
@@ -30,11 +30,11 @@ func RunQueuesStateMachine(queueItem *models.DiggerRunQueueItem, CIBackend ci_ba
3030
dr.Status = models.RunFailed
3131
err := models.DB.UpdateDiggerRun(&dr)
3232
if err != nil {
33-
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
33+
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
3434
}
3535
err = models.DB.DequeueRunItem(queueItem)
3636
if err != nil {
37-
log.Printf("ERROR: Failed to delete queueItem item: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
37+
log.Printf("ERROR: Failed to delete queueItem item: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
3838
}
3939
}
4040

@@ -43,13 +43,13 @@ func RunQueuesStateMachine(queueItem *models.DiggerRunQueueItem, CIBackend ci_ba
4343
dr.Status = models.RunPendingApproval
4444
err := models.DB.UpdateDiggerRun(&dr)
4545
if err != nil {
46-
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
46+
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
4747
}
4848
} else {
4949
dr.Status = models.RunApproved
5050
err := models.DB.UpdateDiggerRun(&dr)
5151
if err != nil {
52-
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
52+
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
5353
}
5454
}
5555

@@ -61,7 +61,7 @@ func RunQueuesStateMachine(queueItem *models.DiggerRunQueueItem, CIBackend ci_ba
6161
dr.Status = models.RunApplying
6262
err := models.DB.UpdateDiggerRun(&dr)
6363
if err != nil {
64-
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
64+
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
6565
}
6666

6767
case models.RunApplying:
@@ -73,11 +73,11 @@ func RunQueuesStateMachine(queueItem *models.DiggerRunQueueItem, CIBackend ci_ba
7373
dr.Status = models.RunFailed
7474
err := models.DB.UpdateDiggerRun(&dr)
7575
if err != nil {
76-
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
76+
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
7777
}
7878
err = models.DB.DequeueRunItem(queueItem)
7979
if err != nil {
80-
log.Printf("ERROR: Failed to delete queueItem item: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
80+
log.Printf("ERROR: Failed to delete queueItem item: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
8181
}
8282
}
8383

@@ -86,21 +86,21 @@ func RunQueuesStateMachine(queueItem *models.DiggerRunQueueItem, CIBackend ci_ba
8686
dr.Status = models.RunSucceeded
8787
err := models.DB.UpdateDiggerRun(&dr)
8888
if err != nil {
89-
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
89+
log.Printf("ERROR: Failed to update Digger Run for queueID: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
9090
}
9191
}
9292

9393
case models.RunSucceeded:
9494
// dequeue
9595
err := models.DB.DequeueRunItem(queueItem)
9696
if err != nil {
97-
log.Printf("ERROR: Failed to delete queueItem item: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
97+
log.Printf("ERROR: Failed to delete queueItem item: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
9898
}
9999
case models.RunFailed:
100100
// dequeue
101101
err := models.DB.DequeueRunItem(queueItem)
102102
if err != nil {
103-
log.Printf("ERROR: Failed to delete queueItem item: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.ProjectId)
103+
log.Printf("ERROR: Failed to delete queueItem item: %v [%v %v]", queueItem.ID, queueItem.DiggerRunId, queueItem.DiggerRun.ProjectName)
104104
}
105105
default:
106106
log.Printf("WARN: Recieived unknown DiggerRunStatus: %v", queueItem.DiggerRun.Status)

0 commit comments

Comments
 (0)