aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-12-16 20:43:16 +0000
committerChristopher Baines <mail@cbaines.net>2019-12-16 20:43:16 +0000
commita019a5ed821cf1b7b2c2b0e1bd2dc25a51bbcb84 (patch)
tree7fe025cd434870bb6795713d75c52df3702faa0a /guix-data-service
parent7e476536cb27bc9fbf7db2413ae52b61e6663d36 (diff)
downloaddata-service-a019a5ed821cf1b7b2c2b0e1bd2dc25a51bbcb84.tar
data-service-a019a5ed821cf1b7b2c2b0e1bd2dc25a51bbcb84.tar.gz
Improve the error handling for the build page
Diffstat (limited to 'guix-data-service')
-rw-r--r--guix-data-service/web/build-server/controller.scm40
1 files changed, 25 insertions, 15 deletions
diff --git a/guix-data-service/web/build-server/controller.scm b/guix-data-service/web/build-server/controller.scm
index e0b416e..61aea91 100644
--- a/guix-data-service/web/build-server/controller.scm
+++ b/guix-data-service/web/build-server/controller.scm
@@ -28,6 +28,8 @@
#:use-module (guix-data-service model build-status)
#:use-module (guix-data-service model nar)
#: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 build-server html)
#:export (build-server-controller))
@@ -45,27 +47,35 @@
`((error . "invalid query"))))
(else
(render-html
- #:sxml (view-build query-parameters))))
+ #:sxml (view-build query-parameters
+ #f
+ #f))))
(let* ((derivation-file-name
(assq-ref query-parameters 'derivation_file_name))
(build
(select-build-by-build-server-and-derivation-file-name
conn
build-server-id
- derivation-file-name))
- (latest-build-status
- (assoc-ref (last (vector->list (second build)))
- "status")))
- (render-html
- #:sxml
- (view-build query-parameters
- build
- (if (string=? latest-build-status "failed-dependency")
- (select-required-builds-that-failed
- conn
- build-server-id
- derivation-file-name)
- #f))))))
+ derivation-file-name)))
+ (if build
+ (render-html
+ #:sxml
+ (view-build query-parameters
+ build
+ (if (string=?
+ (assoc-ref (last (vector->list (second build)))
+ "status")
+ "failed-dependency")
+ (select-required-builds-that-failed
+ conn
+ build-server-id
+ 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
build-server-id-string