[pve-devel] [PATCH #1941 storage] Plugin: Remove empty directories on VM destroy
Thomas Lamprecht
t.lamprecht at proxmox.com
Thu Jan 24 13:59:18 CET 2019
On 1/23/19 5:39 PM, Christian Ebner wrote:
> Remove directories if they are empty after destroying a VM.
>
works OK, some comment/nit inline.
> Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
> ---
> PVE/Storage/Plugin.pm | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm
> index e0c2a4e..00131df 100644
> --- a/PVE/Storage/Plugin.pm
> +++ b/PVE/Storage/Plugin.pm
> @@ -5,6 +5,7 @@ use warnings;
>
> use File::chdir;
> use File::Path;
> +use File::Basename;
>
> use PVE::Tools qw(run_command);
> use PVE::JSONSchema qw(get_standard_option);
> @@ -689,6 +690,10 @@ sub free_image {
>
> unlink($path) || die "unlink '$path' failed - $!\n";
> }
> +
> + # Clean up empty directories
comments should, in general, not describe (only) what happens but rather why.
The what should be deductible from reading the code, so maybe something like
# try to cleanup directory to not clutter storage with empty $vmid dirs if
# all images from a guest got deleted
> + my $dir = File::Basename::dirname($path);
Just FYI: as File::Basename exports all four of it's functions[0], and you do not
explicitly deny import you could drop the "File::Basename::" here, we use it
that way most of the other times, AFAICT. If you'd write the use statement like:
use File::Basename qw();
you would prevent the default export and you'd need to actually use the module
prefix as you did here.
[0]: editor /usr/lib/x86_64-linux-gnu/perl-base/File/Basename.pm
> + rmdir($dir);
>
> return undef;
> }
>
More information about the pve-devel
mailing list