diff options
author | Colin Walters <walters@verbum.org> | 2021-02-26 00:42:58 +0000 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2021-02-28 14:47:58 +0000 |
commit | 975496d241d101ed19826bd6bb732dbea9e85813 (patch) | |
tree | 75020fc417f514389cc8314c8226f696fae47445 | |
parent | ea3a971f338f9c27fadbcbab035a3390a68e0688 (diff) | |
download | ostree-975496d241d101ed19826bd6bb732dbea9e85813.tar.gz |
deploy: Add subbootversion to journal
To help debug an issue we've seen where `/boot` isn't
in sync with the `/ostree/boot` dir, let's log to the journal
what we're doing.
-rw-r--r-- | src/libostree/ostree-sysroot-deploy.c | 18 | ||||
-rwxr-xr-x | tests/kolainst/destructive/staged-deploy.sh | 2 |
2 files changed, 14 insertions, 6 deletions
diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c index 0fff820b..2a06f166 100644 --- a/src/libostree/ostree-sysroot-deploy.c +++ b/src/libostree/ostree-sysroot-deploy.c @@ -1675,6 +1675,7 @@ static gboolean swap_bootlinks (OstreeSysroot *self, int bootversion, GPtrArray *new_deployments, + char **out_subbootdir, GCancellable *cancellable, GError **error) { @@ -1699,7 +1700,8 @@ swap_bootlinks (OstreeSysroot *self, if (!symlink_at_replace (ostree_subbootdir_name, ostree_dfd, ostree_bootdir_name, cancellable, error)) return FALSE; - + if (out_subbootdir) + *out_subbootdir = g_steal_pointer (&ostree_subbootdir_name); return TRUE; } @@ -2253,6 +2255,7 @@ write_deployments_bootswap (OstreeSysroot *self, OstreeSysrootWriteDeploymentsOpts *opts, OstreeBootloader *bootloader, SyncStats *out_syncstats, + char **out_subbootdir, GCancellable *cancellable, GError **error) { @@ -2300,7 +2303,8 @@ write_deployments_bootswap (OstreeSysroot *self, new_deployments, cancellable, error)) return FALSE; - if (!swap_bootlinks (self, new_bootversion, new_deployments, + g_autofree char *new_subbootdir = NULL; + if (!swap_bootlinks (self, new_bootversion, new_deployments, &new_subbootdir, cancellable, error)) return FALSE; @@ -2326,6 +2330,8 @@ write_deployments_bootswap (OstreeSysroot *self, cancellable, error)) return FALSE; + if (out_subbootdir) + *out_subbootdir = g_steal_pointer (&new_subbootdir); return TRUE; } @@ -2504,6 +2510,7 @@ ostree_sysroot_write_deployments_with_options (OstreeSysroot *self, gboolean bootloader_is_atomic = FALSE; SyncStats syncstats = { 0, }; g_autoptr(OstreeBootloader) bootloader = NULL; + g_autofree char *new_subbootdir = NULL; if (!requires_new_bootversion) { if (!create_new_bootlinks (self, self->bootversion, @@ -2515,7 +2522,7 @@ ostree_sysroot_write_deployments_with_options (OstreeSysroot *self, return FALSE; if (!swap_bootlinks (self, self->bootversion, - new_deployments, + new_deployments, &new_subbootdir, cancellable, error)) return FALSE; @@ -2529,14 +2536,15 @@ ostree_sysroot_write_deployments_with_options (OstreeSysroot *self, bootloader_is_atomic = bootloader != NULL && _ostree_bootloader_is_atomic (bootloader); if (!write_deployments_bootswap (self, new_deployments, opts, bootloader, - &syncstats, cancellable, error)) + &syncstats, &new_subbootdir, cancellable, error)) return FALSE; } { g_autofree char *msg = - g_strdup_printf ("%s; bootconfig swap: %s; deployment count change: %i", + g_strdup_printf ("%s; bootconfig swap: %s; bootversion: %s, deployment count change: %i", (bootloader_is_atomic ? "Transaction complete" : "Bootloader updated"), requires_new_bootversion ? "yes" : "no", + new_subbootdir, new_deployments->len - self->deployments->len); const gchar *bootloader_config = ostree_repo_get_bootloader (ostree_sysroot_repo (self)); ot_journal_send ("MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(OSTREE_DEPLOYMENT_COMPLETE_ID), diff --git a/tests/kolainst/destructive/staged-deploy.sh b/tests/kolainst/destructive/staged-deploy.sh index a5da0119..0068ed56 100755 --- a/tests/kolainst/destructive/staged-deploy.sh +++ b/tests/kolainst/destructive/staged-deploy.sh @@ -54,7 +54,7 @@ case "${AUTOPKGTEST_REBOOT_MARK:-}" in rpm-ostree status # Assert that the previous boot had a journal entry for it journalctl -b "-1" -u ostree-finalize-staged.service > svc.txt - assert_file_has_content svc.txt 'Bootloader updated; bootconfig swap: yes; deployment count change: 1' + assert_file_has_content svc.txt 'Bootloader updated; bootconfig swap: yes;.*deployment count change: 1' rm -f svc.txt # And there should not be a staged deployment test '!' -f /run/ostree/staged-deployment |