]> git.proxmox.com Git - pve-firewall.git/blob - src/PVE/API2/Firewall/Groups.pm
23b33efa9b93bdd7e71270b36c2b66234bb27820
[pve-firewall.git] / src / PVE / API2 / Firewall / Groups.pm
1 package PVE::API2::Firewall::Groups;
2
3 use strict;
4 use warnings;
5 use PVE::JSONSchema qw(get_standard_option);
6
7 use PVE::Firewall;
8 use PVE::API2::Firewall::Rules;
9
10 use Data::Dumper; # fixme: remove
11
12 use base qw(PVE::RESTHandler);
13
14 __PACKAGE__->register_method({
15 name => 'list',
16 path => '',
17 method => 'GET',
18 description => "List security groups.",
19 parameters => {
20 additionalProperties => 0,
21 },
22 returns => {
23 type => 'array',
24 items => {
25 type => "object",
26 properties => {
27 name => get_standard_option('pve-security-group-name'),
28 },
29 },
30 links => [ { rel => 'child', href => "{name}" } ],
31 },
32 code => sub {
33 my ($param) = @_;
34
35 my $cluster_conf = PVE::Firewall::load_clusterfw_conf();
36
37 my $res = [];
38 foreach my $group (keys %{$cluster_conf->{groups}}) {
39 push @$res, { name => $group, count => scalar(@{$cluster_conf->{groups}->{$group}}) };
40 }
41
42 return $res;
43 }});
44
45
46 __PACKAGE__->register_method ({
47 subclass => "PVE::API2::Firewall::GroupRules",
48 path => '{group}',
49 });
50
51 1;