From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 3689A1FF0E0 for ; Thu, 09 Jul 2026 14:00:20 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 7B0E321558; Thu, 09 Jul 2026 13:58:19 +0200 (CEST) From: Lukas Wagner To: pbs-devel@lists.proxmox.com, pve-devel@lists.proxmox.com Subject: [PATCH manager 26/29] api: notification: pass config/updater directly to rust bindings Date: Thu, 9 Jul 2026 13:57:13 +0200 Message-ID: <20260709115716.299836-27-l.wagner@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260709115716.299836-1-l.wagner@proxmox.com> References: <20260709115716.299836-1-l.wagner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1783598240790 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.000 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 2G6LRS3GQLXIVZD3CYPMX3PR5DJRGURA X-Message-ID-Hash: 2G6LRS3GQLXIVZD3CYPMX3PR5DJRGURA X-MailFrom: l.wagner@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Instead of having to enumerate function parameters individually, pass the entire parameter hash to the rust bindings. This reduces potential for future errors and reduces churn when adding new parameters. Signed-off-by: Lukas Wagner --- PVE/API2/Cluster/Notifications.pm | 147 +++++------------------------- 1 file changed, 24 insertions(+), 123 deletions(-) diff --git a/PVE/API2/Cluster/Notifications.pm b/PVE/API2/Cluster/Notifications.pm index 8b455227..3f99de08 100644 --- a/PVE/API2/Cluster/Notifications.pm +++ b/PVE/API2/Cluster/Notifications.pm @@ -518,21 +518,11 @@ __PACKAGE__->register_method({ code => sub { my ($param) = @_; - my $name = extract_param($param, 'name'); - my $mailto = extract_param($param, 'mailto'); - my $mailto_user = extract_param($param, 'mailto-user'); - my $from_address = extract_param($param, 'from-address'); - my $author = extract_param($param, 'author'); - my $comment = extract_param($param, 'comment'); - my $disable = extract_param($param, 'disable'); - eval { PVE::Notify::lock_config(sub { my $config = PVE::Notify::read_config(); - $config->add_sendmail_endpoint( - $name, $mailto, $mailto_user, $from_address, $author, $comment, $disable, - ); + $config->add_sendmail_endpoint($param); PVE::Notify::write_config($config); }); @@ -582,13 +572,6 @@ __PACKAGE__->register_method({ my ($param) = @_; my $name = extract_param($param, 'name'); - my $mailto = extract_param($param, 'mailto'); - my $mailto_user = extract_param($param, 'mailto-user'); - my $from_address = extract_param($param, 'from-address'); - my $author = extract_param($param, 'author'); - my $comment = extract_param($param, 'comment'); - my $disable = extract_param($param, 'disable'); - my $delete = extract_param($param, 'delete'); my $digest = extract_param($param, 'digest'); @@ -597,15 +580,7 @@ __PACKAGE__->register_method({ my $config = PVE::Notify::read_config(); $config->update_sendmail_endpoint( - $name, - $mailto, - $mailto_user, - $from_address, - $author, - $comment, - $disable, - $delete, - $digest, + $name, $param, $delete, $digest, ); PVE::Notify::write_config($config); @@ -789,18 +764,19 @@ __PACKAGE__->register_method({ code => sub { my ($param) = @_; - my $name = extract_param($param, 'name'); - my $server = extract_param($param, 'server'); my $token = extract_param($param, 'token'); - my $comment = extract_param($param, 'comment'); - my $disable = extract_param($param, 'disable'); + my $name = $param->{name}; eval { PVE::Notify::lock_config(sub { my $config = PVE::Notify::read_config(); $config->add_gotify_endpoint( - $name, $server, $token, $comment, $disable, + $param, + { + 'name' => $name, + 'token' => $token, + }, ); PVE::Notify::write_config($config); @@ -850,10 +826,7 @@ __PACKAGE__->register_method({ my ($param) = @_; my $name = extract_param($param, 'name'); - my $server = extract_param($param, 'server'); my $token = extract_param($param, 'token'); - my $comment = extract_param($param, 'comment'); - my $disable = extract_param($param, 'disable'); my $delete = extract_param($param, 'delete'); my $digest = extract_param($param, 'digest'); @@ -864,10 +837,10 @@ __PACKAGE__->register_method({ $config->update_gotify_endpoint( $name, - $server, - $token, - $comment, - $disable, + $param, + { + token => $token, + }, $delete, $digest, ); @@ -1102,36 +1075,19 @@ __PACKAGE__->register_method({ code => sub { my ($param) = @_; - my $name = extract_param($param, 'name'); - my $server = extract_param($param, 'server'); - my $port = extract_param($param, 'port'); - my $mode = extract_param($param, 'mode'); - my $username = extract_param($param, 'username'); + my $name = $param->{name}; my $password = extract_param($param, 'password'); - my $mailto = extract_param($param, 'mailto'); - my $mailto_user = extract_param($param, 'mailto-user'); - my $from_address = extract_param($param, 'from-address'); - my $author = extract_param($param, 'author'); - my $comment = extract_param($param, 'comment'); - my $disable = extract_param($param, 'disable'); eval { PVE::Notify::lock_config(sub { my $config = PVE::Notify::read_config(); $config->add_smtp_endpoint( - $name, - $server, - $port, - $mode, - $username, - $password, - $mailto, - $mailto_user, - $from_address, - $author, - $comment, - $disable, + $param, + { + name => $name, + password => $password, + }, ); PVE::Notify::write_config($config); @@ -1182,17 +1138,7 @@ __PACKAGE__->register_method({ my ($param) = @_; my $name = extract_param($param, 'name'); - my $server = extract_param($param, 'server'); - my $port = extract_param($param, 'port'); - my $mode = extract_param($param, 'mode'); - my $username = extract_param($param, 'username'); my $password = extract_param($param, 'password'); - my $mailto = extract_param($param, 'mailto'); - my $mailto_user = extract_param($param, 'mailto-user'); - my $from_address = extract_param($param, 'from-address'); - my $author = extract_param($param, 'author'); - my $comment = extract_param($param, 'comment'); - my $disable = extract_param($param, 'disable'); my $delete = extract_param($param, 'delete'); my $digest = extract_param($param, 'digest'); @@ -1203,17 +1149,10 @@ __PACKAGE__->register_method({ $config->update_smtp_endpoint( $name, - $server, - $port, - $mode, - $username, - $password, - $mailto, - $mailto_user, - $from_address, - $author, - $comment, - $disable, + $param, + { + password => $password, + }, $delete, $digest, ); @@ -1705,31 +1644,11 @@ __PACKAGE__->register_method({ code => sub { my ($param) = @_; - my $name = extract_param($param, 'name'); - my $match_severity = extract_param($param, 'match-severity'); - my $match_field = extract_param($param, 'match-field'); - my $match_calendar = extract_param($param, 'match-calendar'); - my $target = extract_param($param, 'target'); - my $mode = extract_param($param, 'mode'); - my $invert_match = extract_param($param, 'invert-match'); - my $comment = extract_param($param, 'comment'); - my $disable = extract_param($param, 'disable'); - eval { PVE::Notify::lock_config(sub { my $config = PVE::Notify::read_config(); - $config->add_matcher( - $name, - $target, - $match_severity, - $match_field, - $match_calendar, - $mode, - $invert_match, - $comment, - $disable, - ); + $config->add_matcher($param); PVE::Notify::write_config($config); }); @@ -1770,14 +1689,6 @@ __PACKAGE__->register_method({ my ($param) = @_; my $name = extract_param($param, 'name'); - my $match_severity = extract_param($param, 'match-severity'); - my $match_field = extract_param($param, 'match-field'); - my $match_calendar = extract_param($param, 'match-calendar'); - my $target = extract_param($param, 'target'); - my $mode = extract_param($param, 'mode'); - my $invert_match = extract_param($param, 'invert-match'); - my $comment = extract_param($param, 'comment'); - my $disable = extract_param($param, 'disable'); my $digest = extract_param($param, 'digest'); my $delete = extract_param($param, 'delete'); @@ -1786,17 +1697,7 @@ __PACKAGE__->register_method({ my $config = PVE::Notify::read_config(); $config->update_matcher( - $name, - $target, - $match_severity, - $match_field, - $match_calendar, - $mode, - $invert_match, - $comment, - $disable, - $delete, - $digest, + $name, $param, $delete, $digest, ); PVE::Notify::write_config($config); -- 2.47.3