X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=PVE%2FReplicationConfig.pm;h=d597799308e045a076ee5ee36c06c08cec5d06c2;hb=24691c2141998ae84e2cd968a700df2bd3792695;hp=51cfe81ead08fb702a7bbea214a467644973a16a;hpb=18c369255da64d14f14a4c030d5fb1acf323b279;p=pve-guest-common.git diff --git a/PVE/ReplicationConfig.pm b/PVE/ReplicationConfig.pm index 51cfe81..d597799 100644 --- a/PVE/ReplicationConfig.pm +++ b/PVE/ReplicationConfig.pm @@ -79,6 +79,11 @@ my $defaultData = { default => '*/15', optional => 1, }, + source => { + description => "Source of the replication.", + type => 'string', format => 'pve-node', + optional => 1, + }, }, }; @@ -165,7 +170,7 @@ sub write_config { if defined($data->{comment}); } - $class->SUPER::write_config($filename, $cfg); + return $class->SUPER::write_config($filename, $cfg); } sub new { @@ -253,6 +258,19 @@ sub delete_job { lock($code); } +sub swap_source_target_nolock { + my ($jobid) = @_; + + my $cfg = __PACKAGE__->new(); + my $job = $cfg->{ids}->{$jobid}; + my $tmp = $job->{source}; + $job->{source} = $job->{target}; + $job->{target} = $tmp; + $cfg->write(); + + return $cfg->{ids}->{$jobid}; +} + package PVE::ReplicationConfig::Cluster; use base qw(PVE::ReplicationConfig); @@ -278,6 +296,7 @@ sub options { rate => { optional => 1 }, schedule => { optional => 1 }, remove_job => { optional => 1 }, + source => { optional => 1 }, }; }