From 5b6bf2ff8157a104dc144935d8fe0e68edc8288d Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 1 May 2020 19:53:11 +0100 Subject: Add datastore-list-setup-failures-for-build --- guix-build-coordinator/datastore.scm | 1 + guix-build-coordinator/datastore/sqlite.scm | 30 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/guix-build-coordinator/datastore.scm b/guix-build-coordinator/datastore.scm index 32993a2..e270640 100644 --- a/guix-build-coordinator/datastore.scm +++ b/guix-build-coordinator/datastore.scm @@ -17,6 +17,7 @@ (re-export datastore-count-build-results) (re-export datastore-store-build-result) (re-export datastore-count-setup-failures) +(re-export datastore-list-setup-failures-for-build) (re-export datastore-fetch-setup-failures) (re-export datastore-list-build-outputs) (re-export datastore-list-related-derivations-with-no-build) diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm index 2f65f9f..9ca878b 100644 --- a/guix-build-coordinator/datastore/sqlite.scm +++ b/guix-build-coordinator/datastore/sqlite.scm @@ -25,6 +25,7 @@ datastore-list-agents datastore-find-agent datastore-count-setup-failures + datastore-list-setup-failures-for-build datastore-fetch-setup-failures datastore-store-setup-failure datastore-store-setup-failure/missing-inputs @@ -708,6 +709,35 @@ GROUP BY agent_id, failure_reason"))) result))))) +(define-method (datastore-list-setup-failures-for-build + (datastore ) + build-id) + (call-with-worker-thread + (slot-ref datastore 'worker-reader-thread-channel) + (lambda (db) + (let ((statement + (sqlite-prepare + db + " +SELECT id, agent_id, failure_reason +FROM setup_failures +WHERE build_id = :build_id"))) + + (sqlite-bind-arguments + statement + #:build_id build-id) + + (let ((result (sqlite-map + (match-lambda + (#(id agent-id failure-reason) + `((id . ,id) + (agent-id . ,agent-id) + (failure-reason . ,failure-reason)))) + statement))) + (sqlite-reset statement) + + result))))) + (define-method (datastore-fetch-setup-failures (datastore )) (call-with-worker-thread -- cgit v1.2.3