@@ -57,6 +57,7 @@ type Termui struct {
57
57
statusHatcheriesWorkers * cli.ScrollableList
58
58
status * cli.ScrollableList
59
59
currentURL string
60
+ queueTabSelected int
60
61
}
61
62
62
63
// Constants for each view of cds ui
@@ -88,6 +89,12 @@ func (ui *Termui) init() {
88
89
termui .Handle ("/sys/kbd/<up>" , func (e termui.Event ) {
89
90
ui .monitoringCursorUp ()
90
91
})
92
+ termui .Handle ("/sys/kbd/<left>" , func (e termui.Event ) {
93
+ ui .monitoringCursorLeft ()
94
+ })
95
+ termui .Handle ("/sys/kbd/<right>" , func (e termui.Event ) {
96
+ ui .monitoringCursorRight ()
97
+ })
91
98
92
99
termui .Handle ("/sys/kbd/<enter>" , func (e termui.Event ) {
93
100
if ui .currentURL != "" {
@@ -240,6 +247,28 @@ func (ui *Termui) monitoringCursorUp() {
240
247
}
241
248
}
242
249
250
+ func (ui * Termui ) monitoringCursorLeft () {
251
+ switch ui .selected {
252
+ case QueueSelected :
253
+ if 0 < ui .queueTabSelected {
254
+ ui .queueTabSelected --
255
+ } else {
256
+ ui .queueTabSelected = 2
257
+ }
258
+ }
259
+ }
260
+
261
+ func (ui * Termui ) monitoringCursorRight () {
262
+ switch ui .selected {
263
+ case QueueSelected :
264
+ if ui .queueTabSelected < 2 {
265
+ ui .queueTabSelected ++
266
+ } else {
267
+ ui .queueTabSelected = 0
268
+ }
269
+ }
270
+ }
271
+
243
272
func (ui * Termui ) monitoringColorSelected () {
244
273
ui .queue .BorderFg = termui .ColorDefault
245
274
ui .statusHatcheriesWorkers .BorderFg = termui .ColorDefault
@@ -375,8 +404,18 @@ func (ui *Termui) computeStatusWorkerModels(workers []sdk.Worker) string {
375
404
}
376
405
377
406
func (ui * Termui ) updateQueue (baseURL string ) string {
407
+ var status []sdk.Status
408
+ switch ui .queueTabSele
9E88
cted {
409
+ case 0 :
410
+ status = []sdk.Status {sdk .StatusWaiting }
411
+ case 1 :
412
+ status = []sdk.Status {sdk .StatusBuilding }
413
+ case 2 :
414
+ status = []sdk.Status {sdk .StatusWaiting , sdk .StatusBuilding }
415
+ }
416
+
378
417
start := time .Now ()
379
- wJobs , errw := client .QueueWorkflowNodeJobRun ()
418
+ wJobs , errw := client .QueueWorkflowNodeJobRun (status ... )
380
419
if errw != nil {
381
420
ui .msg = fmt .Sprintf ("[%s](bg-red)" , errw .Error ())
382
421
return ""
@@ -394,13 +433,13 @@ func (ui *Termui) updateQueue(baseURL string) string {
394
433
var maxQueued time.Duration
395
434
396
435
items := []string {
397
- fmt .Sprintf ("[ %s %s%s %s ➤ %s ➤ %s ➤ %s](fg-cyan,bg-default)" , pad ("since" , 9 ), pad ("booked " , 27 ), pad ("run" , 7 ), pad ("project/workflow" , 30 ), pad ("node" , 20 ), pad ("triggered by" , 17 ), "requirements" ),
436
+ fmt .Sprintf ("[ _ %s %s%s %s ➤ %s ➤ %s ➤ %s](fg-cyan,bg-default)" , pad ("since" , 9 ), pad ("by " , 27 ), pad ("run" , 7 ), pad ("project/workflow" , 30 ), pad ("node" , 20 ), pad ("triggered by" , 17 ), "requirements" ),
398
437
}
399
438
400
439
var idx int
401
440
var item string
402
441
for _ , job := range pbJobs {
403
- item , maxQueued = ui .updateQueueJob (idx , maxQueued , job .ID , false , job .Parameters , job .Job . Action . Requirements , job .Queued , job .BookedBy , baseURL )
442
+ item , maxQueued = ui .updateQueueJob (idx , maxQueued , job .ID , false , job .Parameters , job .Job , job .Queued , job .BookedBy , baseURL , job . Status )
404
443
items = append (items , item )
405
444
idx ++
406
445
}
@@ -414,20 +453,20 @@ func (ui *Termui) updateQueue(baseURL string) string {
414
453
msg = fmt .Sprintf ("[count queue wf %s](fg-cyan,bg-default) | %s" , sdk .Round (elapsed , time .Millisecond ).String (), msg )
415
454
416
455
for _ , job := range wJobs {
417
- item , maxQueued = ui .updateQueueJob (idx , maxQueued , job .ID , true , job .Parameters , job .Job . Action . Requirements , job .Queued , job .BookedBy , baseURL )
456
+ item , maxQueued = ui .updateQueueJob (idx , maxQueued , job .ID , true , job .Parameters , job .Job , job .Queued , job .BookedBy , baseURL , job . Status )
418
457
items = append (items , item )
419
458
idx ++
420
459
}
421
460
ui .queue .Items = items
422
461
423
- t := fmt .Sprintf ("Queue:%d - Max Waiting:%s " , nWJobs .Count + int64 (len (pbJobs )), sdk .Round (maxQueued , time .Second ).String ())
462
+ t := fmt .Sprintf ("Queue(%s) :%d - Max Waiting:%s " , fmt . Sprintf ( "%v" , status ) , nWJobs .Count + int64 (len (pbJobs )), sdk .Round (maxQueued , time .Second ).String ())
424
463
ui .queue .BorderLabel = t
425
464
return msg
426
465
}
427
466
428
- func (ui * Termui ) updateQueueJob (idx int , maxQueued time.Duration , id int64 , isWJob bool , parameters []sdk.Parameter , requirements [] sdk.Requirement , queued time.Time , bookedBy sdk.Hatchery , baseURL string ) (string , time.Duration ) {
467
+ func (ui * Termui ) updateQueueJob (idx int , maxQueued time.Duration , id int64 , isWJob bool , parameters []sdk.Parameter , executedJob sdk.ExecutedJob , queued time.Time , bookedBy sdk.Hatchery , baseURL , status string ) (string , time.Duration ) {
429
468
req := ""
430
- for _ , r := range requirements {
469
+ for _ , r := range executedJob . Job . Action . Requirements {
431
470
req += fmt .Sprintf ("%s:%s " , r .Type , r .Value )
432
471
}
433
472
prj := getVarsInPbj ("cds.project" , parameters )
@@ -470,7 +509,9 @@ func (ui *Termui) updateQueueJob(idx int, maxQueued time.Duration, id int64, isW
470
509
fgColor = "fg-magenta"
471
510
}
472
511
473
- if bookedBy .ID != 0 {
512
+ if status == sdk .StatusBuilding .String () {
513
+ row [1 ] = pad (fmt .Sprintf (" %s.%s " , executedJob .WorkerName , executedJob .WorkerID ), 27 )
514
+ } else if bookedBy .ID != 0 {
474
515
row [1 ] = pad (fmt .Sprintf (" %s.%d " , bookedBy .Name , bookedBy .ID ), 27 )
475
516
} else {
476
517
row [1 ] = pad ("" , 27 )
@@ -479,7 +520,9 @@ func (ui *Termui) updateQueueJob(idx int, maxQueued time.Duration, id int64, isW
479
520
row [4 ] = fmt .Sprintf ("➤ %s" , pad (triggeredBy , 17 ))
480
521
row [5 ] = fmt .Sprintf ("➤ %s" , req )
481
522
482
- item := fmt .Sprintf (" [%s](%s)[%s %s %s %s %s](%s,bg-default)" , row [0 ], c , row [1 ], row [2 ], row [3 ], row [4 ], row [5 ], fgColor )
523
+ _ , color := statusShort (status )
524
+ color = strings .Replace (color , "fg" , "bg" , 1 )
525
+ item := fmt .Sprintf (" [ ](%s)[ ](bg-default)[%s](%s)[%s %s %s %s %s](%s,bg-default)" , color , row [0 ], c , row [1 ], row [2 ], row [3 ], row [4 ], row [5 ], fgColor )
483
526
484
527
if idx == ui .queue .Cursor - 1 {
485
528
ui .currentURL = currentURL
0 commit comments