mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-08-07 05:12:55 +00:00
migrate: log which local resource causes error
Signed-off-by: Tim Marx <t.marx@proxmox.com>
This commit is contained in:
parent
370b05e719
commit
ca6abacf6b
@ -218,10 +218,10 @@ sub prepare {
|
|||||||
$self->{forcemachine} = PVE::QemuServer::qemu_machine_pxe($vmid, $conf);
|
$self->{forcemachine} = PVE::QemuServer::qemu_machine_pxe($vmid, $conf);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
my $loc_res = PVE::QemuServer::check_local_resources($conf, 1);
|
||||||
if (my $loc_res = PVE::QemuServer::check_local_resources($conf, 1)) {
|
if (scalar @$loc_res) {
|
||||||
if ($self->{running} || !$self->{opts}->{force}) {
|
if ($self->{running} || !$self->{opts}->{force}) {
|
||||||
die "can't migrate VM which uses local devices\n";
|
die "can't migrate VM which uses local devices: " . join(", ", @$loc_res) . "\n";
|
||||||
} else {
|
} else {
|
||||||
$self->log('info', "migrating VM which uses local devices");
|
$self->log('info', "migrating VM which uses local devices");
|
||||||
}
|
}
|
||||||
|
@ -2846,23 +2846,23 @@ sub config_list {
|
|||||||
sub check_local_resources {
|
sub check_local_resources {
|
||||||
my ($conf, $noerr) = @_;
|
my ($conf, $noerr) = @_;
|
||||||
|
|
||||||
my $loc_res = 0;
|
my @loc_res = ();
|
||||||
|
|
||||||
$loc_res = 1 if $conf->{hostusb}; # old syntax
|
push @loc_res, "hostusb" if $conf->{hostusb}; # old syntax
|
||||||
$loc_res = 1 if $conf->{hostpci}; # old syntax
|
push @loc_res, "hostpci" if $conf->{hostpci}; # old syntax
|
||||||
|
|
||||||
$loc_res = 1 if $conf->{ivshmem};
|
push @loc_res, "ivshmem" if $conf->{ivshmem};
|
||||||
|
|
||||||
foreach my $k (keys %$conf) {
|
foreach my $k (keys %$conf) {
|
||||||
next if $k =~ m/^usb/ && ($conf->{$k} eq 'spice');
|
next if $k =~ m/^usb/ && ($conf->{$k} eq 'spice');
|
||||||
# sockets are safe: they will recreated be on the target side post-migrate
|
# sockets are safe: they will recreated be on the target side post-migrate
|
||||||
next if $k =~ m/^serial/ && ($conf->{$k} eq 'socket');
|
next if $k =~ m/^serial/ && ($conf->{$k} eq 'socket');
|
||||||
$loc_res = 1 if $k =~ m/^(usb|hostpci|serial|parallel)\d+$/;
|
push @loc_res, $k if $k =~ m/^(usb|hostpci|serial|parallel)\d+$/;
|
||||||
}
|
}
|
||||||
|
|
||||||
die "VM uses local resources\n" if $loc_res && !$noerr;
|
die "VM uses local resources\n" if scalar @loc_res && !$noerr;
|
||||||
|
|
||||||
return $loc_res;
|
return \@loc_res;
|
||||||
}
|
}
|
||||||
|
|
||||||
# check if used storages are available on all nodes (use by migrate)
|
# check if used storages are available on all nodes (use by migrate)
|
||||||
|
Loading…
Reference in New Issue
Block a user