mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-06 03:15:21 +00:00
api: prepare api handler module for notification config
This commit adds a new Perl module, PVE::API2::Cluster::Notification. The module will contain all API handlers for the new notification subsystem. Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
This commit is contained in:
parent
2ab19e8351
commit
b6fa29f3f5
@ -29,6 +29,7 @@ use PVE::API2::Cluster::Ceph;
|
||||
use PVE::API2::Cluster::Mapping;
|
||||
use PVE::API2::Cluster::Jobs;
|
||||
use PVE::API2::Cluster::MetricServer;
|
||||
use PVE::API2::Cluster::Notifications;
|
||||
use PVE::API2::ClusterConfig;
|
||||
use PVE::API2::Firewall::Cluster;
|
||||
use PVE::API2::HAConfig;
|
||||
@ -52,6 +53,11 @@ __PACKAGE__->register_method ({
|
||||
path => 'metrics',
|
||||
});
|
||||
|
||||
__PACKAGE__->register_method ({
|
||||
subclass => "PVE::API2::Cluster::Notifications",
|
||||
path => 'notifications',
|
||||
});
|
||||
|
||||
__PACKAGE__->register_method ({
|
||||
subclass => "PVE::API2::ClusterConfig",
|
||||
path => 'config',
|
||||
@ -149,6 +155,7 @@ __PACKAGE__->register_method ({
|
||||
{ name => 'log' },
|
||||
{ name => 'mapping' },
|
||||
{ name => 'metrics' },
|
||||
{ name => 'notifications' },
|
||||
{ name => 'nextid' },
|
||||
{ name => 'options' },
|
||||
{ name => 'replication' },
|
||||
|
@ -8,6 +8,7 @@ PERLSOURCE= \
|
||||
BackupInfo.pm \
|
||||
MetricServer.pm \
|
||||
Mapping.pm \
|
||||
Notifications.pm \
|
||||
Jobs.pm \
|
||||
Ceph.pm
|
||||
|
||||
|
71
PVE/API2/Cluster/Notifications.pm
Normal file
71
PVE/API2/Cluster/Notifications.pm
Normal file
@ -0,0 +1,71 @@
|
||||
package PVE::API2::Cluster::Notifications;
|
||||
|
||||
use warnings;
|
||||
use strict;
|
||||
|
||||
use Storable qw(dclone);
|
||||
use JSON;
|
||||
|
||||
use PVE::Tools qw(extract_param);
|
||||
use PVE::JSONSchema qw(get_standard_option);
|
||||
use PVE::RESTHandler;
|
||||
use PVE::Notify;
|
||||
|
||||
use base qw(PVE::RESTHandler);
|
||||
|
||||
sub make_properties_optional {
|
||||
my ($properties) = @_;
|
||||
$properties = dclone($properties);
|
||||
|
||||
for my $key (keys %$properties) {
|
||||
$properties->{$key}->{optional} = 1 if $key ne 'name';
|
||||
}
|
||||
|
||||
return $properties;
|
||||
}
|
||||
|
||||
sub raise_api_error {
|
||||
my ($api_error) = @_;
|
||||
|
||||
if (!(ref($api_error) eq 'HASH' && $api_error->{message} && $api_error->{code})) {
|
||||
die $api_error;
|
||||
}
|
||||
|
||||
my $msg = "$api_error->{message}\n";
|
||||
my $exc = PVE::Exception->new($msg, code => $api_error->{code});
|
||||
|
||||
my (undef, $filename, $line) = caller;
|
||||
|
||||
$exc->{filename} = $filename;
|
||||
$exc->{line} = $line;
|
||||
|
||||
die $exc;
|
||||
}
|
||||
|
||||
__PACKAGE__->register_method ({
|
||||
name => 'index',
|
||||
path => '',
|
||||
method => 'GET',
|
||||
description => 'Index for notification-related API endpoints.',
|
||||
permissions => { user => 'all' },
|
||||
parameters => {
|
||||
additionalProperties => 0,
|
||||
properties => {},
|
||||
},
|
||||
returns => {
|
||||
type => 'array',
|
||||
items => {
|
||||
type => 'object',
|
||||
properties => {},
|
||||
},
|
||||
links => [ { rel => 'child', href => '{name}' } ],
|
||||
},
|
||||
code => sub {
|
||||
my $result = [
|
||||
];
|
||||
|
||||
return $result;
|
||||
}
|
||||
});
|
||||
|
||||
1;
|
Loading…
Reference in New Issue
Block a user