this now takes into account the 'not_allowed_nodes' hash we get from the api call. With that, we can now limit the 'local_resources' check for online vms only, as for offline guests, the 'unavailable-resources' hash already includes mapped devices that don't exist on the target node.
This now also includes unavailable storages on target nodes. Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- changes from v6: * dropped the change to check for 'online' (since it was wrong) PVE/API2/Nodes.pm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm index 9cdf19db..61d41304 100644 --- a/PVE/API2/Nodes.pm +++ b/PVE/API2/Nodes.pm @@ -2336,6 +2336,18 @@ my $create_migrate_worker = sub { $invalidConditions .= join(', ', @{$preconditions->{local_resources}}); } + if (my $not_allowed_nodes = $preconditions->{not_allowed_nodes}) { + if (my $unavail_storages = $not_allowed_nodes->{$target}->{unavailable_storages}) { + $invalidConditions .= "\n Has unavailable storages: "; + $invalidConditions .= join(', ', $unavail_storages->@*); + } + + if (my $unavail_resources = $not_allowed_nodes->{$target}->{'unavailable-resources'}) { + $invalidConditions .= "\n Has unavailable resources: "; + $invalidConditions .= join(', ', $unavail_resources->@*); + } + } + if ($invalidConditions && $invalidConditions ne '') { print STDERR "skip VM $vmid - precondition check failed:"; die "$invalidConditions\n"; -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel