aboutsummaryrefslogtreecommitdiff
path: root/scripts/guix-build-coordinator.in
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/guix-build-coordinator.in')
-rw-r--r--scripts/guix-build-coordinator.in38
1 files changed, 38 insertions, 0 deletions
diff --git a/scripts/guix-build-coordinator.in b/scripts/guix-build-coordinator.in
index 62b48e2..10970d7 100644
--- a/scripts/guix-build-coordinator.in
+++ b/scripts/guix-build-coordinator.in
@@ -156,6 +156,17 @@
(ensure-all-related-derivation-outputs-have-builds . #f)
(tags . ())))
+(define %setup-failure-options
+ (list
+ (option '("agent-id") #t #f
+ (lambda (opt name arg result)
+ (alist-cons 'agent-id
+ arg
+ (alist-delete 'agent-id result))))))
+
+(define %setup-failure-option-defaults
+ `((agent-id . #f)))
+
(define %common-build-filtering-options
(list
(option '("tag") #t #f
@@ -988,6 +999,33 @@ tags:
(assoc-ref
(request-agents-list (assq-ref opts 'coordinator))
"agents")))))
+ (("setup-failures" "list" rest ...)
+ (let ((opts (parse-options (append %client-options
+ %base-options
+ %setup-failure-options)
+ (append %client-option-defaults
+ %base-option-defaults
+ %setup-failure-option-defaults)
+ rest)))
+ (for-each
+ (match-lambda
+ ((build-id . setup-failures)
+ (for-each
+ (lambda (setup-failure)
+ (simple-format #t "~A:\n"
+ (assoc-ref setup-failure "id"))
+ (simple-format #t " build-id: ~A\n"
+ build-id)
+ (simple-format #t " agent-id: ~A\n"
+ (assoc-ref setup-failure "agent-id"))
+ (simple-format #t " failure-reason: ~A\n"
+ (assoc-ref setup-failure "failure-reason"))
+ (newline))
+ (vector->list setup-failures))))
+ (assoc-ref
+ (request-setup-failures (assq-ref opts 'coordinator)
+ #:agent-id (assq-ref opts 'agent-id))
+ "setup_failures"))))
(("dynamic-auth" "create-token")
(let ((opts (parse-options (append %client-options
%base-options)