Make it possible to delete a container whoes underlying storage is no longer available. This will just write an warning instead of dying.
Without setting the option ignore-storage-errors=1 a delete will still fail, like it did before the changes. With this option set it will try to delete the volume from the storage. If this fails it writes a warning. review fixes - rename parameter to ignore-storage-errors - move eval further up the call chain Signed-off-by: Stefan Hrdlicka <s.hrdli...@proxmox.com> --- src/PVE/API2/LXC.pm | 8 ++++++++ src/PVE/LXC.pm | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm index 589f96f..a7cd41d 100644 --- a/src/PVE/API2/LXC.pm +++ b/src/PVE/API2/LXC.pm @@ -697,6 +697,13 @@ __PACKAGE__->register_method({ ." enabled storages which are not referenced in the config.", optional => 1, }, + 'ignore-storage-errors' => { + type => 'boolean', + description => 'If set, this will ignore errors when trying to remove' + . ' container storage.', + default => 0, + optional => 1, + } }, }, returns => { @@ -758,6 +765,7 @@ __PACKAGE__->register_method({ $conf, { lock => 'destroyed' }, $param->{'destroy-unreferenced-disks'}, + $param->{'ignore-storage-errors'}, ); PVE::AccessControl::remove_vm_access($vmid); diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm index fe63087..e380b12 100644 --- a/src/PVE/LXC.pm +++ b/src/PVE/LXC.pm @@ -862,7 +862,8 @@ sub delete_mountpoint_volume { } sub destroy_lxc_container { - my ($storage_cfg, $vmid, $conf, $replacement_conf, $purge_unreferenced) = @_; + my ($storage_cfg, $vmid, $conf, $replacement_conf, + $purge_unreferenced, $ignore_storage_errors) = @_; my $volids = {}; my $remove_volume = sub { @@ -873,7 +874,10 @@ sub destroy_lxc_container { return if $volids->{$volume}; $volids->{$volume} = 1; - delete_mountpoint_volume($storage_cfg, $vmid, $volume); + eval { + delete_mountpoint_volume($storage_cfg, $vmid, $volume); + }; + die $@ if !$ignore_storage_errors && $@; }; PVE::LXC::Config->foreach_volume_full($conf, {include_unused => 1}, $remove_volume); -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel