[pve-devel] [PATCH v2 pve-cluster 21/52] notify: adapt to matcher based notification system
Lukas Wagner
l.wagner at proxmox.com
Tue Nov 14 13:59:29 CET 2023
This commit removes the target paramters from all notify calls. Also,
the default 'mail-to-root' target is not added automatically any more
- this target will be added by an dpkg hook in the future.
Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
---
src/PVE/Notify.pm | 101 +++++++++++++++++++++-------------------------
1 file changed, 47 insertions(+), 54 deletions(-)
diff --git a/src/PVE/Notify.pm b/src/PVE/Notify.pm
index 419bf6d..872eb25 100644
--- a/src/PVE/Notify.pm
+++ b/src/PVE/Notify.pm
@@ -18,8 +18,6 @@ cfs_register_file(
\&write_notification_config,
);
-my $mail_to_root_target = 'mail-to-root';
-
sub parse_notification_config {
my ($filename, $raw) = @_;
@@ -48,86 +46,81 @@ sub read_config {
my $notification_config = Proxmox::RS::Notify->parse_config($config, $priv_config);
- eval {
- # This target should always be available...
- $notification_config->add_sendmail_endpoint(
- $mail_to_root_target,
- undef,
- ['root at pam'],
- undef,
- undef,
- 'Send mail to root at pam\'s email address'
- );
- };
-
return $notification_config;
}
sub write_config {
my ($notification_config) = @_;
- eval {
- # ... but don't persist it to the config.
- # Rationale: If it is in the config, the user might think
- # that it can be changed by editing the configuration there.
- # However, since we always add it in `read_config`, any changes
- # will be implicitly overridden by the default.
-
- # If users want's to change the configuration, they are supposed to
- # create a new sendmail endpoint.
- $notification_config->delete_sendmail_endpoint($mail_to_root_target);
- };
-
my ($config, $priv_config) = $notification_config->write_config();
cfs_write_file('notifications.cfg', $config, 1);
cfs_write_file('priv/notifications.cfg', $priv_config, 1);
}
-sub default_target {
- return $mail_to_root_target;
-}
-
my $send_notification = sub {
- my ($target, $severity, $title, $message, $properties, $config) = @_;
+ my ($severity, $title, $message, $template_data, $fields, $config) = @_;
$config = read_config() if !defined($config);
- my ($module, $file, $line) = caller(1);
-
- # Augment properties with the source code location of the notify call
- my $props_with_source = {
- %$properties,
- source => {
- module => $module,
- file => $file,
- line => $line,
- }
- };
-
- $config->send($target, $severity, $title, $message, $props_with_source);
+ $config->send($severity, $title, $message, $template_data, $fields);
};
sub notify {
- my ($target, $severity, $title, $message, $properties, $config) = @_;
- $send_notification->($target, $severity, $title, $message, $properties, $config);
+ my ($severity, $title, $message, $template_data, $fields, $config) = @_;
+ $send_notification->(
+ $severity,
+ $title,
+ $message,
+ $template_data,
+ $fields,
+ $config
+ );
}
sub info {
- my ($target, $title, $message, $properties, $config) = @_;
- $send_notification->($target, 'info', $title, $message, $properties, $config);
+ my ($title, $message, $template_data, $fields, $config) = @_;
+ $send_notification->(
+ 'info',
+ $title,
+ $message,
+ $template_data,
+ $fields,
+ $config
+ );
}
sub notice {
- my ($target, $title, $message, $properties, $config) = @_;
- $send_notification->($target, 'notice', $title, $message, $properties, $config);
+ my ($title, $message, $template_data, $fields, $config) = @_;
+ $send_notification->(
+ 'notice',
+ $title,
+ $message,
+ $template_data,
+ $fields,
+ $config
+ );
}
sub warning {
- my ($target, $title, $message, $properties, $config) = @_;
- $send_notification->($target, 'warning', $title, $message, $properties, $config);
+ my ($title, $message, $template_data, $fields, $config) = @_;
+ $send_notification->(
+ 'warning',
+ $title,
+ $message,
+ $template_data,
+ $fields,
+ $config
+ );
}
sub error {
- my ($target, $title, $message, $properties, $config) = @_;
- $send_notification->($target, 'error', $title, $message, $properties, $config);
+ my ($title, $message, $template_data, $fields, $config) = @_;
+ $send_notification->(
+ 'error',
+ $title,
+ $message,
+ $template_data,
+ $fields,
+ $config
+ );
}
sub check_may_use_target {
--
2.39.2
More information about the pve-devel
mailing list