From: Herman Rimm via Guix-patches via <guix-patches@gnu.org>
To: 75010@debbugs.gnu.org
Subject: [bug#75010] [PATCH 6/7] gnu: machine: ssh: Roll-back on failure.
Date: Sat, 21 Dec 2024 18:04:10 +0100 [thread overview]
Message-ID: <bff43ef960ffdcb7c366767b16f2dbe8da037ee5.1734798943.git.herman@rimm.ee> (raw)
In-Reply-To: <cover.1734798943.git.herman@rimm.ee>
This restores the roll-back behaviour which was disabled in 2885c35.
* gnu/machine/ssh.scm (deploy-managed-host): Use roll-back-machine.
Change-Id: I8636347541ee1e4e30da15dd43455329a46c3bdb
---
gnu/machine/ssh.scm | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index b954620b69..9cc9c8f099 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -512,7 +512,8 @@ (define (deploy-managed-host machine)
(menu-entries (map boot-parameters->menu-entry boot-parameters))
(bootloader-configuration (operating-system-bootloader os))
(bootcfg (operating-system-bootcfg os menu-entries)))
- (define-syntax-rule (eval/error-handling condition handler ...)
+ (define-syntax-rule (eval/error-handling condition store
+ handler ...)
;; Return a wrapper around EVAL such that HANDLER is evaluated if an
;; exception is raised.
(lambda (exp)
@@ -524,7 +525,7 @@ (define (deploy-managed-host machine)
store)))))
(mbegin %store-monad
- (switch-to-system (eval/error-handling c
+ (switch-to-system (eval/error-handling c store
(raise (formatted-message
(G_ "\
failed to switch systems while deploying '~a':~%~{~s ~}")
@@ -535,13 +536,19 @@ (define (deploy-managed-host machine)
(%current-target-system #f))
(mbegin %store-monad
(upgrade-shepherd-services
- (eval/error-handling c
+ (eval/error-handling c store
+ (info (G_ "rolling back ~a...~%") host)
+ (run-with-store store (roll-back-machine machine)
+ #:system system)
(warning (G_ "\
an error occurred while upgrading services on '~a':~%~{~s ~}~%")
host (inferior-exception-arguments c)))
os)
(install-bootloader
- (eval/error-handling c
+ (eval/error-handling c store
+ (info (G_ "rolling back ~a...~%") host)
+ (run-with-store store (roll-back-machine machine)
+ #:system system)
(raise (formatted-message
(G_ "\
failed to install bootloader on '~a':~%~{~s ~}~%")
--
2.45.2
next prev parent reply other threads:[~2024-12-21 17:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1734798943.git.herman@rimm.ee>
2024-12-21 17:04 ` [bug#75010] [PATCH 1/7] monads: Add 'mmatch' Herman Rimm via Guix-patches via
2024-12-21 17:04 ` [bug#75010] [PATCH 2/7] gnu: machine: ssh: Refactor roll-back-managed-host Herman Rimm via Guix-patches via
2024-12-21 17:04 ` [bug#75010] [PATCH 3/7] gnu: machine: ssh: Return monadic value from roll-back-managed-host Herman Rimm via Guix-patches via
2024-12-21 17:04 ` [bug#75010] [PATCH 4/7] Rename two remote variables confusingly named 'generations' Herman Rimm via Guix-patches via
2024-12-21 17:04 ` [bug#75010] [PATCH 5/7] gnu: machine: Remove &deploy-error Herman Rimm via Guix-patches via
2024-12-21 17:04 ` Herman Rimm via Guix-patches via [this message]
2024-12-21 17:04 ` [bug#75010] [PATCH 7/7] WIP: gnu: tests: Add module for guix deploy tests Herman Rimm via Guix-patches via
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bff43ef960ffdcb7c366767b16f2dbe8da037ee5.1734798943.git.herman@rimm.ee \
--to=guix-patches@gnu.org \
--cc=75010@debbugs.gnu.org \
--cc=herman@rimm.ee \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.