properties => {
node => get_standard_option('pve-node'),
name => get_standard_option('pve-storage-id'),
+ 'cleanup-config' => {
+ description => "Marks associated storage(s) as not available on this node anymore ".
+ "or removes them from the configuration (if configured for this node only).",
+ type => 'boolean',
+ optional => 1,
+ default => 0,
+ },
'cleanup-disks' => {
description => "Also wipe disks so they can be repurposed afterwards.",
type => 'boolean',
my $user = $rpcenv->get_user();
my $name = $param->{name};
+ my $node = $param->{node};
my $worker = sub {
PVE::Diskmanage::locked_disk_action(sub {
PVE::Storage::LVMPlugin::lvm_destroy_volume_group($name);
+ my $config_err;
+ if ($param->{'cleanup-config'}) {
+ my $match = sub {
+ my ($scfg) = @_;
+ return $scfg->{type} eq 'lvm' && $scfg->{vgname} eq $name;
+ };
+ eval { PVE::API2::Storage::Config->cleanup_storages_for_node($match, $node); };
+ warn $config_err = $@ if $@;
+ }
+
if ($param->{'cleanup-disks'}) {
my $wiped = [];
eval {
PVE::Diskmanage::udevadm_trigger($wiped->@*);
die "cleanup failed - $err" if $err;
}
+
+ die "config cleanup failed - $config_err" if $config_err;
});
};