From 87f584d8f9b957b9ae0138d6963077d87ccb2067 Mon Sep 17 00:00:00 2001 From: Peter Mocary Date: Mon, 20 Oct 2025 11:40:04 +0200 Subject: [PATCH 30/55] skip pre-generation of systemd fstab mount units during LiveMode upgrade The new storage initialization solution interfered with LiveMode. Since LiveMode is a different upgrade approach, we now skip pre-generation of systemd fstab mount units (mount_unit_generator actor) when upgrading this way. --- .../actors/initramfs/mount_units_generator/actor.py | 5 ++++- .../libraries/mount_unit_generator.py | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/repos/system_upgrade/common/actors/initramfs/mount_units_generator/actor.py b/repos/system_upgrade/common/actors/initramfs/mount_units_generator/actor.py index 5fe25515..dd667513 100644 --- a/repos/system_upgrade/common/actors/initramfs/mount_units_generator/actor.py +++ b/repos/system_upgrade/common/actors/initramfs/mount_units_generator/actor.py @@ -1,16 +1,19 @@ from leapp.actors import Actor from leapp.libraries.actor import mount_unit_generator as mount_unit_generator_lib -from leapp.models import TargetUserSpaceInfo, UpgradeInitramfsTasks +from leapp.models import LiveModeConfig, TargetUserSpaceInfo, UpgradeInitramfsTasks from leapp.tags import InterimPreparationPhaseTag, IPUWorkflowTag class MountUnitGenerator(Actor): """ Sets up storage initialization using systemd's mount units in the upgrade container. + + Note that this storage initialization is skipped when the LiveMode is enabled. """ name = 'mount_unit_generator' consumes = ( + LiveModeConfig, TargetUserSpaceInfo, ) produces = ( diff --git a/repos/system_upgrade/common/actors/initramfs/mount_units_generator/libraries/mount_unit_generator.py b/repos/system_upgrade/common/actors/initramfs/mount_units_generator/libraries/mount_unit_generator.py index e1060559..943bddd4 100644 --- a/repos/system_upgrade/common/actors/initramfs/mount_units_generator/libraries/mount_unit_generator.py +++ b/repos/system_upgrade/common/actors/initramfs/mount_units_generator/libraries/mount_unit_generator.py @@ -5,7 +5,7 @@ import tempfile from leapp.exceptions import StopActorExecutionError from leapp.libraries.common import mounting from leapp.libraries.stdlib import api, CalledProcessError, run -from leapp.models import TargetUserSpaceInfo, UpgradeInitramfsTasks +from leapp.models import LiveModeConfig, TargetUserSpaceInfo, UpgradeInitramfsTasks def run_systemd_fstab_generator(output_directory): @@ -295,8 +295,12 @@ def request_units_inclusion_in_initramfs(files_to_include): def setup_storage_initialization(): - userspace_info = next(api.consume(TargetUserSpaceInfo), None) + livemode_config = next(api.consume(LiveModeConfig), None) + if livemode_config and livemode_config.is_enabled: + api.current_logger().debug('Pre-generation of systemd fstab mount units skipped: The LiveMode is enabled.') + return + userspace_info = next(api.consume(TargetUserSpaceInfo), None) with mounting.NspawnActions(base_dir=userspace_info.path) as upgrade_container_ctx: with tempfile.TemporaryDirectory(dir='/var/lib/leapp/', prefix='tmp_systemd_fstab_') as workspace_path: run_systemd_fstab_generator(workspace_path) -- 2.51.1