--- src/cuirass/base.scm | 5 +++++ src/cuirass/database.scm | 6 +++++- src/cuirass/http.scm | 9 +++++++++ 3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm index fd10e35..943a4f2 100644 --- a/src/cuirass/base.scm +++ b/src/cuirass/base.scm @@ -724,6 +724,11 @@ started)." (checkouts (fetch-inputs spec)) (eval-id (db-add-evaluation name checkouts))) (when eval-id + (db-add-event 'evaluation + (time-second (current-time time-utc)) + `((#:evalutaion . ,eval-id) + (#:specification . ,name) + (#:in_progress . #t))) (compile-checkouts spec (filter compile? checkouts)) (spawn-fiber (lambda () diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm index 83c0c5a..05382d7 100644 --- a/src/cuirass/database.scm +++ b/src/cuirass/database.scm @@ -408,7 +408,11 @@ VALUES (" spec-name ", true);") (define (db-set-evaluation-done eval-id) (with-db-critical-section db (sqlite-exec db "UPDATE Evaluations SET in_progress = false -WHERE id = " eval-id ";"))) +WHERE id = " eval-id ";") + (db-add-event 'evaluation + (time-second (current-time time-utc)) + `((#:evaluation . ,eval-id) + (#:in_progress . #f))))) (define-syntax-rule (with-database body ...) "Run BODY with %DB-CHANNEL being dynamically bound to a channel implementing diff --git a/src/cuirass/http.scm b/src/cuirass/http.scm index 35e3d7f..4a3214d 100644 --- a/src/cuirass/http.scm +++ b/src/cuirass/http.scm @@ -347,6 +347,15 @@ Hydra format." (specifications-table (db-get-specifications)) '()))) + (("api" "evaluation-events") + (let* ((params (request-parameters request)) + ;; 'nr parameter is mandatory to limit query size. + (valid-params? (assq-ref params 'nr))) + (if valid-params? + (respond-json + (object->json-string + (handle-events-request 'evaluation params))) + (respond-json-with-error 500 "Parameter not defined!")))) (("jobset" name) (respond-html -- 2.23.0