Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> --- PVE/API2/ReplicationConfig.pm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/PVE/API2/ReplicationConfig.pm b/PVE/API2/ReplicationConfig.pm index b85e5804..a8c6213a 100644 --- a/PVE/API2/ReplicationConfig.pm +++ b/PVE/API2/ReplicationConfig.pm @@ -119,13 +119,20 @@ __PACKAGE__->register_method ({ my $vmlist = PVE::Cluster::get_vmlist(); my $guest_info = $vmlist->{ids}->{$guest}; + die "Guest '$guest' does not exist.\n" if !defined($guest_info); die "Target '$param->{target}' does not exist.\n" if defined($param->{target}) && !defined($nodelist->{$param->{target}}); + my $source = $guest_info->{node}; + die "Source '$param->{source}' does not match current node of guest '$guest'\n" + if defined($param->{source}) && $param->{source} ne $source; + + $param->{source} //= $source; + my $guest_class = $PVE::API2::Replication::lookup_guest_class->($guest_info->{type}); - my $guest_conf = $guest_class->load_config($guest, $guest_info->{node}); + my $guest_conf = $guest_class->load_config($guest, $source); my $rep_volumes = $guest_class->get_replicatable_volumes(PVE::Storage::config(), $guest, $guest_conf, 0, 0); die "No replicatable volumes found\n" if !%$rep_volumes; @@ -138,7 +145,6 @@ __PACKAGE__->register_method ({ my $opts = $plugin->check_config($id, $param, 1, 1); $opts->{guest} = $guest; - $opts->{source} //= $vmlist->{ids}->{$guest}->{node}; $cfg->{ids}->{$id} = $opts; -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel