@@ -3815,36 +3815,50 @@ func (q *FakeQuerier) GetProvisionerDaemonsWithStatusByOrganization(ctx context.
38153815}
38163816
38173817var status database.ProvisionerDaemonStatus
3818- if daemon .LastSeenAt .Valid || daemon .LastSeenAt .Time .Before (time .Now ().Add (- time .Duration (arg .StaleIntervalMS )* time .Millisecond )) {
3818+ if ! daemon .LastSeenAt .Valid || daemon .LastSeenAt .Time .Before (time .Now ().Add (- time .Duration (arg .StaleIntervalMS )* time .Millisecond )) {
38193819status = database .ProvisionerDaemonStatusOffline
38203820}else {
3821+ var currentJob * database.ProvisionerJob
38213822for _ ,job := range q .provisionerJobs {
3822- if job .WorkerID .Valid && job .WorkerID .UUID == daemon .ID {
3823- if ! job .CompletedAt .Valid {
3824- status = database .ProvisionerDaemonStatusIdle
3825- }else {
3826- status = database .ProvisionerDaemonStatusBusy
3827- }
3823+ if job .WorkerID .Valid && job .WorkerID .UUID == daemon .ID && ! job .CompletedAt .Valid {
3824+ currentJob = & job
38283825break
38293826}
38303827}
3828+
3829+ if currentJob != nil {
3830+ status = database .ProvisionerDaemonStatusBusy
3831+ }else {
3832+ status = database .ProvisionerDaemonStatusIdle
3833+ }
38313834}
38323835
38333836var currentJob ,previousJob database.ProvisionerJob
38343837for _ ,job := range q .provisionerJobs {
3835- if job .WorkerID .Valid && job .WorkerID .UUID == daemon .ID {
3836- if currentJob .ID == uuid .Nil || ! job .CompletedAt .Valid {
3837- currentJob = job
3838- }
3839- if job .CompletedAt .Valid && job .CompletedAt .Time .After (previousJob .CompletedAt .Time ) {
3840- previousJob = job
3841- }
3838+ if job .WorkerID .Valid && job .WorkerID .UUID != daemon .ID {
3839+ continue
3840+ }
3841+
3842+ if ! job .CompletedAt .Valid {
3843+ currentJob = job
3844+ }else if job .CompletedAt .Time .After (previousJob .CompletedAt .Time ) {
3845+ previousJob = job
3846+ }
3847+ }
3848+
3849+ // Get the provisioner key name
3850+ var keyName string
3851+ for _ ,key := range q .provisionerKeys {
3852+ if key .ID == daemon .KeyID {
3853+ keyName = key .Name
3854+ break
38423855}
38433856}
38443857
38453858rows = append (rows , database.GetProvisionerDaemonsWithStatusByOrganizationRow {
38463859ProvisionerDaemon :daemon ,
38473860Status :status ,
3861+ KeyName :keyName ,
38483862CurrentJobID : uuid.NullUUID {UUID :currentJob .ID ,Valid :currentJob .ID != uuid .Nil },
38493863CurrentJobStatus : database.NullProvisionerJobStatus {ProvisionerJobStatus :currentJob .JobStatus ,Valid :currentJob .ID != uuid .Nil },
38503864PreviousJobID : uuid.NullUUID {UUID :previousJob .ID ,Valid :previousJob .ID != uuid .Nil },
@@ -4009,7 +4023,7 @@ func (q *FakeQuerier) GetProvisionerJobsByOrganizationAndStatusWithQueuePosition
40094023defer q .mutex .RUnlock ()
40104024
40114025/*
4012- -- name: GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner :many
4026+ -- name: GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner :many
40134027WITH unstarted_jobs AS (
40144028 SELECT
40154029 id, created_at