This API call allows the user to test a notification target.

Signed-off-by: Lukas Wagner <l.wag...@proxmox.com>
---
 PVE/API2/Cluster/Notifications.pm | 40 +++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/PVE/API2/Cluster/Notifications.pm 
b/PVE/API2/Cluster/Notifications.pm
index d6f29291..065d6690 100644
--- a/PVE/API2/Cluster/Notifications.pm
+++ b/PVE/API2/Cluster/Notifications.pm
@@ -211,6 +211,46 @@ __PACKAGE__->register_method ({
     }
 });
 
+__PACKAGE__->register_method ({
+    name => 'test_target',
+    path => 'targets/{name}/test',
+    protected => 1,
+    method => 'POST',
+    description => 'Send a test notification to a provided target.',
+    permissions => {
+       check => ['or',
+           ['perm', '/mapping/notification/{name}', ['Mapping.Use']],
+           ['perm', '/mapping/notification/{name}', ['Mapping.Modify']],
+           ['perm', '/mapping/notification/{name}', ['Mapping.Audit']],
+       ],
+    },
+    parameters => {
+       additionalProperties => 0,
+       properties => {
+           name => {
+               description => 'Name of the target.',
+               type => 'string',
+               format => 'pve-configid'
+           },
+       },
+    },
+    returns => { type => 'null' },
+    code => sub {
+       my ($param) = @_;
+       my $name = extract_param($param, 'name');
+
+       my $config = PVE::Notify::read_config();
+
+       eval {
+           $config->test_target($name);
+       };
+
+       raise_api_error($@) if $@;
+
+       return;
+    }
+});
+
 my $group_properties = {
     name => {
        description => 'Name of the group.',
-- 
2.39.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to