From bdd1feef5bf74176fc4591a0fee4a530abb1e666 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Mon, 9 Dec 2019 10:31:33 +0100 Subject: [PATCH] fix #2469: fix qemu-img convert src_format detection This reverts commit c5151cb8bb5f919c9e621065224c3d455b60f833 which is a revert of the wrongly done revert of commit e2414e73ce75893a143dc32cf6a4e58159cc25ff. --- 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 0d0e610..76146ca 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -6722,7 +6722,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); @@ -6747,14 +6747,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 8a57108..bd5542f 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", ] -- 2.39.2