[pve-devel] [RFC v10 qemu-server 7/7] api: create disks: factor out common part from if/else

Fabian Ebner f.ebner at proxmox.com
Thu Jan 13 11:08:31 CET 2022


Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---

New in v10.

 PVE/API2/Qemu.pm | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 8c74ecc..fa6aa9c 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -204,7 +204,7 @@ my $create_disks = sub {
 		my $src_size = PVE::Storage::file_size_info($source);
 		die "Could not get file size of $source" if !defined($src_size);
 
-		my (undef, $dst_volid) = PVE::QemuServer::ImportDisk::do_import(
+		(undef, $volid) = PVE::QemuServer::ImportDisk::do_import(
 		    $source,
 		    $vmid,
 		    $storeid,
@@ -215,18 +215,13 @@ my $create_disks = sub {
 		    },
 		);
 
-		push @$vollist, $dst_volid;
-		$disk->{file} = $dst_volid;
 		$disk->{size} = $src_size;
-		delete $disk->{format}; # no longer needed
-		$res->{$ds} = PVE::QemuServer::print_drive($disk);
 	    } else {
 		my $defformat = PVE::Storage::storage_default_format($storecfg, $storeid);
 		my $fmt = $disk->{format} || $defformat;
 
 		$size = PVE::Tools::convert_size($size, 'gb' => 'kb'); # vdisk_alloc uses kb
 
-		my $volid;
 		if ($ds eq 'efidisk0') {
 		    my $smm = PVE::QemuServer::Machine::machine_type_is_q35($conf);
 		    ($volid, $size) = PVE::QemuServer::create_efidisk(
@@ -238,12 +233,13 @@ my $create_disks = sub {
 		} else {
 		    $volid = PVE::Storage::vdisk_alloc($storecfg, $storeid, $vmid, $fmt, undef, $size);
 		}
-		push @$vollist, $volid;
-		$disk->{file} = $volid;
 		$disk->{size} = PVE::Tools::convert_size($size, 'kb' => 'b');
-		delete $disk->{format}; # no longer needed
-		$res->{$ds} = PVE::QemuServer::print_drive($disk);
 	    }
+
+	    push @$vollist, $volid;
+	    $disk->{file} = $volid;
+	    delete $disk->{format}; # no longer needed
+	    $res->{$ds} = PVE::QemuServer::print_drive($disk);
 	} else {
 
 	    PVE::Storage::check_volume_access($rpcenv, $authuser, $storecfg, $vmid, $volid);
-- 
2.30.2





More information about the pve-devel mailing list