migrate: log which local resource causes error

Signed-off-by: Tim Marx <t.marx@proxmox.com>
This commit is contained in:
Tim Marx 2019-05-03 14:22:39 +02:00 committed by Thomas Lamprecht
parent 370b05e719
commit ca6abacf6b
2 changed files with 10 additions and 10 deletions

View File

@ -218,10 +218,10 @@ sub prepare {
$self->{forcemachine} = PVE::QemuServer::qemu_machine_pxe($vmid, $conf);
}
if (my $loc_res = PVE::QemuServer::check_local_resources($conf, 1)) {
my $loc_res = PVE::QemuServer::check_local_resources($conf, 1);
if (scalar @$loc_res) {
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 {
$self->log('info', "migrating VM which uses local devices");
}

View File

@ -2846,23 +2846,23 @@ sub config_list {
sub check_local_resources {
my ($conf, $noerr) = @_;
my $loc_res = 0;
my @loc_res = ();
$loc_res = 1 if $conf->{hostusb}; # old syntax
$loc_res = 1 if $conf->{hostpci}; # old syntax
push @loc_res, "hostusb" if $conf->{hostusb}; # 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) {
next if $k =~ m/^usb/ && ($conf->{$k} eq 'spice');
# sockets are safe: they will recreated be on the target side post-migrate
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)