aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/hooks.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/hooks.scm')
-rw-r--r--guix-build-coordinator/hooks.scm21
1 files changed, 20 insertions, 1 deletions
diff --git a/guix-build-coordinator/hooks.scm b/guix-build-coordinator/hooks.scm
index 38f0a80..a4a8299 100644
--- a/guix-build-coordinator/hooks.scm
+++ b/guix-build-coordinator/hooks.scm
@@ -49,7 +49,8 @@
build-submitted-send-event-to-guix-data-service-hook
build-started-send-event-to-guix-data-service-hook
build-success-send-event-to-guix-data-service-hook
- build-failure-send-event-to-guix-data-service-hook))
+ build-failure-send-event-to-guix-data-service-hook
+ build-canceled-send-event-to-guix-data-service-hook))
(define (default-build-submitted-hook build-coordinator build-id)
(display
@@ -505,3 +506,21 @@
(assq-ref build-details
'end-time)))))
'())))))))
+
+(define (build-canceled-send-event-to-guix-data-service-hook target-url)
+ (lambda (build-coordinator build-id)
+ (define datastore
+ (build-coordinator-datastore build-coordinator))
+
+ (let ((build-details
+ (datastore-find-build datastore build-id)))
+
+ (send-build-event-to-guix-data-service
+ target-url
+ `((type . build)
+ (event . canceled)
+ (build_id . ,build-id)
+ (derivation . ,(assq-ref build-details 'derivation-name))
+ ;; TODO Maybe the time of the actual cancelation should be stored or
+ ;; included in the event
+ (timestamp . ,(current-time)))))))