From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 0CD8479272 for ; Tue, 4 May 2021 10:10:15 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 0B12F2497C for ; Tue, 4 May 2021 10:10:15 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 3C7CD2493F for ; Tue, 4 May 2021 10:10:13 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 0723A428D0 for ; Tue, 4 May 2021 10:10:13 +0200 (CEST) From: Fabian Ebner To: pve-devel@lists.proxmox.com Date: Tue, 4 May 2021 10:09:59 +0200 Message-Id: <20210504081004.21898-6-f.ebner@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210504081004.21898-1-f.ebner@proxmox.com> References: <20210504081004.21898-1-f.ebner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.000 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH zsync 05/10] add target_dataset function X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 May 2021 08:10:15 -0000 so the logic can be re-used and extended in a single place. Signed-off-by: Fabian Ebner --- pve-zsync | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/pve-zsync b/pve-zsync index a21da49..93b0d0d 100755 --- a/pve-zsync +++ b/pve-zsync @@ -725,8 +725,7 @@ sub snapshot_get{ push @$cmd, 'ssh', "$dest_user\@$dest->{ip}", '--', if $dest->{ip}; push @$cmd, 'zfs', 'list', '-r', '-t', 'snapshot', '-Ho', 'name', '-S', 'creation'; - my $path = $dest->{all}; - $path .= "/$source->{last_part}" if $source->{last_part}; + my $path = target_dataset($source, $dest); push @$cmd, $path; my $raw; @@ -900,6 +899,17 @@ sub parse_disks { return $disks; } +# how the corresponding dataset is named on the target +sub target_dataset { + my ($source, $dest) = @_; + + my $target = "$dest->{all}"; + $target .= "/$source->{last_part}" if $source->{last_part}; + $target =~ s!/+!/!g; + + return $target; +} + sub snapshot_destroy { my ($source, $dest, $method, $snap, $source_user, $dest_user) = @_; @@ -919,8 +929,7 @@ sub snapshot_destroy { if ($dest) { my @ssh = $dest->{ip} ? ('ssh', "$dest_user\@$dest->{ip}", '--') : (); - my $path = "$dest->{all}"; - $path .= "/$source->{last_part}" if $source->{last_part}; + my $path = target_dataset($source, $dest); eval { run_cmd([@ssh, @zfscmd, "$path\@$snap"]); @@ -971,9 +980,7 @@ sub send_image { my $bwl = $param->{limit}*1024; push @$cmd, \'|', 'cstream', '-t', $bwl; } - my $target = "$dest->{all}"; - $target .= "/$source->{last_part}" if $source->{last_part}; - $target =~ s!/+!/!g; + my $target = target_dataset($source, $dest); push @$cmd, \'|'; push @$cmd, 'ssh', '-o', 'BatchMode=yes', "$param->{dest_user}\@$dest->{ip}", '--' if $dest->{ip}; -- 2.20.1