diff options
author | Christopher Baines <mail@cbaines.net> | 2020-04-23 18:27:38 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-04-23 19:30:55 +0100 |
commit | d1020a834a09a76cd5c98fe81ebad2968b193872 (patch) | |
tree | a6f623c9a8d012f50ecc0d06ccc733a951f2dfd0 /guix-build-coordinator/agent.scm | |
parent | 78287e9cc4a8c8f000ccb6e6e5641180274e0e8e (diff) | |
download | build-coordinator-d1020a834a09a76cd5c98fe81ebad2968b193872.tar build-coordinator-d1020a834a09a76cd5c98fe81ebad2968b193872.tar.gz |
Send over some metadata from the agent for each output
This will hopefully make it easier to create narinfo files for the outputs. I
think all of this information can be derived from the nar, but I'm not sure
how to do that, so maybe this can eventually be removed.
Diffstat (limited to 'guix-build-coordinator/agent.scm')
-rw-r--r-- | guix-build-coordinator/agent.scm | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm index a528143..ec4860d 100644 --- a/guix-build-coordinator/agent.scm +++ b/guix-build-coordinator/agent.scm @@ -26,6 +26,7 @@ #:use-module (web http) #:use-module (guix store) #:use-module (guix derivations) + #:use-module (guix base32) #:use-module (guix-build-coordinator utils) #:use-module (guix-build-coordinator agent-messaging http) #:export (run-agent)) @@ -145,13 +146,29 @@ (define (post-build uuid coordinator-uri password build-id derivation) - (for-each - (match-lambda - ((output-name . output) - (submit-output coordinator-uri uuid password - build-id output-name - (derivation-output-path output)))) - (derivation-outputs (read-derivation-from-file derivation))) - - (submit-build-result coordinator-uri uuid password build-id - '((result . success)))) + (let ((output-details + (map + (match-lambda + ((output-name . output) + (submit-output coordinator-uri uuid password + build-id output-name + (derivation-output-path output)) + + (let ((path-info (with-store store + (query-path-info + store + (derivation-output-path output))))) + `((name . ,output-name) + (hash . ,(bytevector->nix-base32-string + (path-info-hash path-info))) + (size . ,(path-info-nar-size path-info)) + (references . ,(list->vector + (map basename + (path-info-references path-info)))))))) + + (derivation-outputs (read-derivation-from-file derivation))))) + + (submit-build-result + coordinator-uri uuid password build-id + `((result . success) + (outputs . ,(list->vector output-details)))))) |