Improve the error handling for the build page

This commit is contained in:
Christopher Baines 2019-12-16 20:43:16 +00:00
parent 7e476536cb
commit a019a5ed82

View file

@ -28,6 +28,8 @@
#:use-module (guix-data-service model build-status) #:use-module (guix-data-service model build-status)
#:use-module (guix-data-service model nar) #:use-module (guix-data-service model nar)
#:use-module (guix-data-service model build-server-token-seed) #:use-module (guix-data-service model build-server-token-seed)
#:use-module (guix-data-service web util)
#:use-module (guix-data-service web view html)
#:use-module (guix-data-service web jobs html) #:use-module (guix-data-service web jobs html)
#:use-module (guix-data-service web build-server html) #:use-module (guix-data-service web build-server html)
#:export (build-server-controller)) #:export (build-server-controller))
@ -45,27 +47,35 @@
`((error . "invalid query")))) `((error . "invalid query"))))
(else (else
(render-html (render-html
#:sxml (view-build query-parameters)))) #:sxml (view-build query-parameters
#f
#f))))
(let* ((derivation-file-name (let* ((derivation-file-name
(assq-ref query-parameters 'derivation_file_name)) (assq-ref query-parameters 'derivation_file_name))
(build (build
(select-build-by-build-server-and-derivation-file-name (select-build-by-build-server-and-derivation-file-name
conn conn
build-server-id build-server-id
derivation-file-name)) derivation-file-name)))
(latest-build-status (if build
(assoc-ref (last (vector->list (second build))) (render-html
"status"))) #:sxml
(render-html (view-build query-parameters
#:sxml build
(view-build query-parameters (if (string=?
build (assoc-ref (last (vector->list (second build)))
(if (string=? latest-build-status "failed-dependency") "status")
(select-required-builds-that-failed "failed-dependency")
conn (select-required-builds-that-failed
build-server-id conn
derivation-file-name) build-server-id
#f)))))) derivation-file-name)
#f)))
(render-html
#:sxml (general-not-found
"Build not found"
"No build found for this build server and derivation.")
#:code 404)))))
(define (handle-build-event-submission parsed-query-parameters (define (handle-build-event-submission parsed-query-parameters
build-server-id-string build-server-id-string