]>
git.proxmox.com Git - pmg-api.git/blob - PMG/API2/RuleDB.pm
1 package PMG
::API2
::RuleDB
;
8 use PVE
::JSONSchema
qw(get_standard_option);
9 use PVE
::RESTEnvironment
;
11 use PVE
::Tools
qw(extract_param);
16 use PMG
::API2
::ObjectGroupHelpers
;
19 use base
qw(PVE::RESTHandler);
21 __PACKAGE__-
>register_method ({
25 description
=> "Directory index.",
27 additionalProperties
=> 0,
36 links
=> [ { rel
=> 'child', href
=> "{name}" } ],
52 __PACKAGE__-
>register_method({
56 description
=> "Get list of rules.",
60 additionalProperties
=> 0,
68 id
=> { type
=> 'integer' },
71 links
=> [ { rel
=> 'child', href
=> "{id}" } ],
76 my $rdb = PMG
::RuleDB-
>new();
78 my $rules = $rdb->load_rules();
82 my $cond_create_group = sub {
83 my ($res, $name, $groupdata) = @_;
85 return if !$groupdata;
87 $res->{$name} = PMG
::API2
::ObjectGroupHelpers
::format_object_group
($groupdata);
90 foreach my $rule (@$rules) {
91 my ($from, $to, $when, $what, $action) =
92 $rdb->load_groups($rule);
96 name
=> $rule->{name
},
97 priority
=> $rule->{priority
},
98 active
=> $rule->{active
},
101 $cond_create_group->($data, 'from', $from);
102 $cond_create_group->($data, 'to', $to);
103 $cond_create_group->($data, 'when', $when);
104 $cond_create_group->($data, 'what', $what);
105 $cond_create_group->($data, 'action', $action);
116 PMG
::API2
::ObjectGroupHelpers
::register_group_list_api
(__PACKAGE__
, 'action');
117 PMG
::API2
::ObjectGroupHelpers
::register_group_list_api
(__PACKAGE__
, 'what');
118 PMG
::API2
::ObjectGroupHelpers
::register_group_list_api
(__PACKAGE__
, 'when');
119 PMG
::API2
::ObjectGroupHelpers
::register_group_list_api
(__PACKAGE__
, 'who');
121 __PACKAGE__-
>register_method ({
122 subclass
=> 'PMG::API2::Who',
123 path
=> 'who/{ogroup}',