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.m...@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?

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to