From e2414e73ce75893a143dc32cf6a4e58159cc25ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= Date: Mon, 25 Nov 2019 12:03:28 +0100 Subject: [PATCH] fix #2469: fix qemu-img convert src_format detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit if we don't know which format the source volume/file has, let qemu-img decide. Signed-off-by: Fabian Grünbichler Signed-off-by: Thomas Lamprecht --- PVE/QemuServer.pm | 7 ++++--- test/run_qemu_img_convert_tests.pl | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index fcedcf15..89254fb8 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -6715,7 +6715,7 @@ sub qemu_img_convert { my $cachemode; my $src_path; my $src_is_iscsi = 0; - my $src_format = 'raw'; + my $src_format; if ($src_storeid) { PVE::Storage::activate_volumes($storecfg, [$src_volid], $snapname); @@ -6740,14 +6740,15 @@ sub qemu_img_convert { my $cmd = []; push @$cmd, '/usr/bin/qemu-img', 'convert', '-p', '-n'; - push @$cmd, '-l', "snapshot.name=$snapname" if($snapname && $src_format eq "qcow2"); + push @$cmd, '-l', "snapshot.name=$snapname" + if $snapname && $src_format && $src_format eq "qcow2"; push @$cmd, '-t', 'none' if $dst_scfg->{type} eq 'zfspool'; push @$cmd, '-T', $cachemode if defined($cachemode); if ($src_is_iscsi) { push @$cmd, '--image-opts'; $src_path = convert_iscsi_path($src_path); - } else { + } elsif ($src_format) { push @$cmd, '-f', $src_format; } diff --git a/test/run_qemu_img_convert_tests.pl b/test/run_qemu_img_convert_tests.pl index 8a57108d..bd5542fb 100755 --- a/test/run_qemu_img_convert_tests.pl +++ b/test/run_qemu_img_convert_tests.pl @@ -170,7 +170,7 @@ my $tests = [ name => "efidisk", parameters => [ "/usr/share/kvm/OVMF_VARS-pure-efi.fd", "local:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 0 ], expected => [ - "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "-O", "raw", + "/usr/bin/qemu-img", "convert", "-p", "-n", "-O", "raw", "/usr/share/kvm/OVMF_VARS-pure-efi.fd", "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw", ] @@ -179,7 +179,7 @@ my $tests = [ name => "efi2zos", parameters => [ "/usr/share/kvm/OVMF_VARS-pure-efi.fd", "zfs-over-iscsi:vm-$vmid-disk-0", 1024*10, undef, 0 ], expected => [ - "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "--target-image-opts", + "/usr/bin/qemu-img", "convert", "-p", "-n", "--target-image-opts", "/usr/share/kvm/OVMF_VARS-pure-efi.fd", "file.driver=iscsi,file.transport=tcp,file.initiator-name=foobar,file.portal=127.0.0.1,file.target=iqn.2019-10.org.test:foobar,file.lun=1,driver=raw", ]