diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-04-10 01:15:13 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-04-10 01:15:13 +0200 |
commit | e25eca35ff04e4234d0376fbb9a8e146869772c8 (patch) | |
tree | 11b817fae0ddfb0d6b6ebf7ecac832568ce4fd66 | |
parent | d10cee786522ca2d321fb942a4da14feaaae091a (diff) | |
download | guix-e25eca35ff04e4234d0376fbb9a8e146869772c8.tar guix-e25eca35ff04e4234d0376fbb9a8e146869772c8.tar.gz |
services: herd: Adjust to <live-service> changes.
This is a followup to a2c759c8304c461d096ab763568e7f71546ff4e8.
* guix/scripts/system/reconfigure.scm (running-services): Fill in the
'transient?' field of <live-service>.
* tests/services.scm ("shepherd-service-upgrade: one unchanged, one upgraded, one new")
("shepherd-service-upgrade: service depended on is not unloaded")
("shepherd-service-upgrade: obsolete services that depend on each
other"): Adjust calls to 'live-service'.
-rw-r--r-- | guix/scripts/system/reconfigure.scm | 8 | ||||
-rw-r--r-- | tests/services.scm | 20 |
2 files changed, 15 insertions, 13 deletions
diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm index bf23fb06af..ca988953f9 100644 --- a/guix/scripts/system/reconfigure.scm +++ b/guix/scripts/system/reconfigure.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> @@ -134,6 +134,7 @@ return the <live-service> objects that are currently running on MACHINE." (map (lambda (service) (list (live-service-provision service) (live-service-requirement service) + (live-service-transient service) (match (live-service-running service) (#f #f) (#t #t) @@ -143,8 +144,9 @@ return the <live-service> objects that are currently running on MACHINE." (mlet %store-monad ((services (eval exp))) (return (map (match-lambda - ((provision requirement running) - (live-service provision requirement running))) + ((provision requirement transient? running) + (live-service provision requirement + transient? running))) services)))) ;; XXX: Currently, this does NOT attempt to restart running services. See diff --git a/tests/services.scm b/tests/services.scm index 572fe38164..03c490100b 100644 --- a/tests/services.scm +++ b/tests/services.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015-2019, 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -212,9 +212,9 @@ ;; because it is not currently running. 'baz' is loaded because it's ;; a new service. (shepherd-service-upgrade - (list (live-service '(foo) '() #t) - (live-service '(bar) '() #f) - (live-service '(root) '() #t)) ;essential! + (list (live-service '(foo) '() #f #t) + (live-service '(bar) '() #f #f) + (live-service '(root) '() #f #t)) ;essential! (list (shepherd-service (provision '(foo)) (start #t)) (shepherd-service (provision '(bar)) @@ -234,9 +234,9 @@ ;; unloaded because 'foo' depends on it. 'foo' gets replaced but it ;; must be restarted manually. (shepherd-service-upgrade - (list (live-service '(foo) '(bar) #t) - (live-service '(bar) '() #t) ;still used! - (live-service '(baz) '() #t)) + (list (live-service '(foo) '(bar) #f #t) + (live-service '(bar) '() #f #t) ;still used! + (live-service '(baz) '() #f #t)) (list (shepherd-service (provision '(foo)) (start #t))))) (lambda (unload restart) @@ -251,9 +251,9 @@ ;; 'foo', 'bar', and 'baz' depend on each other, but all of them are ;; obsolete, and thus should be unloaded. (shepherd-service-upgrade - (list (live-service '(foo) '(bar) #t) ;obsolete - (live-service '(bar) '(baz) #t) ;obsolete - (live-service '(baz) '() #t)) ;obsolete + (list (live-service '(foo) '(bar) #f #t) ;obsolete + (live-service '(bar) '(baz) #f #t) ;obsolete + (live-service '(baz) '() #f #t)) ;obsolete (list (shepherd-service (provision '(qux)) (start #t))))) (lambda (unload restart) |