From 247ef80ac194f1824c5021dc248b99331dd6ce31 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 24 Oct 2020 11:06:03 +0100 Subject: Add some validation for hooks --- guix-build-coordinator/coordinator.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm index 6983763..62d181b 100644 --- a/guix-build-coordinator/coordinator.scm +++ b/guix-build-coordinator/coordinator.scm @@ -79,12 +79,45 @@ (allocator-thread build-coordinator-allocator-thread set-build-coordinator-allocator-thread!)) +(define %known-hooks + '(build-submitted + build-started + build-success + build-failure + build-missing-inputs)) + (define* (make-build-coordinator #:key datastore hooks (metrics-registry (make-metrics-registry #:namespace "guixbuildcoordinator")) (allocation-strategy basic-build-allocation-strategy)) + (and (or (list? hooks) + (begin + (simple-format + #t "warning: guix-build-coordinator: hooks should be a list\n") + #f)) + (for-each + (match-lambda + ((hook-name . hook) + (unless (member hook-name %known-hooks) + (simple-format + #t "warning: guix-build-coordinator: hook name ~A not recognised + it should be one of: ~A\n" + hook-name + (string-join (map symbol->string %known-hooks) ", "))) + + (unless (procedure? hook) + (simple-format + #t "warning: guix-build-coordinator: hook ~A value is not a procedure ~A\n" + hook-name + hook))) + (unknown + (simple-format + #t "warning: guix-build-coordinator: hooks entry is not a pair: ~A\n" + unknown))) + hooks)) + (let ((build-coordinator (make-build-coordinator-record datastore hooks -- cgit v1.2.3