[pve-devel] [Patch V5 guest-common 6/7] Swap source and target in replication config, if VM was stolen.

Wolfgang Link w.link at proxmox.com
Wed May 9 14:48:26 CEST 2018


---
 PVE/ReplicationState.pm | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/PVE/ReplicationState.pm b/PVE/ReplicationState.pm
index 0851195..2851b62 100644
--- a/PVE/ReplicationState.pm
+++ b/PVE/ReplicationState.pm
@@ -254,8 +254,17 @@ sub job_status {
 
 	my $target = $jobcfg->{target};
 	if (!$jobcfg->{remove_job}) {
-	    # never sync to local node
-	    next if $target eq $local_node;
+	    # check if vm was stolen (swapped source target)
+	    if ($target eq $local_node) {
+		my $source = $jobcfg->{source};
+		if (defined($source) && $source ne $target) {
+		    $jobcfg = PVE::ReplicationConfig::swap_source_target_nolock($jobid);
+		    $cfg->{ids}->{$jobid} = $jobcfg;
+		} else {
+		    # never sync to local node
+		    next;
+		}
+	    }
 
 	    next if !$get_disabled && $jobcfg->{disable};
 	}
-- 
2.11.0




More information about the pve-devel mailing list