]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/SectionConfig.pm
section config: add helper for deleting keys from a entry
[pve-common.git] / src / PVE / SectionConfig.pm
index 0a9f1cd0bca202b32ed8f391a387412f1fc07bf8..e3546559d29f581f79f493533c4e7bc4805d036a 100644 (file)
@@ -543,4 +543,19 @@ sub assert_if_modified {
     PVE::Tools::assert_if_modified($cfg->{digest}, $digest);
 }
 
+sub delete_from_config {
+    my ($config, $option_schema, $new_options, $to_delete) = @_;
+
+    for my $k ($to_delete->@*) {
+       my $d = $option_schema->{$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($new_options->{$k});
+       delete $config->{$k};
+    }
+
+    return $config;
+}
+
 1;