]> git.proxmox.com Git - qemu-server.git/commitdiff
api2: only add ide drives for non-legacy bootorders
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 5 Aug 2021 11:53:01 +0000 (13:53 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Thu, 5 Aug 2021 11:58:35 +0000 (13:58 +0200)
@bootorder only contains entries for non-legacy bootorder entries,
but the default one contains all cdroms anyway, and if the user
explicitely disabled cdroms, it is ok to not add them back
for the new cdrom drive.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
PVE/API2/Qemu.pm

index 94cc0d274207ac7186b2dc5c8b23334d6533f5f4..ef0d877681972e14c365763295dad902a45352dc 100644 (file)
@@ -1358,12 +1358,15 @@ my $update_vm_api  = sub {
 
                    &$create_disks($rpcenv, $authuser, $conf->{pending}, $arch, $storecfg, $vmid, undef, {$opt => $param->{$opt}});
 
-                   # append new CD drives to bootorder to mark them bootable
-                   my $drive = PVE::QemuServer::parse_drive($opt, $param->{$opt});
-                   if (PVE::QemuServer::drive_is_cdrom($drive, 1) && !grep(/^$opt$/, @bootorder)) {
-                       push @bootorder, $opt;
-                       $conf->{pending}->{boot} = PVE::QemuServer::print_bootorder(\@bootorder);
-                       $modified->{boot} = 1;
+                   # default legacy boot order implies all cdroms anyway
+                   if (@bootorder) {
+                       # append new CD drives to bootorder to mark them bootable
+                       my $drive = PVE::QemuServer::parse_drive($opt, $param->{$opt});
+                       if (PVE::QemuServer::drive_is_cdrom($drive, 1) && !grep(/^$opt$/, @bootorder)) {
+                           push @bootorder, $opt;
+                           $conf->{pending}->{boot} = PVE::QemuServer::print_bootorder(\@bootorder);
+                           $modified->{boot} = 1;
+                       }
                    }
                } elsif ($opt =~ m/^serial\d+/) {
                    if ((!defined($conf->{$opt}) || $conf->{$opt} eq 'socket') && $param->{$opt} eq 'socket') {