diff options
Diffstat (limited to 'guix-build-coordinator/coordinator.scm')
-rw-r--r-- | guix-build-coordinator/coordinator.scm | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm index d7bc605..b8a93d4 100644 --- a/guix-build-coordinator/coordinator.scm +++ b/guix-build-coordinator/coordinator.scm @@ -825,11 +825,30 @@ active?) (trigger-build-allocation coordinator)) -(define (update-agent-status coordinator agent-uuid - status 1min-load-average - processor-count) +(define* (update-agent-status coordinator agent-uuid + status 1min-load-average + processor-count + #:key initial-status-update?) + (define datastore + (build-coordinator-datastore coordinator)) + + (when initial-status-update? + (datastore-call-with-transaction + datastore + (lambda _ + (for-each + (lambda (build) + (when (assq-ref build 'canceled) + (datastore-remove-build-allocation + datastore + (assq-ref build 'uuid) + agent-uuid))) + (datastore-list-agent-builds + datastore + agent-uuid))))) + (datastore-update-agent-status - (build-coordinator-datastore coordinator) + datastore agent-uuid status 1min-load-average |