pvesm set: handle deletion of properties
the delete parameter get's injected by the SectionConfigs updateSchem, but we need to handle it ourself in the code This makes the following possible: pvesm set STORAGEID --delete property Also the API equivalent is now possible. Adapted from the HA managers Resource update API call. Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
@ -195,6 +195,7 @@ __PACKAGE__->register_method ({
|
||||
|
||||
my $storeid = extract_param($param, 'storage');
|
||||
my $digest = extract_param($param, 'digest');
|
||||
my $delete = extract_param($param, 'delete');
|
||||
|
||||
PVE::Storage::lock_storage_config(
|
||||
sub {
|
||||
@ -208,6 +209,20 @@ __PACKAGE__->register_method ({
|
||||
my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
|
||||
my $opts = $plugin->check_config($storeid, $param, 0, 1);
|
||||
|
||||
if ($delete) {
|
||||
my $options = $plugin->private()->{options}->{$scfg->{type}};
|
||||
foreach my $k (PVE::Tools::split_list($delete)) {
|
||||
my $d = $options->{$k} || die "no such option '$k'\n";
|
||||
die "unable to delete required option '$k'\n" if !$d->{optional};
|
||||
die "unable to delete fixed option '$k'\n" if $d->{fixed};
|
||||
die "cannot set and delete property '$k' at the same time!\n"
|
||||
if defined($opts->{$k});
|
||||
|
||||
delete $scfg->{$k};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
foreach my $k (%$opts) {
|
||||
$scfg->{$k} = $opts->{$k};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user