[pve-devel] [PATCH pve-manager 15/18] PVE::Replication::remote_prepare_local_job - new helper

Dietmar Maurer dietmar at proxmox.com
Tue May 23 09:08:54 CEST 2017


Simple wrapper to call "pvesr prepare-local-job" on a remote
cluster node.

Signed-off-by: Dietmar Maurer <dietmar at proxmox.com>
---
 PVE/Replication.pm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/PVE/Replication.pm b/PVE/Replication.pm
index 0a0ed436..9f5fea1e 100644
--- a/PVE/Replication.pm
+++ b/PVE/Replication.pm
@@ -165,6 +165,28 @@ sub replication_snapshot_name {
     wantarray ? ($prefix, $snapname) : $snapname;
 }
 
+sub remote_prepare_local_job {
+    my ($ssh_info, $jobid, $vmid, $volumes, $last_sync) = @_;
+
+    my $ssh_cmd = PVE::Cluster::ssh_info_to_command($ssh_info);
+    my $cmd = [@$ssh_cmd, '--', 'pvesr', 'prepare-local-job', $jobid,
+	       $vmid, @$volumes, '--last_sync', $last_sync];
+
+    my $remote_snapshots;
+
+    my $parser = sub {
+	my $line = shift;
+	$remote_snapshots = JSON::decode_json($line);
+    };
+
+    PVE::Tools::run_command($cmd, outfunc => $parser);
+
+    die "prepare remote node failed - no result\n"
+	if !defined($remote_snapshots);
+
+    return $remote_snapshots;
+}
+
 sub prepare {
     my ($storecfg, $volids, $jobid, $last_sync, $start_time, $logfunc) = @_;
 
-- 
2.11.0




More information about the pve-devel mailing list