optional => 1,
};
+ $properties->{delete} = {
+ type => 'string', format => 'pve-configid-list',
+ description => "A list of settings you want to delete.",
+ optional => 1,
+ };
+
my $update_rule_properties = PVE::Firewall::add_rule_properties($properties);
$class->register_method({
if !defined($param->{action});
PVE::Firewall::copy_rule_data($rule, $param);
+
+ PVE::Firewall::delete_rule_properties($rule, $param->{'delete'}) if $param->{'delete'};
}
$class->save_rules($param, $fw_conf, $rules);
return $properties;
}
+sub delete_rule_properties {
+ my ($rule, $delete_str) = @_;
+
+ foreach my $opt (PVE::Tools::split_list($delete_str)) {
+ raise_param_exc({ 'delete' => "no such property ('$opt')"})
+ if !defined($rule_properties->{$opt});
+ raise_param_exc({ 'delete' => "unable to delete required property '$opt'"})
+ if $opt eq 'type' || $opt eq 'action';
+ delete $rule->{$opt};
+ }
+
+ return $rule;
+}
+
sub copy_rule_data {
my ($rule, $param) = @_;