]> git.proxmox.com Git - pmg-api.git/commitdiff
cluster: refactor rsync_command
authorStoiko Ivanov <s.ivanov@proxmox.com>
Mon, 15 Mar 2021 22:01:30 +0000 (23:01 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 16 Mar 2021 18:13:11 +0000 (19:13 +0100)
pull out the ssh part for later reusal

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PMG/Cluster.pm

index 6bb940ae356de6116e6538841fb9ec42433fdc0e..daaa43970bdb8092a628e20b2a92952573f38835 100644 (file)
@@ -280,13 +280,21 @@ my $cond_commit_synced_file = sub {
     return 1;
 };
 
+my $ssh_command = sub {
+    my ($host_key_alias, @args) = @_;
+
+    my $cmd = ['ssh', '-l', 'root', '-o', 'BatchMode=yes'];
+    push @$cmd, '-o', "HostKeyAlias=${host_key_alias}" if $host_key_alias;
+    push @$cmd, @args if @args;
+    return $cmd;
+};
+
 my $rsync_command = sub {
     my ($host_key_alias, @args) = @_;
 
-    my $ssh_cmd = '--rsh=ssh -l root -o BatchMode=yes';
-    $ssh_cmd .=  " -o HostKeyAlias=${host_key_alias}" if $host_key_alias;
+    my $ssh_cmd = join(' ', @{$ssh_command->($host_key_alias)});
 
-    my $cmd = ['rsync', $ssh_cmd,  '-q', @args];
+    my $cmd = ['rsync', "--rsh=$ssh_cmd",  '-q', @args];
 
     return $cmd;
 };