aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/client-communication.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-01-12 14:55:30 +0000
committerChristopher Baines <mail@cbaines.net>2024-01-12 14:55:30 +0000
commitd6edfc8f8f474ccb1c200f2135384646f11c8fb5 (patch)
tree77b2ab1247ce0b346f3fcb799096c70cce14a1b0 /guix-build-coordinator/client-communication.scm
parentf2d4f61b0b36f3a0c23e6eeef60085e7e27a543f (diff)
downloadbuild-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.scm42
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)