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 <f.eb...@proxmox.com> --- 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 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel