[pve-devel] [PATCH container] pct fstrim: add 'ignore_mp' parameter

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Oct 28 17:16:39 CET 2020


On 28.10.20 12:11, Oguz Bektas wrote:
> parameter to ignore mountpoints when doing fstrim on a container
> 
> root at pve:~# pct fstrim 123 --ignore_mp
> /var/lib/lxc/123/rootfs/: 0 B (0 bytes) trimmed
> root at pve:~# pct fstrim 123
> /var/lib/lxc/123/rootfs/: 0 B (0 bytes) trimmed
> /var/lib/lxc/123/rootfs/test: 321.1 MiB (336654336 bytes) trimmed
> 
> Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
> ---
>  src/PVE/CLI/pct.pm | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/src/PVE/CLI/pct.pm b/src/PVE/CLI/pct.pm
> index df4e9f8..056ae78 100755
> --- a/src/PVE/CLI/pct.pm
> +++ b/src/PVE/CLI/pct.pm
> @@ -767,6 +767,10 @@ __PACKAGE__->register_method ({
>  	additionalProperties => 0,
>  	properties => {
>  	    vmid => get_standard_option('pve-vmid', { completion => \&PVE::LXC::complete_ctid }),
> +	    ignore_mp => {

1. new parameters are prefer as kebab-case, at least if that command provides
no other casing/separation variants in its options.

2. no description -> NAK

> +		optional => 1,
> +		type => 'boolean',
> +	    },
>  	},
>      },
>      returns => { type => 'null' },
> @@ -785,11 +789,16 @@ __PACKAGE__->register_method ({
>  	    PVE::LXC::Config->foreach_volume($conf, sub {
>  		my ($name, $mp) = @_;
>  		$path = $mp->{mp};
> +		if ($param->{ignore_mp}) {
> +		    return if $name =~ '^mp[0-9]*';

why is the regex in a string, not a // and why * ?

Could be also just:

return if $param->{'ignore-mountpoints'} && $name =~ /^mp\d+/;

but no hard feelings here.

> +		}
>  		my $cmd = ["fstrim", "-v", "$rootdir$path"];
>  		PVE::Tools::run_command($cmd);
>  	    });
>  	};
> -	warn $@ if $@;
> +	if (my $err = $@) {
> +	    warn $err;
> +	}

not neded for this patch, and not really a improvement, the `warn $@ if $@;` is
quite widely used, and not considered as "bad", IIRC.

>  
>  	PVE::LXC::umount_all($vmid, $storecfg, $conf, 0);
>  	PVE::LXC::Config->remove_lock($vmid, 'fstrim');
> 







More information about the pve-devel mailing list