]> git.proxmox.com Git - pve-guest-common.git/commitdiff
PVE::Replication::prepare - allow to pass undefined $jobid
authorDietmar Maurer <dietmar@proxmox.com>
Mon, 12 Jun 2017 05:53:47 +0000 (07:53 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 12 Jun 2017 05:55:28 +0000 (07:55 +0200)
And remove all replication snapshots in that case. This is useful
for snapshot rollback.

PVE/Replication.pm

index f978267e1f6ad7d9f7b3763a8c17b8013b510c4b..0fa0ffec96015cdbd8c8eb1e3b55f5f706dee7a0 100644 (file)
@@ -79,15 +79,21 @@ sub prepare {
 
     $last_sync //= 0;
 
-    my ($prefix, $snapname) =
-       PVE::ReplicationState::replication_snapshot_name($jobid, $last_sync);
+    my ($prefix, $snapname);
+
+    if (defined($jobid)) {
+       ($prefix, $snapname) = PVE::ReplicationState::replication_snapshot_name($jobid, $last_sync);
+    } else {
+       $prefix = '__replicate_';
+    }
 
     my $last_snapshots = {};
     my $cleaned_replicated_volumes = {};
     foreach my $volid (@$volids) {
        my $list = PVE::Storage::volume_snapshot_list($storecfg, $volid);
        foreach my $snap (@$list) {
-           if ($snap eq $snapname || (defined($parent_snapname) && ($snap eq $parent_snapname))) {
+           if ((defined($snapname) && ($snap eq $snapname)) ||
+               (defined($parent_snapname) && ($snap eq $parent_snapname))) {
                $last_snapshots->{$volid}->{$snap} = 1;
            } elsif ($snap =~ m/^\Q$prefix\E/) {
                $logfunc->("delete stale replication snapshot '$snap' on $volid");