@@ -19,6 +19,8 @@ import (
19
19
"storj.io/drpc/drpcmux"
20
20
"storj.io/drpc/drpcserver"
21
21
22
+ "cdr.dev/slog"
23
+
22
24
"github.com/coder/coder/coderd/projectparameter"
23
25
"github.com/coder/coder/database"
24
26
"github.com/coder/coder/httpapi"
@@ -84,6 +86,7 @@ func (api *api) provisionerDaemonsServe(rw http.ResponseWriter, r *http.Request)
84
86
Database : api .Database ,
85
87
Pubsub : api .Pubsub ,
86
88
Provisioners : daemon .Provisioners ,
89
+ Logger : api .Logger .Named (fmt .Sprintf ("provisionerd-%s" , daemon .Name )),
87
90
})
88
91
if err != nil {
89
92
_ = conn .Close (websocket .StatusInternalError , fmt .Sprintf ("drpc register provisioner daemon: %s" , err ))
@@ -109,6 +112,7 @@ type projectImportJob struct {
109
112
// Implementation of the provisioner daemon protobuf server.
110
113
type provisionerdServer struct {
111
114
ID uuid.UUID
115
+ Logger slog.Logger
112
116
Provisioners []database.ProvisionerType
113
117
Database database.Store
114
118
Pubsub database.Pubsub
@@ -136,9 +140,11 @@ func (server *provisionerdServer) AcquireJob(ctx context.Context, _ *proto.Empty
136
140
if err != nil {
137
141
return nil , xerrors .Errorf ("acquire job: %w" , err )
138
142
}
143
+ server .Logger .Debug (ctx , "locked job from database" , slog .F ("id" , job .ID ))
144
+
139
145
// Marks the acquired job as failed with the error message provided.
140
146
failJob := func (errorMessage string ) error {
141
- err = server .Database .UpdateProvisionerJobByID (ctx , database.UpdateProvisionerJobByIDParams {
147
+ err = server .Database .UpdateProvisionerJobWithCompleteByID (ctx , database.UpdateProvisionerJobWithCompleteByIDParams {
142
148
ID : job .ID ,
143
149
CompletedAt : sql.NullTime {
144
150
Time : database .Now (),
@@ -381,8 +387,12 @@ func (server *provisionerdServer) CancelJob(ctx context.Context, cancelJob *prot
381
387
if err != nil {
382
388
return nil , xerrors .Errorf ("parse job id: %w" , err )
383
389
}
384
- err = server .Database .UpdateProvisionerJobByID (ctx , database.UpdateProvisionerJobByIDParams {
390
+ err = server .Database .UpdateProvisionerJobWithCompleteByID (ctx , database.UpdateProvisionerJobWithCompleteByIDParams {
385
391
ID : jobID ,
392
+ CompletedAt : sql.NullTime {
393
+ Time : database .Now (),
394
+ Valid : true ,
395
+ },
386
396
CancelledAt : sql.NullTime {
387
397
Time : database .Now (),
388
398
Valid : true ,
@@ -476,7 +486,7 @@ func (server *provisionerdServer) CompleteJob(ctx context.Context, completed *pr
476
486
477
487
// This must occur in a transaction in case of failure.
478
488
err = server .Database .InTx (func (db database.Store ) error {
479
- err = db .UpdateProvisionerJobByID (ctx , database.UpdateProvisionerJobByIDParams {
489
+ err = db .UpdateProvisionerJobWithCompleteByID (ctx , database.UpdateProvisionerJobWithCompleteByIDParams {
480
490
ID : jobID ,
481
491
UpdatedAt : database .Now (),
482
492
CompletedAt : sql.NullTime {
@@ -495,6 +505,7 @@ func (server *provisionerdServer) CompleteJob(ctx context.Context, completed *pr
495
505
return xerrors .Errorf ("insert project parameter %q: %w" , projectParameter .Name , err )
496
506
}
497
507
}
508
+ server .Logger .Debug (ctx , "marked import job as completed" , slog .F ("job_id" , jobID ))
498
509
return nil
499
510
})
500
511
if err != nil {
@@ -513,7 +524,7 @@ func (server *provisionerdServer) CompleteJob(ctx context.Context, completed *pr
513
524
}
514
525
515
526
err = server .Database .InTx (func (db database.Store ) error {
516
- err = db .UpdateProvisionerJobByID (ctx , database.UpdateProvisionerJobByIDParams {
527
+ err = db .UpdateProvisionerJobWithCompleteByID (ctx , database.UpdateProvisionerJobWithCompleteByIDParams {
517
528
ID : jobID ,
518
529
UpdatedAt : database .Now (),
519
530
CompletedAt : sql.NullTime {
0 commit comments