guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: database: Fix db-get-build-percentages.


From: Mathieu Othacehe
Subject: branch master updated: database: Fix db-get-build-percentages.
Date: Thu, 22 Apr 2021 15:23:44 -0400

This is an automated email from the git hooks/post-receive script.

mothacehe pushed a commit to branch master
in repository guix-cuirass.

The following commit(s) were added to refs/heads/master by this push:
     new 6932c56  database: Fix db-get-build-percentages.
6932c56 is described below

commit 6932c565ef825cf5daeb6f5bfe32ca76a6a73d9e
Author: Mathieu Othacehe <othacehe@gnu.org>
AuthorDate: Thu Apr 22 21:23:22 2021 +0200

    database: Fix db-get-build-percentages.
---
 src/cuirass/database.scm | 15 +++++++++++----
 src/cuirass/http.scm     |  6 +-----
 tests/database.scm       |  4 ++--
 3 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index afbca36..9c83925 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -673,7 +673,7 @@ WHERE specification = " specification
   (with-db-worker-thread db
     (let loop ((rows
                 (exec-query/bind db "
-SELECT CASE WHEN last_duration = 0 THEN
+SELECT id, CASE WHEN last_duration = 0 THEN
 0 ELSE LEAST(duration::float/last_duration * 100, 100)::int END AS percentage
 FROM (SELECT  DISTINCT ON (b1.id) b1.id AS id,
 COALESCE((b2.stoptime - b2.starttime), 0) AS last_duration,
@@ -685,9 +685,16 @@ ORDER BY b1.id,  b2.id DESC) d;"))
                (percentages '()))
       (match rows
         (() (reverse percentages))
-        (((percentage) . rest)
-         (loop rest
-               (cons (string->number percentage) percentages)))))))
+        (((id percentage) . rest)
+         (let ((build
+                (find (lambda (build)
+                        (eq? (assq-ref build #:id)
+                             (string->number id)))
+                      builds)))
+           (loop rest
+                 (cons `(,@build
+                         (#:percentage . ,(string->number percentage)))
+                       percentages))))))))
 
 (define (db-add-job job eval-id)
   "Insert JOB into Jobs table for the EVAL-ID evaluation.  It is possible that
diff --git a/src/cuirass/http.scm b/src/cuirass/http.scm
index 45a000d..8c5b83f 100644
--- a/src/cuirass/http.scm
+++ b/src/cuirass/http.scm
@@ -1054,12 +1054,8 @@ passed, only display JOBS targeting this SYSTEM."
        "Workers status"
        (let* ((workers (db-get-workers))
               (builds (db-worker-current-builds))
-              (percentages (db-get-build-percentages builds))
               (builds*
-               (map (lambda (build percentage)
-                      `(,@build
-                        (#:percentage . ,percentage)))
-                    builds percentages)))
+               (db-get-build-percentages builds)))
          (workers-status workers builds*))
        '())))
 
diff --git a/tests/database.scm b/tests/database.scm
index 3f32130..b54bae2 100644
--- a/tests/database.scm
+++ b/tests/database.scm
@@ -539,8 +539,8 @@ timestamp, checkouttime, evaltime) VALUES ('guix', 0, 0, 0, 
0);")
         (db-add-build new)
         (match (db-get-build-percentages
                 (list (db-get-build (assq-ref new #:derivation))))
-          ((percentage)
-           (>= percentage 50))))))
+          ((build)
+           (>= (assq-ref build #:percentage) 50))))))
 
   (test-equal "db-update-build-status!"
     (list #f 1)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]