[pve-devel] [PATCH storage v3 1/4] fix #3972: Remove the .notes file when a backup is deleted
Fabian Ebner
f.ebner at proxmox.com
Mon Jun 13 10:33:50 CEST 2022
Am 20.05.22 um 15:28 schrieb Daniel Tschlatscher:
> When a VM or Container backup was deleted, the .notes file was not
> removed, therefore, over time the dump folder would get polluted with
> notes for backups that no longer existed. As backup names contain a
> timestamp and as the notes cannot be reused because of this, I think
> it is safe to just delete them just like we do with the .log file.
>
> Furthermore, I sourced the deletion of the log and notes file into a
> new function called "archive_auxiliaries_remove". Additionally, the
> archive_info object now returns one more field containing the name of
> the notes file. The test cases have to be adapted to expect this new
> value as the package will not compile otherwise.
>
> Signed-off-by: Daniel Tschlatscher <d.tschlatscher at proxmox.com>
Only found small nits, so consider the series:
Reviewed-by: Fabian Ebner <f.ebner at proxmox.com>
> @@ -1585,16 +1586,25 @@ sub archive_remove {
> die "cannot remove protected archive '$archive_path'\n"
> if -e protection_file_path($archive_path);
>
> + unlink $archive_path or die "removing archive $archive_path failed: $!\n";
> +
> + archive_auxiliaries_remove($archive_path);
> +}
> +
> +sub archive_auxiliaries_remove {
> + my ($archive_path) = @_;
> +
> my $dirname = dirname($archive_path);
> my $archive_info = eval { archive_info($archive_path) } // {};
> my $logfn = $archive_info->{logfilename};
> + my $notesfn = $archive_info->{notesfilename};
Both $logfn and $notesfn are unused.
>
> - unlink $archive_path or die "removing archive $archive_path failed: $!\n";
> + for my $type (qw(log notes)) {
> + my $filename = $archive_info->{"${type}filename"} or next;
> + my $path = "$dirname/$filename";
>
> - if (defined($logfn)) {
> - my $logpath = "$dirname/$logfn";
> - if (-e $logpath) {
> - unlink $logpath or warn "removing log file $logpath failed: $!\n";
> + if (-e $path) {
> + unlink $path or warn "Removing $type file failed: $!\n";
> }
> }
> }
More information about the pve-devel
mailing list