branch: main
commit bc14b891945cecf871cca7e7813f857b6872f8bc
Author: Romain GARBAGE <[email protected]>
AuthorDate: Mon Feb 24 15:38:11 2025 +0100
register: Add support for event logging in the jobset registry.
* src/cuirass/base.scm (jobset-registry, spawn-jobset-registry): Add support
for event logging.
* src/cuirass/scripts/register.scm (cuirass-register): Add log event support
to the jobset registry.
Signed-off-by: Ludovic Courtès <[email protected]>
---
src/cuirass/base.scm | 11 +++++++++--
src/cuirass/scripts/register.scm | 1 +
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index 41e0d5f..3ef6c39 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -1003,7 +1003,8 @@ POLLING-PERIOD seconds."
(define* (jobset-registry channel
#:key (polling-period 60)
- update-service evaluator)
+ update-service evaluator
+ event-log)
(lambda ()
(spawn-fiber
(lambda ()
@@ -1027,6 +1028,8 @@ POLLING-PERIOD seconds."
(#f
(log-error "cannot update non-existent spec '~s'" name))
((_ . monitor)
+ (put-message event-log
+ `(new-event (jobset-updated ,spec)))
(put-message monitor `(update-spec ,spec)))))
(loop registry))
(`(register ,spec)
@@ -1042,6 +1045,8 @@ POLLING-PERIOD seconds."
#:polling-period period))
(name (specification-name spec)))
(log-info "registering new jobset '~a'" name)
+ (put-message event-log
+ `(new-event (jobset-registered ,spec)))
(loop (vhash-consq name monitor
registry))))
((_ . monitor)
@@ -1050,13 +1055,15 @@ POLLING-PERIOD seconds."
(loop registry))))))))
(define* (spawn-jobset-registry #:key (polling-period 60)
- update-service evaluator)
+ update-service evaluator
+ event-log)
"Spawn a jobset registry. In turn, the registry creates a new jobset
monitoring actor for each 'register' message it receives."
(let ((channel (make-channel)))
(spawn-fiber (jobset-registry channel
#:update-service update-service
#:evaluator evaluator
+ #:event-log event-log
#:polling-period polling-period))
channel))
diff --git a/src/cuirass/scripts/register.scm b/src/cuirass/scripts/register.scm
index e977458..38db9a5 100644
--- a/src/cuirass/scripts/register.scm
+++ b/src/cuirass/scripts/register.scm
@@ -302,6 +302,7 @@
(let ((registry (spawn-jobset-registry
#:update-service update-service
#:evaluator evaluator
+ #:event-log event-log-service
#:polling-period interval)))
;; Spawn the bridge through which other 'cuirass'
;; processes, such as 'cuirass web', may talk to the