aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/web
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/web')
-rw-r--r--guix-data-service/web/build-server/controller.scm1
-rw-r--r--guix-data-service/web/build/controller.scm6
-rw-r--r--guix-data-service/web/compare/controller.scm38
-rw-r--r--guix-data-service/web/controller.scm18
-rw-r--r--guix-data-service/web/jobs/controller.scm4
-rw-r--r--guix-data-service/web/nar/controller.scm4
-rw-r--r--guix-data-service/web/package/controller.scm4
-rw-r--r--guix-data-service/web/repository/controller.scm36
-rw-r--r--guix-data-service/web/revision/controller.scm62
-rw-r--r--guix-data-service/web/server.scm11
10 files changed, 102 insertions, 82 deletions
diff --git a/guix-data-service/web/build-server/controller.scm b/guix-data-service/web/build-server/controller.scm
index 22088b1..7d2bd24 100644
--- a/guix-data-service/web/build-server/controller.scm
+++ b/guix-data-service/web/build-server/controller.scm
@@ -22,6 +22,7 @@
#:use-module (json)
#:use-module (squee)
#:use-module (fibers)
+ #:use-module (knots resource-pool)
#:use-module (prometheus)
#:use-module (guix-data-service utils)
#:use-module (guix-data-service database)
diff --git a/guix-data-service/web/build/controller.scm b/guix-data-service/web/build/controller.scm
index bf77e03..7924dbb 100644
--- a/guix-data-service/web/build/controller.scm
+++ b/guix-data-service/web/build/controller.scm
@@ -18,6 +18,8 @@
(define-module (guix-data-service web build controller)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
+ #:use-module (knots parallelism)
+ #:use-module (knots resource-pool)
#:use-module (guix-data-service utils)
#:use-module (guix-data-service database)
#:use-module (guix-data-service web render)
@@ -41,7 +43,7 @@
(define parse-build-server
(lambda (v)
- (letpar& ((build-servers
+ (fibers-let ((build-servers
(call-with-resource-from-pool (connection-pool)
select-build-servers)))
(or (any (match-lambda
@@ -88,7 +90,7 @@
'()))
(let ((system (assq-ref parsed-query-parameters 'system))
(target (assq-ref parsed-query-parameters 'target)))
- (letpar& ((build-server-options
+ (fibers-let ((build-server-options
(with-resource-from-pool (connection-pool) conn
(map (match-lambda
((id url lookup-all-derivations
diff --git a/guix-data-service/web/compare/controller.scm b/guix-data-service/web/compare/controller.scm
index e1fab78..dbb4975 100644
--- a/guix-data-service/web/compare/controller.scm
+++ b/guix-data-service/web/compare/controller.scm
@@ -24,6 +24,8 @@
#:use-module (texinfo)
#:use-module (texinfo html)
#:use-module (texinfo plain-text)
+ #:use-module (knots parallelism)
+ #:use-module (knots resource-pool)
#:use-module (guix-data-service utils)
#:use-module (guix-data-service database)
#:use-module (guix-data-service web sxml)
@@ -229,7 +231,7 @@
(define (render-compare mime-types
query-parameters)
(if (any-invalid-query-parameters? query-parameters)
- (letpar& ((base-job
+ (fibers-let ((base-job
(match (assq-ref query-parameters 'base_commit)
(($ <invalid-query-parameter> value)
(with-resource-from-pool (connection-pool) conn
@@ -275,7 +277,7 @@
#f
#f
#f)))))
- (letpar& ((base-revision-id
+ (fibers-let ((base-revision-id
(with-resource-from-pool (connection-pool) conn
(commit->revision-id
conn
@@ -303,7 +305,7 @@
(version-changes
(package-data-version-changes base-packages-vhash
target-packages-vhash)))
- (letpar& ((lint-warnings-data
+ (fibers-let ((lint-warnings-data
(with-resource-from-pool (connection-pool) conn
(group-list-by-first-n-fields
2
@@ -396,7 +398,7 @@
lint-warnings-data))))
#:extra-headers http-headers-for-unchanging-content))
(else
- (letpar& ((lint-warnings-locale-options
+ (fibers-let ((lint-warnings-locale-options
(map
(match-lambda
((locale)
@@ -449,7 +451,7 @@
(target-branch (assq-ref query-parameters 'target_branch))
(target-datetime (assq-ref query-parameters 'target_datetime))
(locale (assq-ref query-parameters 'locale)))
- (letpar& ((base-revision-details
+ (fibers-let ((base-revision-details
(with-resource-from-pool (connection-pool) conn
(select-guix-revision-for-branch-and-datetime
conn
@@ -624,7 +626,7 @@
'(application/json text/html)
mime-types)
((application/json)
- (letpar& ((base-job
+ (fibers-let ((base-job
(and=> (match (assq-ref query-parameters 'base_commit)
(($ <invalid-query-parameter> value)
(and (string? value) value))
@@ -663,7 +665,7 @@
(base_job . ,base-job)
(target_job . ,target-job)))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -695,7 +697,7 @@
(limit-results (assq-ref query-parameters 'limit_results)))
(let ((data
(concatenate!
- (par-map&
+ (fibers-map
(lambda (system)
(with-resource-from-pool (connection-pool) conn
(package-derivation-differences-data
@@ -734,7 +736,7 @@
. ,derivation-changes))
#:stream? #t))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -788,7 +790,7 @@
string->symbol))
(after-name (assq-ref query-parameters 'after_name))
(limit-results (assq-ref query-parameters 'limit_results)))
- (letpar&
+ (fibers-let
((base-revision-details
(with-resource-from-pool (connection-pool) conn
(select-guix-revision-for-branch-and-datetime conn
@@ -800,7 +802,7 @@
target-branch
target-datetime))))
(let ((data
- (par-map&
+ (fibers-map
(lambda (system)
(with-resource-from-pool (connection-pool) conn
(package-derivation-differences-data
@@ -875,7 +877,7 @@
(render-json
'((error . "invalid query"))))
(else
- (letpar& ((base-job
+ (fibers-let ((base-job
(match (assq-ref query-parameters 'base_commit)
(($ <invalid-query-parameter> value)
(with-resource-from-pool (connection-pool) conn
@@ -895,7 +897,7 @@
(let ((base-commit (assq-ref query-parameters 'base_commit))
(target-commit (assq-ref query-parameters 'target_commit)))
- (letpar& ((base-revision-id
+ (fibers-let ((base-revision-id
(with-resource-from-pool (connection-pool) conn
(commit->revision-id
conn
@@ -944,7 +946,7 @@
(render-json
'((error . "invalid query"))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(with-resource-from-pool (connection-pool) conn
list-systems))
(build-server-urls
@@ -963,7 +965,7 @@
(let ((base-commit (assq-ref query-parameters 'base_commit))
(target-commit (assq-ref query-parameters 'target_commit))
(system (assq-ref query-parameters 'system)))
- (letpar& ((data
+ (fibers-let ((data
(with-resource-from-pool (connection-pool) conn
(system-test-derivations-differences-data
conn
@@ -1014,7 +1016,7 @@
(render-json
'((error . "invalid query"))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(with-resource-from-pool (connection-pool) conn
list-systems))
(build-server-urls
@@ -1035,7 +1037,7 @@
(target-branch (assq-ref query-parameters 'target_branch))
(target-datetime (assq-ref query-parameters 'target_datetime))
(system (assq-ref query-parameters 'system)))
- (letpar&
+ (fibers-let
((base-revision-details
(with-resource-from-pool (connection-pool) conn
(select-guix-revision-for-branch-and-datetime conn
@@ -1046,7 +1048,7 @@
(select-guix-revision-for-branch-and-datetime conn
target-branch
target-datetime))))
- (letpar& ((data
+ (fibers-let ((data
(with-resource-from-pool (connection-pool) conn
(system-test-derivations-differences-data
conn
diff --git a/guix-data-service/web/controller.scm b/guix-data-service/web/controller.scm
index d23c2f3..cdf2318 100644
--- a/guix-data-service/web/controller.scm
+++ b/guix-data-service/web/controller.scm
@@ -35,6 +35,8 @@
#:use-module (texinfo html)
#:use-module (squee)
#:use-module (json)
+ #:use-module (knots parallelism)
+ #:use-module (knots resource-pool)
#:use-module (prometheus)
#:use-module (guix-data-service utils)
#:use-module (guix-data-service config)
@@ -234,7 +236,7 @@
#:always-rollback? #t))
(lambda ()
- (letpar& ((metric-values
+ (fibers-let ((metric-values
(with-exception-handler
(lambda (exn)
(simple-format
@@ -456,12 +458,12 @@
(write-metrics registry port))))))))
(define (render-derivation derivation-file-name)
- (letpar& ((derivation
+ (fibers-let ((derivation
(with-resource-from-pool (connection-pool) conn
(select-derivation-by-file-name conn derivation-file-name))))
(if derivation
- (letpar& ((derivation-inputs
+ (fibers-let ((derivation-inputs
(with-resource-from-pool (connection-pool) conn
(select-derivation-inputs-by-derivation-id
conn
@@ -495,7 +497,7 @@
(select-derivation-by-file-name conn
derivation-file-name))))
(if derivation
- (letpar& ((derivation-inputs
+ (fibers-let ((derivation-inputs
(with-resource-from-pool (connection-pool) conn
(select-derivation-inputs-by-derivation-id
conn
@@ -551,7 +553,7 @@
(select-derivation-by-file-name conn
derivation-file-name))))
(if derivation
- (letpar& ((derivation-inputs
+ (fibers-let ((derivation-inputs
(with-resource-from-pool (connection-pool) conn
(select-derivation-inputs-by-derivation-id
conn
@@ -596,7 +598,7 @@
#:sxml (view-narinfos narinfos)))))
(define (render-store-item filename)
- (letpar& ((derivation
+ (fibers-let ((derivation
(with-resource-from-pool (connection-pool) conn
(select-derivation-by-output-filename conn filename))))
(match derivation
@@ -619,7 +621,7 @@
filename)))
#:extra-headers http-headers-for-unchanging-content))))
(derivations
- (letpar& ((nars
+ (fibers-let ((nars
(with-resource-from-pool (connection-pool) conn
(select-nars-for-output conn filename)))
(builds
@@ -656,7 +658,7 @@
conn
filename))))))))))
(derivations
- (letpar& ((nars
+ (fibers-let ((nars
(with-resource-from-pool (connection-pool) conn
(select-nars-for-output conn filename))))
(render-json
diff --git a/guix-data-service/web/jobs/controller.scm b/guix-data-service/web/jobs/controller.scm
index 7e5084f..96621f9 100644
--- a/guix-data-service/web/jobs/controller.scm
+++ b/guix-data-service/web/jobs/controller.scm
@@ -17,6 +17,8 @@
(define-module (guix-data-service web jobs controller)
#:use-module (ice-9 match)
+ #:use-module (knots parallelism)
+ #:use-module (knots resource-pool)
#:use-module (guix-data-service utils)
#:use-module (guix-data-service database)
#:use-module (guix-data-service web render)
@@ -74,7 +76,7 @@
(define (render-jobs mime-types query-parameters)
(define limit-results (assq-ref query-parameters 'limit_results))
- (letpar& ((jobs
+ (fibers-let ((jobs
(with-resource-from-pool (connection-pool) conn
(select-jobs-and-events
conn
diff --git a/guix-data-service/web/nar/controller.scm b/guix-data-service/web/nar/controller.scm
index e2ace7a..f7edac6 100644
--- a/guix-data-service/web/nar/controller.scm
+++ b/guix-data-service/web/nar/controller.scm
@@ -27,6 +27,8 @@
#:use-module (web uri)
#:use-module (web request)
#:use-module (web response)
+ #:use-module (knots parallelism)
+ #:use-module (knots resource-pool)
#:use-module (guix pki)
#:use-module (guix base32)
#:use-module (guix base64)
@@ -155,7 +157,7 @@
#:code 200
#:headers '((content-type . (application/x-narinfo))))
(let ((derivation-file-name (second derivation)))
- (letpar&
+ (fibers-let
((derivation-text
(with-resource-from-pool (reserved-connection-pool) conn
(select-serialized-derivation-by-file-name
diff --git a/guix-data-service/web/package/controller.scm b/guix-data-service/web/package/controller.scm
index 8dc6b0f..792394c 100644
--- a/guix-data-service/web/package/controller.scm
+++ b/guix-data-service/web/package/controller.scm
@@ -19,6 +19,8 @@
#:use-module (ice-9 match)
#:use-module (web uri)
#:use-module (web request)
+ #:use-module (knots parallelism)
+ #:use-module (knots resource-pool)
#:use-module (guix-data-service utils)
#:use-module (guix-data-service database)
#:use-module (guix-data-service web render)
@@ -40,7 +42,7 @@
request
`((system ,parse-system #:default "x86_64-linux")
(target ,parse-target #:default "")))))
- (letpar& ((package-versions-with-branches
+ (fibers-let ((package-versions-with-branches
(with-resource-from-pool (connection-pool) conn
(branches-by-package-version conn name
(assq-ref parsed-query-parameters
diff --git a/guix-data-service/web/repository/controller.scm b/guix-data-service/web/repository/controller.scm
index 0d9434c..101687c 100644
--- a/guix-data-service/web/repository/controller.scm
+++ b/guix-data-service/web/repository/controller.scm
@@ -19,6 +19,8 @@
#:use-module (ice-9 match)
#:use-module (web uri)
#:use-module (web request)
+ #:use-module (knots parallelism)
+ #:use-module (knots resource-pool)
#:use-module (guix-data-service utils)
#:use-module (guix-data-service database)
#:use-module (guix-data-service web render)
@@ -47,7 +49,7 @@
(match method-and-path-components
(('GET "repositories")
- (letpar& ((git-repositories
+ (fibers-let ((git-repositories
(call-with-resource-from-pool (connection-pool)
all-git-repositories)))
(case (most-appropriate-mime-type
@@ -71,7 +73,7 @@
(match (with-resource-from-pool (connection-pool) conn
(select-git-repository conn id))
((label url cgit-url-base fetch-with-authentication? poll-interval)
- (letpar& ((branches
+ (fibers-let ((branches
(with-resource-from-pool (connection-pool) conn
(all-branches-with-most-recent-commit
conn
@@ -119,7 +121,7 @@
`((after_date ,parse-datetime)
(before_date ,parse-datetime)
(limit_results ,parse-result-limit #:default 100)))))
- (letpar& ((revisions
+ (fibers-let ((revisions
(with-resource-from-pool (connection-pool) conn
(most-recent-commits-for-branch
conn
@@ -160,7 +162,7 @@
parsed-query-parameters
revisions)))))))))
(('GET "repository" repository-id "branch" branch-name "package" package-name)
- (letpar& ((package-versions
+ (fibers-let ((package-versions
(with-resource-from-pool (connection-pool) conn
(package-versions-for-branch conn
(string->number repository-id)
@@ -211,7 +213,7 @@
(parse-query-parameters
request
`((system ,parse-system #:default "x86_64-linux")))))
- (letpar& ((system-test-history
+ (fibers-let ((system-test-history
(with-resource-from-pool (connection-pool) conn
(system-test-derivations-for-branch
conn
@@ -256,7 +258,7 @@
valid-systems
system-test-history)))))))
(('GET "repository" repository-id "branch" branch-name "latest-processed-revision")
- (letpar& ((commit-hash
+ (fibers-let ((commit-hash
(with-resource-from-pool (connection-pool) conn
(latest-processed-commit-for-branch conn
repository-id
@@ -273,7 +275,7 @@
repository-id
branch-name))))
(('GET "repository" repository-id "branch" branch-name "latest-processed-revision" "packages")
- (letpar& ((commit-hash
+ (fibers-let ((commit-hash
(with-resource-from-pool (connection-pool) conn
(latest-processed-commit-for-branch conn
repository-id
@@ -313,7 +315,7 @@
repository-id
branch-name))))
(('GET "repository" repository-id "branch" branch-name "latest-processed-revision" "package-derivations")
- (letpar& ((commit-hash
+ (fibers-let ((commit-hash
(with-resource-from-pool (connection-pool) conn
(latest-processed-commit-for-branch conn
repository-id
@@ -422,7 +424,7 @@
branch-name))))
(('GET "repository" repository-id "branch" branch-name
"latest-processed-revision" "system-tests")
- (letpar& ((commit-hash
+ (fibers-let ((commit-hash
(with-resource-from-pool (connection-pool) conn
(latest-processed-commit-for-branch conn
repository-id
@@ -440,7 +442,7 @@
repository-id
branch-name))))
(('GET "repository" repository-id "branch" branch-name "latest-processed-revision" "package-reproducibility")
- (letpar& ((commit-hash
+ (fibers-let ((commit-hash
(with-resource-from-pool (connection-pool) conn
(latest-processed-commit-for-branch conn
repository-id
@@ -462,7 +464,7 @@
repository-id
branch-name))))
(('GET "repository" repository-id "branch" branch-name "latest-processed-revision" "package-substitute-availability")
- (letpar& ((commit-hash
+ (fibers-let ((commit-hash
(with-resource-from-pool (connection-pool) conn
(latest-processed-commit-for-branch conn
repository-id
@@ -476,7 +478,7 @@
branch-name))))
(('GET "repository" repository-id "branch" branch-name "latest-processed-revision"
"lint-warnings")
- (letpar& ((commit-hash
+ (fibers-let ((commit-hash
(with-resource-from-pool (connection-pool) conn
(latest-processed-commit-for-branch conn
repository-id
@@ -510,7 +512,7 @@
repository-id
branch-name))))
(('GET "repository" repository-id "branch" branch-name "latest-processed-revision" "package" name version)
- (letpar& ((commit-hash
+ (fibers-let ((commit-hash
(with-resource-from-pool (connection-pool) conn
(latest-processed-commit-for-branch conn
repository-id
@@ -583,7 +585,7 @@
(assq-ref parsed-query-parameters 'system))
(target
(assq-ref parsed-query-parameters 'target)))
- (letpar&
+ (fibers-let
((package-derivations
(with-resource-from-pool (connection-pool) conn
(package-derivations-for-branch conn
@@ -620,7 +622,7 @@
. ,(list->vector builds)))))
package-derivations))))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -657,7 +659,7 @@
(assq-ref parsed-query-parameters 'target))
(output-name
(assq-ref parsed-query-parameters 'output)))
- (letpar&
+ (fibers-let
((package-outputs
(with-resource-from-pool (connection-pool) conn
(package-outputs-for-branch conn
@@ -695,7 +697,7 @@
. ,(list->vector builds)))))
package-outputs))))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
diff --git a/guix-data-service/web/revision/controller.scm b/guix-data-service/web/revision/controller.scm
index 14a721a..c4a25f7 100644
--- a/guix-data-service/web/revision/controller.scm
+++ b/guix-data-service/web/revision/controller.scm
@@ -24,6 +24,8 @@
#:use-module (texinfo html)
#:use-module (texinfo plain-text)
#:use-module (json)
+ #:use-module (knots parallelism)
+ #:use-module (knots resource-pool)
#:use-module (guix-data-service utils)
#:use-module (guix-data-service database)
#:use-module (guix-data-service web render)
@@ -84,7 +86,7 @@
status))))
(define (parse-build-server v)
- (letpar& ((build-servers
+ (fibers-let ((build-servers
(call-with-resource-from-pool (connection-pool)
select-build-servers)))
(or (any (match-lambda
@@ -395,7 +397,7 @@
`((unknown_commit . ,commit-hash))
#:code 404))
(else
- (letpar& ((job
+ (fibers-let ((job
(with-resource-from-pool (connection-pool) conn
(select-job-for-commit conn commit-hash)))
(git-repositories-and-branches
@@ -423,7 +425,7 @@
`((unknown_commit . ,commit-hash))
#:code 404))
(else
- (letpar& ((job
+ (fibers-let ((job
(with-resource-from-pool (connection-pool) conn
(select-job-for-commit conn commit-hash)))
(git-repositories-and-branches
@@ -448,7 +450,7 @@
(header-text
`("Revision " (samp ,commit-hash)))
(max-age cache-control-default-max-age))
- (letpar& ((packages-count
+ (fibers-let ((packages-count
(with-resource-from-pool (connection-pool) conn
(count-packages-in-revision conn commit-hash)))
(git-repositories-and-branches
@@ -514,7 +516,7 @@
`("Revision " (samp ,commit-hash)))
(header-link
(string-append "/revision/" commit-hash)))
- (letpar& ((system-tests
+ (fibers-let ((system-tests
(with-resource-from-pool (connection-pool) conn
(select-system-tests-for-guix-revision
conn
@@ -542,7 +544,7 @@
(builds . ,(list->vector builds)))))
system-tests))))))
(else
- (letpar& ((git-repositories
+ (fibers-let ((git-repositories
(with-resource-from-pool (connection-pool) conn
(git-repositories-containing-commit conn
commit-hash)))
@@ -568,7 +570,7 @@
(header-link
(string-append "/revision/"
commit-hash)))
- (letpar& ((channel-instances
+ (fibers-let ((channel-instances
(with-resource-from-pool (connection-pool) conn
(select-channel-instances-for-guix-revision conn commit-hash))))
(case (most-appropriate-mime-type
@@ -596,7 +598,7 @@
(define* (render-revision-package-substitute-availability mime-types
commit-hash
#:key path-base)
- (letpar& ((substitute-availability
+ (fibers-let ((substitute-availability
(with-resource-from-pool (connection-pool) conn
(select-package-output-availability-for-revision conn
commit-hash)))
@@ -610,7 +612,7 @@
((application/json)
(render-json
`((commit . ,commit-hash)
- (substitute_servers
+ (xsubstitute_servers
. ,(list->vector
(map (match-lambda
((build-server-id . data)
@@ -642,7 +644,7 @@
(header-link
(string-append "/revision/"
commit-hash)))
- (letpar& ((output-consistency
+ (fibers-let ((output-consistency
(with-resource-from-pool (connection-pool) conn
(select-output-consistency-for-revision conn commit-hash))))
(case (most-appropriate-mime-type
@@ -676,7 +678,7 @@
#:sxml (view-revision-news commit-hash
query-parameters
'()))))
- (letpar& ((news-entries
+ (fibers-let ((news-entries
(with-resource-from-pool (connection-pool) conn
(select-channel-news-entries-contained-in-guix-revision
conn
@@ -735,7 +737,7 @@
99999)) ; TODO There shouldn't be a limit
(fields (assq-ref query-parameters 'field))
(locale (assq-ref query-parameters 'locale)))
- (letpar&
+ (fibers-let
((packages
(with-resource-from-pool (connection-pool) conn
(if search-query
@@ -832,7 +834,7 @@
"/revision/" commit-hash))
(header-text
`("Revision " (samp ,commit-hash))))
- (letpar& ((package-synopsis-counts
+ (fibers-let ((package-synopsis-counts
(with-resource-from-pool (connection-pool) conn
(synopsis-counts-by-locale conn
(commit->revision-id
@@ -872,7 +874,7 @@
(header-link
(string-append
"/revision/" commit-hash)))
- (letpar& ((package-versions
+ (fibers-let ((package-versions
(with-resource-from-pool (connection-pool) conn
(select-package-versions-for-revision conn
commit-hash
@@ -929,7 +931,7 @@
(define has-replacement? (assq-ref query-parameters 'has_replacement))
- (letpar& ((metadata
+ (fibers-let ((metadata
(with-resource-from-pool (connection-pool) conn
(select-package-metadata-by-revision-name-and-version
conn
@@ -1041,7 +1043,7 @@
(render-json
`((error . "invalid query"))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1067,7 +1069,7 @@
(assq-ref query-parameters 'search_query))
(fields
(assq-ref query-parameters 'field)))
- (letpar&
+ (fibers-let
((derivations
(if search-query
(with-resource-from-pool (connection-pool) conn
@@ -1090,7 +1092,7 @@
#:after-name (assq-ref query-parameters 'after_name)
#:include-builds? (member "builds" fields)))
(concatenate!
- (par-map&
+ (fibers-map
(lambda (system)
(with-resource-from-pool (connection-pool) conn
(select-package-derivations-in-revision
@@ -1149,7 +1151,7 @@
derivations))))
#:stream? #t))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1187,7 +1189,7 @@
(render-json
`((error . "invalid query"))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1213,7 +1215,7 @@
(assq-ref query-parameters 'search_query))
(fields
(assq-ref query-parameters 'field)))
- (letpar&
+ (fibers-let
((derivations
(with-resource-from-pool (connection-pool) conn
(select-fixed-output-package-derivations-in-revision
@@ -1242,7 +1244,7 @@
(render-json
`((derivations . ,(list->vector derivations)))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1284,7 +1286,7 @@
(render-json
`((error . "invalid query"))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1308,7 +1310,7 @@
(assq-ref query-parameters 'all_results))
(fields
(assq-ref query-parameters 'field)))
- (letpar&
+ (fibers-let
((derivation-outputs
(with-resource-from-pool (connection-pool) conn
(select-derivation-outputs-in-revision
@@ -1390,7 +1392,7 @@
"not-matching")))))))
derivation-outputs))))))
(else
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1419,7 +1421,7 @@
(header-link
(string-append "/revision/" commit-hash)))
(if (any-invalid-query-parameters? query-parameters)
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1437,7 +1439,7 @@
'())))
(let ((system (assq-ref query-parameters 'system))
(target (assq-ref query-parameters 'target)))
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1492,7 +1494,7 @@
(header-link
(string-append "/revision/" commit-hash)))
(if (any-invalid-query-parameters? query-parameters)
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1509,7 +1511,7 @@
'())))
(let ((system (assq-ref query-parameters 'system))
(target (assq-ref query-parameters 'target)))
- (letpar& ((systems
+ (fibers-let ((systems
(call-with-resource-from-pool (connection-pool)
list-systems))
(targets
@@ -1592,7 +1594,7 @@
(linters (assq-ref query-parameters 'linter))
(message-query (assq-ref query-parameters 'message_query))
(fields (assq-ref query-parameters 'field)))
- (letpar&
+ (fibers-let
((git-repositories
(with-resource-from-pool (connection-pool) conn
(git-repositories-containing-commit conn
diff --git a/guix-data-service/web/server.scm b/guix-data-service/web/server.scm
index 4e08161..a1a888b 100644
--- a/guix-data-service/web/server.scm
+++ b/guix-data-service/web/server.scm
@@ -30,6 +30,8 @@
#:use-module (fibers channels)
#:use-module (fibers scheduler)
#:use-module (fibers conditions)
+ #:use-module (knots web-server)
+ #:use-module (knots resource-pool)
#:use-module ((guix build syscalls)
#:select (set-thread-name))
#:use-module (prometheus)
@@ -246,7 +248,7 @@ port. Also, the port used can be changed by passing the --port option.\n"
(make-counter-metric registry
"resource_pool_checkout_timeouts_total"
#:labels '(pool_name))))
- (%resource-pool-timeout-handler
+ (resource-pool-default-timeout-handler
(lambda (pool proc timeout)
(let ((pool-name
(cond
@@ -269,11 +271,12 @@ port. Also, the port used can be changed by passing the --port option.\n"
request-scheduler)
(let ((render-metrics (make-render-metrics registry)))
- (run-server/patched
- (lambda (request body)
+ (run-knots-web-server
+ (lambda (request)
(metric-increment requests-metric)
- (let ((reply (make-channel)))
+ (let ((body (read-request-body request))
+ (reply (make-channel)))
(spawn-fiber
(lambda ()
(call-with-values