For creation, activation and size update never triggered, because the
passed in $conf is essentially the same as the creation $settings, so
the disk was always detected to be the same as the "existing" one. But
actually, all disks are new, so it makes sense to do it.

For update, activation and size update nearly always triggered,
because only the pending changes are passed in as $conf. The case
where it didn't trigger is when the same pending change was made twice
(there are cases where hotplug isn't done, but makes it even more
unlikely).

Signed-off-by: Fabian Ebner <f.eb...@proxmox.com>
---
 PVE/API2/Qemu.pm | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 9be1caf..02b26d2 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -213,26 +213,13 @@ my $create_disks = sub {
            delete $disk->{format}; # no longer needed
            $res->{$ds} = PVE::QemuServer::print_drive($disk);
        } else {
-
            PVE::Storage::check_volume_access($rpcenv, $authuser, $storecfg, 
$vmid, $volid);
 
-           my $volid_is_new = 1;
-
-           if ($conf->{$ds}) {
-               my $olddrive = PVE::QemuServer::parse_drive($ds, $conf->{$ds});
-               $volid_is_new = undef if $olddrive->{file} && $olddrive->{file} 
eq $volid;
-           }
-
-           if ($volid_is_new) {
+           PVE::Storage::activate_volumes($storecfg, [ $volid ]) if $storeid;
 
-               PVE::Storage::activate_volumes($storecfg, [ $volid ]) if 
$storeid;
-
-               my $size = PVE::Storage::volume_size_info($storecfg, $volid);
-
-               die "volume $volid does not exist\n" if !$size;
-
-               $disk->{size} = $size;
-           }
+           my $size = PVE::Storage::volume_size_info($storecfg, $volid);
+           die "volume $volid does not exist\n" if !$size;
+           $disk->{size} = $size;
 
            $res->{$ds} = PVE::QemuServer::print_drive($disk);
        }
-- 
2.30.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to