]> git.proxmox.com Git - pve-manager.git/commitdiff
api: notification: remove notification groups
authorLukas Wagner <l.wagner@proxmox.com>
Tue, 14 Nov 2023 12:59:32 +0000 (13:59 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 17 Nov 2023 15:20:03 +0000 (16:20 +0100)
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
PVE/API2/Cluster/Notifications.pm

index ec666903420b2bb3f2646355fa01f23c68a58dec..b34802c83c1878b1da813d27715a6c40a817aca5 100644 (file)
@@ -121,7 +121,6 @@ __PACKAGE__->register_method ({
        my $result = [
            { name => 'endpoints' },
            { name => 'filters' },
-           { name => 'groups' },
            { name => 'targets' },
        ];
 
@@ -161,8 +160,7 @@ __PACKAGE__->register_method ({
     name => 'get_all_targets',
     path => 'targets',
     method => 'GET',
-    description => 'Returns a list of all entities that can be used as notification targets' .
-       ' (endpoints and groups).',
+    description => 'Returns a list of all entities that can be used as notification targets.',
     permissions => {
        description => "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or"
            . " 'Mapping.Audit' permissions on '/mapping/notification/<name>'."
@@ -180,14 +178,14 @@ __PACKAGE__->register_method ({
            type => 'object',
            properties => {
                name => {
-                   description => 'Name of the endpoint/group.',
+                   description => 'Name of the target.',
                    type => 'string',
                    format => 'pve-configid',
                },
                'type' => {
-                   description => 'Type of the endpoint or group.',
+                   description => 'Type of the target.',
                    type  => 'string',
-                   enum => [qw(sendmail gotify group)],
+                   enum => [qw(sendmail gotify)],
                },
                'comment' => {
                    description => 'Comment',
@@ -221,14 +219,6 @@ __PACKAGE__->register_method ({
                };
            }
 
-           for my $target (@{$config->get_groups()}) {
-               push @$result, {
-                   name => $target->{name},
-                   comment => $target->{comment},
-                   type => 'group',
-               };
-           }
-
            $result
        };
 
@@ -290,255 +280,6 @@ __PACKAGE__->register_method ({
     }
 });
 
-my $group_properties = {
-    name => {
-       description => 'Name of the group.',
-       type => 'string',
-       format => 'pve-configid',
-    },
-    'endpoint' => {
-       type => 'array',
-       items => {
-           type => 'string',
-           format => 'pve-configid',
-       },
-       description => 'List of included endpoints',
-    },
-    'comment' => {
-       description => 'Comment',
-       type => 'string',
-       optional => 1,
-    },
-    filter => {
-       description => 'Name of the filter that should be applied.',
-       type => 'string',
-       format => 'pve-configid',
-       optional => 1,
-    },
-};
-
-__PACKAGE__->register_method ({
-    name => 'get_groups',
-    path => 'groups',
-    method => 'GET',
-    description => 'Returns a list of all groups',
-    protected => 1,
-    permissions => {
-       description => "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or"
-           . " 'Mapping.Audit' permissions on '/mapping/notification/<name>'.",
-       user => 'all',
-    },
-    parameters => {
-       additionalProperties => 0,
-       properties => {},
-    },
-    returns => {
-       type => 'array',
-       items => {
-           type => 'object',
-           properties => $group_properties,
-       },
-       links => [ { rel => 'child', href => '{name}' } ],
-    },
-    code => sub {
-       my $config = PVE::Notify::read_config();
-       my $rpcenv = PVE::RPCEnvironment::get();
-
-       my $entities = eval {
-           $config->get_groups();
-       };
-       raise_api_error($@) if $@;
-
-       return filter_entities_by_privs($rpcenv, $entities);
-    }
-});
-
-__PACKAGE__->register_method ({
-    name => 'get_group',
-    path => 'groups/{name}',
-    method => 'GET',
-    description => 'Return a specific group',
-    protected => 1,
-    permissions => {
-       check => ['or',
-           ['perm', '/mapping/notification/{name}', ['Mapping.Modify']],
-           ['perm', '/mapping/notification/{name}', ['Mapping.Audit']],
-       ],
-    },
-    parameters => {
-       additionalProperties => 0,
-       properties => {
-           name => {
-               type => 'string',
-               format => 'pve-configid',
-           },
-       }
-    },
-    returns => {
-       type => 'object',
-       properties => {
-           %$group_properties,
-           digest => get_standard_option('pve-config-digest'),
-       },
-    },
-    code => sub {
-       my ($param) = @_;
-       my $name = extract_param($param, 'name');
-
-       my $config = PVE::Notify::read_config();
-
-       my $group = eval {
-           $config->get_group($name)
-       };
-
-       raise_api_error($@) if $@;
-       $group->{digest} = $config->digest();
-
-       return $group;
-    }
-});
-
-__PACKAGE__->register_method ({
-    name => 'create_group',
-    path => 'groups',
-    protected => 1,
-    method => 'POST',
-    description => 'Create a new group',
-    permissions => {
-       check => ['perm', '/mapping/notification', ['Mapping.Modify']],
-    },
-    parameters => {
-       additionalProperties => 0,
-       properties => $group_properties,
-    },
-    returns => { type => 'null' },
-    code => sub {
-       my ($param) = @_;
-
-       my $name = extract_param($param, 'name');
-       my $endpoint = extract_param($param, 'endpoint');
-       my $comment = extract_param($param, 'comment');
-       my $filter = extract_param($param, 'filter');
-
-       eval {
-           PVE::Notify::lock_config(sub {
-               my $config = PVE::Notify::read_config();
-
-               $config->add_group(
-                   $name,
-                   $endpoint,
-                   $comment,
-                   $filter,
-               );
-
-               PVE::Notify::write_config($config);
-           });
-       };
-
-       raise_api_error($@) if $@;
-       return;
-    }
-});
-
-__PACKAGE__->register_method ({
-    name => 'update_group',
-    path => 'groups/{name}',
-    protected => 1,
-    method => 'PUT',
-    description => 'Update existing group',
-    permissions => {
-       check => ['perm', '/mapping/notification/{name}', ['Mapping.Modify']],
-    },
-    parameters => {
-       additionalProperties => 0,
-       properties => {
-           %{ make_properties_optional($group_properties) },
-           delete => {
-               type => 'array',
-               items => {
-                   type => 'string',
-                   format => 'pve-configid',
-               },
-               optional => 1,
-               description => 'A list of settings you want to delete.',
-           },
-           digest => get_standard_option('pve-config-digest'),
-       },
-    },
-    returns => { type => 'null' },
-    code => sub {
-       my ($param) = @_;
-
-       my $name = extract_param($param, 'name');
-       my $endpoint = extract_param($param, 'endpoint');
-       my $comment = extract_param($param, 'comment');
-       my $filter = extract_param($param, 'filter');
-       my $digest = extract_param($param, 'digest');
-       my $delete = extract_param($param, 'delete');
-
-       eval {
-           PVE::Notify::lock_config(sub {
-               my $config = PVE::Notify::read_config();
-
-               $config->update_group(
-                   $name,
-                   $endpoint,
-                   $comment,
-                   $filter,
-                   $delete,
-                   $digest,
-               );
-
-               PVE::Notify::write_config($config);
-           });
-       };
-
-       raise_api_error($@) if $@;
-       return;
-    }
-});
-
-__PACKAGE__->register_method ({
-    name => 'delete_group',
-    protected => 1,
-    path => 'groups/{name}',
-    method => 'DELETE',
-    description => 'Remove group',
-    permissions => {
-       check => ['perm', '/mapping/notification/{name}', ['Mapping.Modify']],
-    },
-    parameters => {
-       additionalProperties => 0,
-       properties => {
-           name => {
-               type => 'string',
-               format => 'pve-configid',
-           },
-       }
-    },
-    returns => { type => 'null' },
-    code => sub {
-       my ($param) = @_;
-       my $name = extract_param($param, 'name');
-
-       my $used_by = target_used_by($name);
-       if ($used_by) {
-           raise_param_exc({'name' => "Cannot remove $name, used by: $used_by"});
-       }
-
-       eval {
-           PVE::Notify::lock_config(sub {
-               my $config = PVE::Notify::read_config();
-               $config->delete_group($name);
-               PVE::Notify::write_config($config);
-           });
-       };
-
-       raise_api_error($@) if $@;
-       return;
-    }
-});
-
 my $sendmail_properties = {
     name => {
        description => 'The name of the endpoint.',