diff options
author | Christopher Baines <mail@cbaines.net> | 2020-10-11 16:53:29 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-10-11 16:53:29 +0100 |
commit | efbbac50990daa29432440979e83a736b13a42bf (patch) | |
tree | 4af9aa47c79ea2939975a8433e3a47c1f99164c2 | |
parent | 3225766207ed0608476c0caa2f2dcf67f8f2462f (diff) | |
download | data-service-efbbac50990daa29432440979e83a736b13a42bf.tar data-service-efbbac50990daa29432440979e83a736b13a42bf.tar.gz |
Add a very rough JSON output for the package derivation outputs page
-rw-r--r-- | guix-data-service/web/revision/controller.scm | 45 | ||||
-rw-r--r-- | guix-data-service/web/revision/html.scm | 13 |
2 files changed, 57 insertions, 1 deletions
diff --git a/guix-data-service/web/revision/controller.scm b/guix-data-service/web/revision/controller.scm index d5049e0..f6fef86 100644 --- a/guix-data-service/web/revision/controller.scm +++ b/guix-data-service/web/revision/controller.scm @@ -1113,7 +1113,50 @@ mime-types) ((application/json) (render-json - `())) + `((store_paths + . ,(list->vector + (map (match-lambda + ((path hash-algorithm hash recursive + nars) + `((path . ,path) + (data + . ,(if (null? hash-algorithm) + (list->vector + (map + (match-lambda + ((hash . nars) + `((hash . ,hash) + (nars . ,(list->vector nars))))) + (group-to-alist + (lambda (nar) + (cons (assoc-ref nar "hash") + nar)) + (vector->list nars)))) + hash)) + (output_consistency + . ,(let* ((hashes + (delete-duplicates + (map (lambda (nar) + (assoc-ref nar "hash")) + (vector->list nars)))) + (build-servers + (delete-duplicates + (map (lambda (nar) + (assoc-ref nar "build_server_id")) + (vector->list nars)))) + (hash-count + (length hashes)) + (build-server-count + (length build-servers))) + (cond + ((or (eq? hash-count 0) + (eq? build-server-count 1)) + "unknown") + ((eq? hash-count 1) + "matching") + ((> hash-count 1) + "not-matching"))))))) + derivation-outputs)))))) (else (letpar& ((systems (with-thread-postgresql-connection valid-systems)) diff --git a/guix-data-service/web/revision/html.scm b/guix-data-service/web/revision/html.scm index 77a3e13..bb0e72c 100644 --- a/guix-data-service/web/revision/html.scm +++ b/guix-data-service/web/revision/html.scm @@ -1759,6 +1759,19 @@ figure { (div (@ (class "row")) (div + (@ (class "col-sm-12")) + (a (@ (class "btn btn-default btn-lg pull-right") + (href ,(let ((query-parameter-string + (query-parameters->string query-parameters))) + (string-append + path-base ".json" + (if (string-null? query-parameter-string) + "" + (string-append "?" query-parameter-string)))))) + "View JSON"))) + (div + (@ (class "row")) + (div (@ (class "col-md-12")) (h1 "Package derivation outputs") (p "Showing " ,(length derivation-outputs) " results") |