those should be able to migrate even for online vms. If the mapping does
not exist on the target node, that will be caught further down anyway.

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 PVE/API2/Nodes.pm | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
index 882d7301..35e7047c 100644
--- a/PVE/API2/Nodes.pm
+++ b/PVE/API2/Nodes.pm
@@ -2255,9 +2255,18 @@ my $create_migrate_worker = sub {
            $invalidConditions .= join(', ', map { $_->{volid} } 
@{$preconditions->{local_disks}});
        }
 
+       # for a live migration all local_resources must be marked as 
live-migratable
        if ($online && scalar($preconditions->{local_resources}->@*)) {
-           $invalidConditions .= "\n  Has local resources: ";
-           $invalidConditions .= join(', ', 
@{$preconditions->{local_resources}});
+           my $resource_not_live = [];
+           for my $resource ($preconditions->{local_resources}->@*) {
+               next if 
$preconditions->{'mapped-resource-info'}->{$resource}->{'live-migration'};
+               push $resource_not_live->@*, $resource;
+           }
+
+           if (scalar($resource_not_live->@*)) {
+               $invalidConditions .= "\n  Has local resources not marked as 
live migratable: ";
+               $invalidConditions .= join(', ', $resource_not_live->@*);
+           }
        }
 
        if (my $not_allowed_nodes = $preconditions->{not_allowed_nodes}) {
-- 
2.39.2



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

Reply via email to