aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-05-19 17:39:14 +0100
committerChristopher Baines <mail@cbaines.net>2020-05-19 17:39:14 +0100
commit870ba33917f942d51c3f1b6f74f8287af3bb9c9c (patch)
treeee5856682bc42eb68b7b0e846241a8d900c3f580
parentcde5c17bf681c394e8878e9400dd1c9d477e3f22 (diff)
downloadbuild-coordinator-870ba33917f942d51c3f1b6f74f8287af3bb9c9c.tar
build-coordinator-870ba33917f942d51c3f1b6f74f8287af3bb9c9c.tar.gz
Make it possible to show builds for an output
-rw-r--r--guix-build-coordinator/client-communication.scm14
-rw-r--r--scripts/guix-build-coordinator.in20
2 files changed, 34 insertions, 0 deletions
diff --git a/guix-build-coordinator/client-communication.scm b/guix-build-coordinator/client-communication.scm
index b517f69..dba2203 100644
--- a/guix-build-coordinator/client-communication.scm
+++ b/guix-build-coordinator/client-communication.scm
@@ -39,6 +39,7 @@
send-submit-build-request
request-build-details
+ request-output-details
request-agents-list
send-create-agent-request
send-create-agent-password-request))
@@ -127,6 +128,13 @@
`(,@build-details
(derivation-inputs . ,(list->vector derivation-inputs))
(setup-failures . ,(list->vector setup-failures))))))))
+ (('GET "output" output-components ...)
+ (let* ((output (string-append
+ "/" (string-join output-components "/")))
+ (builds (datastore-list-builds-for-output datastore
+ output)))
+ (render-json
+ `((builds . ,(list->vector builds))))))
(('GET "agents")
(render-json
`((agents . ,(list->vector (datastore-list-agents datastore))))))
@@ -268,6 +276,12 @@
'GET
(string-append "/build/" uuid)))
+(define (request-output-details coordinator-uri
+ output)
+ (send-request coordinator-uri
+ 'GET
+ (string-append "/output" output)))
+
(define (request-agents-list coordinator-uri)
(send-request coordinator-uri
'GET
diff --git a/scripts/guix-build-coordinator.in b/scripts/guix-build-coordinator.in
index e5493de..5c00d7a 100644
--- a/scripts/guix-build-coordinator.in
+++ b/scripts/guix-build-coordinator.in
@@ -336,6 +336,26 @@ processed?: ~A
no-build-submitted-response)
(simple-format #t "build submitted as ~A\n"
(assoc-ref response "build-submitted")))))))))
+ (("output" rest ...)
+ (let ((opts (parse-options (append %base-options
+ %client-options)
+ (append %base-option-defaults
+ %client-option-defaults)
+ rest)))
+ (match (assq-ref opts 'arguments)
+ ((output)
+ (let ((details (request-output-details (assq-ref opts 'coordinator)
+ output)))
+ (for-each
+ (lambda (build)
+ (simple-format
+ #t "~A:\n result: ~A\n processed: ~A\n priority: ~A\n derivation: ~A\n\n"
+ (assoc-ref build "uuid")
+ (assoc-ref build "result")
+ (assoc-ref build "processed")
+ (assoc-ref build "priority")
+ (assoc-ref build "derivation")))
+ (vector->list (assoc-ref details "builds"))))))))
(("agent" "new" rest ...)
(let ((opts (parse-options (append %agent-options
%client-options