[Libguestfs] [v2v PATCH 2/2] Consolidate handling of temporary files/dirs
Eric Blake
eblake at redhat.com
Mon Apr 6 15:48:35 UTC 2020
On 4/6/20 10:40 AM, Pino Toscano wrote:
> Create two temporary directories for all the files created during the
> virt-v2v run:
> 1) tmpdir, created as $TMPDIR/virt-v2v.XXXXXX, for all the small files
> 2) cachedir, created as $LIBGUESTFS_CACHEDIR/virt-v2v.XXXXXX, for the
> big files (e.g. disks)
> This way there is no need to manually schedule all the temporary files
> and directories for removal when the application quits.
> ---
Side note:
> +++ b/v2v/output_glance.ml
> @@ -27,16 +27,6 @@ open Types
> open Utils
>
> class output_glance () =
> - (* Although glance can slurp in a stream from stdin, unfortunately
> - * 'qemu-img convert' cannot write to a stream (although I guess
> - * it could be implemented at least for raw). Therefore we have
> - * to write to a temporary file. XXX
> - *)
> - let tmpdir =
> - let base_dir = (open_guestfs ())#get_cachedir () in
> - let t = Mkdtemp.temp_dir ~base_dir "glance." in
> - rmdir_on_exit t;
> - t in
> object
> inherit output
>
> @@ -60,8 +50,12 @@ object
> method supported_firmware = [ TargetBIOS; TargetUEFI ]
>
> method prepare_targets _ overlays _ =
> - (* Write targets to a temporary local file - see above for reason. *)
> - List.map (fun (_, ov) -> TargetFile (tmpdir // ov.ov_sd)) overlays
> + (* Although glance can slurp in a stream from stdin, unfortunately
> + * 'qemu-img convert' cannot write to a stream (although I guess
> + * it could be implemented at least for raw). Therefore we have
> + * to write to a temporary file. XXX
> + *)
> + List.map (fun (_, ov) -> TargetFile (cachedir // ov.ov_sd)) overlays
I know this was just code motion, but does the nbdkit streaming plugin
help here?
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
More information about the Libguestfs
mailing list