emacs-bug-tracker
[Top][All Lists]
Advanced

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

[debbugs-tracker] bug#29699: closed ([PATCH] guix: offload: Add "status"


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#29699: closed ([PATCH] guix: offload: Add "status" sub-command.)
Date: Sat, 16 Dec 2017 20:54:01 +0000

Your message dated Sat, 16 Dec 2017 21:52:36 +0100
with message-id <address@hidden>
and subject line Re: [bug#29699] [PATCH] guix: offload: Add "status" 
sub-command.
has caused the debbugs.gnu.org bug report #29699,
regarding [PATCH] guix: offload: Add "status" sub-command.
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
29699: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=29699
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH] guix: offload: Add "status" sub-command. Date: Wed, 13 Dec 2017 23:44:09 +0100
* guix/scripts/offload.scm (check-machine-load): New procedure.
(guix-offload): Call it when the argument is "status".
* doc/guix.texi (Daemon Offload Setup): Document it.
---
 doc/guix.texi            |  9 +++++++++
 guix/scripts/offload.scm | 26 ++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 92ac45b1c..6845a4271 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -1066,6 +1066,15 @@ regular expression like this:
 # guix offload test machines.scm '\.gnu\.org$'
 @end example
 
address@hidden offload status
+To display the current load of all build hosts, run this command on the
+main node:
+
address@hidden
+# guix offload status
address@hidden example
+
+
 @node Invoking guix-daemon
 @section Invoking @command{guix-daemon}
 
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index ebd0bf783..40bc68b11 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <address@hidden>
+;;; Copyright © 2017 Ricardo Wurmus <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -629,6 +630,19 @@ machine."
       (for-each assert-node-can-import nodes names sockets)
       (for-each assert-node-can-export nodes names sockets))))
 
+(define (check-machine-load machine-file pred)
+  "Print the load of each machine matching PRED in MACHINE-FILE."
+  (define (build-machine=? m1 m2)
+    (and (string=? (build-machine-name m1) (build-machine-name m2))
+         (= (build-machine-port m1) (build-machine-port m2))))
+
+  ;; A given build machine may appear several times (e.g., once for
+  ;; "x86_64-linux" and a second time for "i686-linux"); test them only once.
+  (let ((machines (filter pred
+                          (delete-duplicates (build-machines machine-file)
+                                             build-machine=?))))
+    (for-each machine-load machines)))
+
 
 ;;;
 ;;; Entry point.
@@ -691,6 +705,18 @@ machine."
                        (()     (values %machine-file (const #t)))
                        (x      (leave (G_ "wrong number of arguments~%"))))))
          (check-machine-availability (or file %machine-file) pred))))
+    (("status" rest ...)
+     (with-error-handling
+       (let-values (((file pred)
+                     (match rest
+                       ((file regexp)
+                        (values file
+                                (compose (cut string-match regexp <>)
+                                         build-machine-name)))
+                       ((file) (values file (const #t)))
+                       (()     (values %machine-file (const #t)))
+                       (x      (leave (G_ "wrong number of arguments~%"))))))
+         (check-machine-load (or file %machine-file) pred))))
     (("--version")
      (show-version-and-exit "guix offload"))
     (("--help")
-- 
2.15.0






--- End Message ---
--- Begin Message --- Subject: Re: [bug#29699] [PATCH] guix: offload: Add "status" sub-command. Date: Sat, 16 Dec 2017 21:52:36 +0100 User-agent: mu4e 0.9.18; emacs 25.3.1
Ludovic Courtès <address@hidden> writes:

> Ricardo Wurmus <address@hidden> skribis:
>
>> Ludovic Courtès <address@hidden> writes:
>>
>>> Ricardo Wurmus <address@hidden> skribis:
>>>
>>>> * guix/scripts/offload.scm (check-machine-load): New procedure.
>>>> (guix-offload): Call it when the argument is "status".
>>>> * doc/guix.texi (Daemon Offload Setup): Document it.
>>>
>>> Nice, LGTM!
>>>
>>>> +(define (check-machine-load machine-file pred)
>>>> +  "Print the load of each machine matching PRED in MACHINE-FILE."
>>>> +  (define (build-machine=? m1 m2)
>>>> +    (and (string=? (build-machine-name m1) (build-machine-name m2))
>>>> +         (= (build-machine-port m1) (build-machine-port m2))))
>>>> +
>>>> +  ;; A given build machine may appear several times (e.g., once for
>>>> +  ;; "x86_64-linux" and a second time for "i686-linux"); test them only 
>>>> once.
>>>> +  (let ((machines (filter pred
>>>> +                          (delete-duplicates (build-machines machine-file)
>>>> +                                             build-machine=?))))
>>>> +    (for-each machine-load machines)))
>>>
>>> Perhaps we could also display information from ‘uname’, as in
>>> <https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/machine-status.scm#n118>?
>>
>> I didn’t even notice machine-status.scm!  Should we just fold that into
>> offload.scm instead of accepting my simplistic “check-machine-load”
>> procedure?
>
> Sure, I guess it’s just a matter of adding (node-eval node '(uname)) in
> ‘check-machine-load’ and printing that.

Okay, pushed to master with commit dafc3dafe.
I renamed the procedure to “check-machine-status” because it does more
than just print the load.

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net




--- End Message ---

reply via email to

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