[pve-devel] [PATCH qemu 2/2] migrate: log which local resource causes error

Dominik Csapak d.csapak at proxmox.com
Fri May 3 13:31:23 CEST 2019


afaics, the error will look like:

"can't migrate VM which uses local devicesivshmem-usb0-hostpci1'

?

would it not be better to do something like


my $loc_res = [];

loop {
    push @$loc_res, 'local_resource';
}

return join(", ", @$loc_res)?

On 5/3/19 1:25 PM, Tim Marx wrote:
> Signed-off-by: Tim Marx <t.marx at proxmox.com>
> ---
>   PVE/QemuMigrate.pm |  2 +-
>   PVE/QemuServer.pm  | 10 +++++-----
>   2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
> index e915a9a..3e5e7d8 100644
> --- a/PVE/QemuMigrate.pm
> +++ b/PVE/QemuMigrate.pm
> @@ -221,7 +221,7 @@ sub prepare {
>   
>       if (my $loc_res = PVE::QemuServer::check_local_resources($conf, 1)) {
>   	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${loc_res}\n";
>   	} else {
>   	    $self->log('info', "migrating VM which uses local devices");
>   	}
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index ee4fbd3..77bace3 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -2846,18 +2846,18 @@ 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
> +    $loc_res = join("-", $loc_res, "hostusb") if $conf->{hostusb}; # old syntax
> +    $loc_res = join("-", $loc_res, "hostpci") if $conf->{hostpci}; # old syntax
>   
> -    $loc_res = 1 if $conf->{ivshmem};
> +    $loc_res = join("-", $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+$/;
> +	$loc_res = join("-", $loc_res, $k) if $k =~ m/^(usb|hostpci|serial|parallel)\d+$/;
>       }
>   
>       die "VM uses local resources\n" if $loc_res && !$noerr;
> 


also that last die statement would also profit from the list of local 
resources, no?




More information about the pve-devel mailing list