diff options
author | Christopher Baines <mail@cbaines.net> | 2020-10-24 11:06:03 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-10-24 11:06:03 +0100 |
commit | 247ef80ac194f1824c5021dc248b99331dd6ce31 (patch) | |
tree | 24f04105b58fbc5585500849dacf6887a54a19d2 | |
parent | ad7e4624fd89972af0bcc23cd0f5ff481d8974c7 (diff) | |
download | build-coordinator-247ef80ac194f1824c5021dc248b99331dd6ce31.tar build-coordinator-247ef80ac194f1824c5021dc248b99331dd6ce31.tar.gz |
Add some validation for hooks
-rw-r--r-- | guix-build-coordinator/coordinator.scm | 33 |
1 files changed, 33 insertions, 0 deletions
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 |