From: Daan De Meyer Date: Sat, 16 Mar 2024 19:35:10 +0000 (+0100) Subject: Move condition check into copy_ephemeral() X-Git-Tag: v23~85^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98b380e606c49fb971a815f25da90bb6db844641;p=thirdparty%2Fmkosi.git Move condition check into copy_ephemeral() --- diff --git a/mkosi/qemu.py b/mkosi/qemu.py index 218931fa7..020952d3c 100644 --- a/mkosi/qemu.py +++ b/mkosi/qemu.py @@ -404,6 +404,12 @@ def vsock_notify_handler() -> Iterator[tuple[str, dict[str, str]]]: @contextlib.contextmanager def copy_ephemeral(config: Config, src: Path) -> Iterator[Path]: + if not config.ephemeral or config.output_format in (OutputFormat.cpio, OutputFormat.uki): + with flock_or_die(src): + yield src + + return + src = src.resolve() # tempfile doesn't provide an API to get a random filename in an arbitrary directory so we do this # instead. Limit the size to 16 characters as the output name might be used in a unix socket path by vmspawn and @@ -716,12 +722,10 @@ def run_qemu(args: Args, config: Config) -> None: sandbox=config.sandbox(mounts=[Mount(fname.parent, fname.parent), Mount(src, src, ro=True)]), ) stack.callback(lambda: fname.unlink()) - elif config.ephemeral and config.output_format not in (OutputFormat.cpio, OutputFormat.uki): + else: fname = stack.enter_context( copy_ephemeral(config, config.output_dir_or_cwd() / config.output_with_compression) ) - else: - fname = stack.enter_context(flock_or_die(config.output_dir_or_cwd() / config.output_with_compression)) apply_runtime_size(config, fname) diff --git a/mkosi/vmspawn.py b/mkosi/vmspawn.py index d1fa71375..16f49cf7f 100644 --- a/mkosi/vmspawn.py +++ b/mkosi/vmspawn.py @@ -21,9 +21,7 @@ from mkosi.qemu import ( find_ovmf_firmware, ) from mkosi.run import run -from mkosi.sandbox import Mount from mkosi.types import PathString -from mkosi.util import flock_or_die def run_vmspawn(args: Args, config: Config) -> None: @@ -79,10 +77,7 @@ def run_vmspawn(args: Args, config: Config) -> None: cmdline += [f"--set-credential={k}:{v}" for k, v in config.credentials.items()] with contextlib.ExitStack() as stack: - if config.ephemeral: - fname = stack.enter_context(copy_ephemeral(config, config.output_dir_or_cwd() / config.output)) - else: - fname = stack.enter_context(flock_or_die(config.output_dir_or_cwd() / config.output)) + fname = stack.enter_context(copy_ephemeral(config, config.output_dir_or_cwd() / config.output)) apply_runtime_size(config, fname)