From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 4315C65706 for ; Mon, 7 Mar 2022 13:18:23 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C89132726C for ; Mon, 7 Mar 2022 13:17:52 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 7666B2715E for ; Mon, 7 Mar 2022 13:17:48 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 40A9341E20 for ; Mon, 7 Mar 2022 13:17:48 +0100 (CET) From: Fabian Ebner To: pve-devel@lists.proxmox.com Date: Mon, 7 Mar 2022 13:17:31 +0100 Message-Id: <20220307121743.60206-4-f.ebner@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220307121743.60206-1-f.ebner@proxmox.com> References: <20220307121743.60206-1-f.ebner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.126 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pve-devel] [PATCH v11 qemu-server 03/14] api: update: pass correct config when creating disks X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Mar 2022 12:18:23 -0000 While the new options should be written to the pending config, the decisions (currently only one) in create_disks needs to be made for the current config. Seems to fix EFI disk creation, but actually, it's only future-proofing, because, currently, the same OVMF_VARS file is used independently of $smm. The correct config is also needed to determine the correct size for the EFI disk for the upcoming import-from feature. Signed-off-by: Fabian Ebner --- New in v11. PVE/API2/Qemu.pm | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index 02b26d2..c6587ef 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -237,12 +237,7 @@ my $create_disks = sub { die $err; } - # modify vm config if everything went well - foreach my $ds (keys %$res) { - $conf->{$ds} = $res->{$ds}; - } - - return $vollist; + return ($vollist, $res); }; my $check_cpu_model_access = sub { @@ -712,7 +707,18 @@ __PACKAGE__->register_method({ my $vollist = []; eval { - $vollist = &$create_disks($rpcenv, $authuser, $conf, $arch, $storecfg, $vmid, $pool, $param, $storage); + ($vollist, my $created_opts) = $create_disks->( + $rpcenv, + $authuser, + $conf, + $arch, + $storecfg, + $vmid, + $pool, + $param, + $storage, + ); + $conf->{$_} = $created_opts->{$_} for keys $created_opts->%*; if (!$conf->{boot}) { my $devs = PVE::QemuServer::get_default_bootdevices($conf); @@ -1364,7 +1370,17 @@ my $update_vm_api = sub { PVE::QemuServer::vmconfig_register_unused_drive($storecfg, $vmid, $conf, PVE::QemuServer::parse_drive($opt, $conf->{pending}->{$opt})) if defined($conf->{pending}->{$opt}); - &$create_disks($rpcenv, $authuser, $conf->{pending}, $arch, $storecfg, $vmid, undef, {$opt => $param->{$opt}}); + my (undef, $created_opts) = $create_disks->( + $rpcenv, + $authuser, + $conf, + $arch, + $storecfg, + $vmid, + undef, + {$opt => $param->{$opt}}, + ); + $conf->{pending}->{$_} = $created_opts->{$_} for keys $created_opts->%*; # default legacy boot order implies all cdroms anyway if (@bootorder) { -- 2.30.2