]> git.proxmox.com Git - qemu-server.git/commitdiff
use qom-get to check if pxe file are used V2
authorAlexandre Derumier <aderumier@odiso.com>
Thu, 5 Nov 2015 18:43:10 +0000 (19:43 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 6 Nov 2015 06:55:07 +0000 (07:55 +0100)
fix qemu 2.4 pxe -> qemu 2.4 efi

Changelog : forget to add a check on qom-get result

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/QemuMigrate.pm
PVE/QemuServer.pm

index 3506e10df37373e6e9f0a1f95f219e141369ac0f..ffa7a0b7dc29fae0fbc46f17a95ff9ae75636c3b 100644 (file)
@@ -142,6 +142,16 @@ sub prepare {
        die "cant migrate running VM without --online\n" if !$online;
        $running = $pid;
        $self->{forcemachine} = PVE::QemuServer::get_current_qemu_machine($vmid);
+
+       foreach my $opt (keys %$conf) {
+           next if $opt !~ m/^net(\d+)$/;
+           my $net = PVE::QemuServer::parse_net($conf->{$opt});
+           next if !$net;
+           my $romfile = PVE::QemuServer::vm_mon_cmd_nocheck($vmid, 'qom-get', path => $opt, property => 'romfile');
+           $self->{forcemachine} .= '.pxe' if $romfile =~ m/pxe/;
+           last;
+       }
+
     }
 
     if (my $loc_res = PVE::QemuServer::check_local_resources($conf, 1)) {
index b5d04481afdb25927a471f1c3d08f2bc89b4b49e..8b6da2fcc108c981be84901f114f7a180f177e97 100644 (file)
@@ -373,7 +373,7 @@ EODESCR
     machine => {
        description => "Specific the Qemu machine type.",
        type => 'string',
-       pattern => '(pc|pc(-i440fx)?-\d+\.\d+|q35|pc-q35-\d+\.\d+)',
+       pattern => '(pc|pc(-i440fx)?-\d+\.\d+(\.pxe)?|q35|pc-q35-\d+\.\d+(\.pxe)?)',
        maxLength => 40,
        optional => 1,
     },
@@ -2657,12 +2657,20 @@ sub config_to_command {
        push @$cmd, '-p', "CPUQuota=$cpulimit\%";
     }
 
-    # Note: kvm version < 2.4 use non-efi pxe files, and have problems when we
-    # load new efi bios files on migration. So this hack is required to allow
-    # live migration from qemu-2.2 to qemu-2.4, which is sometimes used when
-    # updrading from proxmox-ve-3.X to proxmox-ve 4.0
-    my $use_old_bios_files = !qemu_machine_feature_enabled ($machine_type, $kvmver, 2, 4);
-    
+
+    my $use_old_bios_files = undef;
+
+    if ($machine_type && $machine_type =~ m/^(\S+)\.pxe$/){
+       $machine_type = $1;
+       $use_old_bios_files = 1;
+    } else {
+       # Note: kvm version < 2.4 use non-efi pxe files, and have problems when we
+       # load new efi bios files on migration. So this hack is required to allow
+       # live migration from qemu-2.2 to qemu-2.4, which is sometimes used when
+       # updrading from proxmox-ve-3.X to proxmox-ve 4.0
+       $use_old_bios_files = !qemu_machine_feature_enabled ($machine_type, $kvmver, 2, 4);
+    }
+
     push @$cmd, '/usr/bin/kvm';
 
     push @$cmd, '-id', $vmid;