[pve-devel] [PATCH container 1/2] destroy_config: die if unlink fails

Wolfgang Bumiller w.bumiller at proxmox.com
Tue Jan 29 11:40:42 CET 2019


applied both patches (with a fixup in this one)

On Mon, Jan 28, 2019 at 08:06:47AM +0100, Thomas Lamprecht wrote:
> We use this in two places, in the cleanup path of the create/restore
> API path and indirectly through PVE::LXC::destroy_lxc_container, once
> again in the restore code path of the create API call, to cleanup a
> CT before overwriting it with a backup if the force flag ist set. The
> second time in the destroy CT API call, both times a hard error in a
> erroneous cleanup is wanted.
> 
> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> ---
> 
> This method could be probably pulled out to the config base class,
> but that's for another time if it's worth at all.
> 
>  src/PVE/API2/LXC.pm | 3 ++-
>  src/PVE/LXC.pm      | 3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm
> index 2ab98da..d0e82ee 100644
> --- a/src/PVE/API2/LXC.pm
> +++ b/src/PVE/API2/LXC.pm
> @@ -430,7 +430,8 @@ __PACKAGE__->register_method({
>  	    };
>  	    if (my $err = $@) {
>  		PVE::LXC::destroy_disks($storage_cfg, $vollist);
> -		PVE::LXC::destroy_config($vmid);
> +		eval { PVE::LXC::destroy_config($vmid) };
> +		warn $@ if $@;
>  		die $err;
>  	    }
>  	    PVE::AccessControl::add_vm_to_pool($vmid, $pool) if $pool;
> diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
> index ab15ec0..8d138f0 100644
> --- a/src/PVE/LXC.pm
> +++ b/src/PVE/LXC.pm
> @@ -54,7 +54,8 @@ sub config_list {
>  sub destroy_config {
>      my ($vmid) = @_;
>  
> -    unlink PVE::LXC::Config->config_file($vmid, $nodename);
> +    my $config_fn = PVE::LXC::Config->config_file($vmid, $nodename);
> +    unlink $config_file or die "failed to remove config file: $!\n";

$config_fn vs $config_file

>  }
>  
>  # container status helpers
> -- 
> 2.20.1




More information about the pve-devel mailing list