X-Git-Url: https://git.proxmox.com/?p=pve-firewall.git;a=blobdiff_plain;f=src%2FPVE%2FAPI2%2FFirewall%2FIPSet.pm;h=856e5f854a351c3c5b7fda2aae81191acd51ab46;hp=646a01825bba55fa94dfbdb80226e8a469f92a99;hb=e74a87f5ce727e5e3e87869d6bd5f578eaef6a29;hpb=c85c87f9c059b326c9eab24c5e6a4dc65d1254f7 diff --git a/src/PVE/API2/Firewall/IPSet.pm b/src/PVE/API2/Firewall/IPSet.pm index 646a018..856e5f8 100644 --- a/src/PVE/API2/Firewall/IPSet.pm +++ b/src/PVE/API2/Firewall/IPSet.pm @@ -14,10 +14,7 @@ my $api_properties = { description => "Network/IP specification in CIDR format.", type => 'string', format => 'IPv4orCIDR', }, - name => { - description => "IP set name.", - type => 'string', - }, + name => get_standard_option('ipset-name'), comment => { type => 'string', optional => 1, @@ -295,8 +292,9 @@ package PVE::API2::Firewall::BaseIPSetList; use strict; use warnings; -use PVE::Firewall; +use PVE::JSONSchema qw(get_standard_option); use PVE::Exception qw(raise_param_exc); +use PVE::Firewall; use base qw(PVE::RESTHandler); @@ -316,10 +314,7 @@ sub register_index { items => { type => "object", properties => { - name => { - description => "IPSet name.", - type => 'string', - }, + name => get_standard_option('ipset-name'), }, }, links => [ { rel => 'child', href => "{name}" } ], @@ -350,11 +345,11 @@ sub register_create { parameters => { additionalProperties => 0, properties => { - name => { - # fixme: verify format - description => "IP set name.", - type => 'string', - }, + name => get_standard_option('ipset-name'), + rename => get_standard_option('ipset-name', { + description => "Rename an existing IPSet.", + optional => 1, + }), } }, returns => { type => 'null' }, @@ -368,7 +363,15 @@ sub register_create { if $name eq $param->{name}; } - $fw_conf->{ipset}->{$param->{name}} = []; + if ($param->{rename}) { + raise_param_exc({ name => "IPSet '$param->{rename}' does not exists" }) + if !$fw_conf->{ipset}->{$param->{rename}}; + my $data = delete $fw_conf->{ipset}->{$param->{rename}}; + $fw_conf->{ipset}->{$param->{name}} = $data; + } else { + $fw_conf->{ipset}->{$param->{name}} = []; + } + $class->save_config($fw_conf); return undef; @@ -387,11 +390,7 @@ sub register_delete { parameters => { additionalProperties => 0, properties => { - name => { - # fixme: verify format - description => "IP set name.", - type => 'string', - }, + name => get_standard_option('ipset-name'), } }, returns => { type => 'null' }, @@ -402,7 +401,7 @@ sub register_delete { return undef if !$fw_conf->{ipset}->{$param->{name}}; - die "IPSet '$param->{name}' is not empty" + die "IPSet '$param->{name}' is not empty\n" if scalar(@{$fw_conf->{ipset}->{$param->{name}}}); delete $fw_conf->{ipset}->{$param->{name}};