diff options
author | Christopher Baines <mail@cbaines.net> | 2024-01-12 14:55:30 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2024-01-12 14:55:30 +0000 |
commit | d6edfc8f8f474ccb1c200f2135384646f11c8fb5 (patch) | |
tree | 77b2ab1247ce0b346f3fcb799096c70cce14a1b0 /guix-build-coordinator/client-communication.scm | |
parent | f2d4f61b0b36f3a0c23e6eeef60085e7e27a543f (diff) | |
download | build-coordinator-d6edfc8f8f474ccb1c200f2135384646f11c8fb5.tar build-coordinator-d6edfc8f8f474ccb1c200f2135384646f11c8fb5.tar.gz |
Add more options when updating build priorities
Computing new derived priorities is slow, so these options allow skipping that
if you know what you're doing. For example, if you're updating a batch of
related builds and you want them all to have the same priorities and derived
priorities, you can now do that much quicker.
Diffstat (limited to 'guix-build-coordinator/client-communication.scm')
-rw-r--r-- | guix-build-coordinator/client-communication.scm | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/guix-build-coordinator/client-communication.scm b/guix-build-coordinator/client-communication.scm index 8b2b9a2..4ce0bbf 100644 --- a/guix-build-coordinator/client-communication.scm +++ b/guix-build-coordinator/client-communication.scm @@ -192,13 +192,22 @@ "") "true"))))))) (('POST "build" uuid "update-priority") - (update-build-priority - build-coordinator - uuid - (assoc-ref body "new_priority")) + (let ((query-parameters (request-query-parameters request))) + (update-build-priority + build-coordinator + uuid + (assoc-ref body "new_priority") + #:skip-updating-derived-priorities? + (string=? (or + (assq-ref query-parameters + 'skip-updating-derived-priorities) + "") + "true") + #:override-derived-priority + (assoc-ref body "override_derived_priority")) - (render-json - `((result . "build-priority-updated")))) + (render-json + `((result . "build-priority-updated"))))) (('GET "builds" "blocking") (let ((query-parameters (request-query-parameters request))) (render-json @@ -771,14 +780,23 @@ "&skip-updating-derived-priorities=true" "")))) -(define (send-update-build-priority-request - coordinator-uri - build-id - new-priority) +(define* (send-update-build-priority-request + coordinator-uri + build-id + new-priority + #:key skip-updating-derived-priorities? + override-derived-priority) (send-request coordinator-uri 'POST - (string-append "/build/" build-id "/update-priority") - `((new_priority . ,new-priority)))) + (string-append "/build/" build-id "/update-priority" + (if skip-updating-derived-priorities? + "?skip-updating-derived-priorities=true" + "")) + `((new_priority . ,new-priority) + ,@(if override-derived-priority + `((override_derived_priority + . ,override-derived-priority)) + '())))) (define (request-build-details coordinator-uri uuid) |