use PVE::JSONSchema qw(get_standard_option);
use PVE::Firewall;
-
+use PVE::API2::Firewall::Rules;
use Data::Dumper; # fixme: remove
path => '',
method => 'GET',
description => "List security groups.",
- proxyto => 'node',
parameters => {
additionalProperties => 0,
- properties => {
- node => get_standard_option('pve-node'),
- },
},
returns => {
type => 'array',
code => sub {
my ($param) = @_;
- my $groups_conf = PVE::Firewall::load_security_groups();
+ my $cluster_conf = PVE::Firewall::load_clusterfw_conf();
my $res = [];
- foreach my $group (keys %{$groups_conf->{rules}}) {
- push @$res, { name => $group, count => scalar(@{$groups_conf->{rules}->{$group}}) };
+ foreach my $group (keys %{$cluster_conf->{groups}}) {
+ push @$res, { name => $group, count => scalar(@{$cluster_conf->{groups}->{$group}}) };
}
return $res;
}});
-__PACKAGE__->register_method({
- name => 'get_rules',
+__PACKAGE__->register_method ({
+ subclass => "PVE::API2::Firewall::GroupRules",
path => '{group}',
- method => 'GET',
- description => "List security groups rules.",
- proxyto => 'node',
- parameters => {
- additionalProperties => 0,
- properties => {
- node => get_standard_option('pve-node'),
- group => {
- description => "Security group name.",
- type => 'string',
- },
- },
- },
- returns => {
- type => 'array',
- items => {
- type => "object",
- properties => {},
- },
- },
- code => sub {
- my ($param) = @_;
-
- my $groups_conf = PVE::Firewall::load_security_groups();
-
- my $rules = $groups_conf->{rules}->{$param->{group}};
- die "no such security group\n" if !defined($rules);
-
- my $digest = $groups_conf->{digest};
-
- my $res = [];
-
- my $ind = 0;
- foreach my $rule (@$rules) {
- push @$res, PVE::Firewall::cleanup_fw_rule($rule, $digest, $ind++);
- }
-
- return $res;
- }});
+});
1;