From: Lukas Wagner <l.wagner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH proxmox-backup 12/33] api-types: api: datatore: add notification-mode parameter
Date: Fri, 12 Apr 2024 12:06:10 +0200 [thread overview]
Message-ID: <20240412100631.94218-13-l.wagner@proxmox.com> (raw)
In-Reply-To: <20240412100631.94218-1-l.wagner@proxmox.com>
This one lets the user choose between the old notification behavior
(selecting an email address/user and always/error/never behavior per
datastore) and the new one (emit notification events to the
notification system)
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
---
pbs-api-types/src/datastore.rs | 22 ++++++++++++++++++++++
src/api2/config/datastore.rs | 9 +++++++++
2 files changed, 31 insertions(+)
diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs
index 5e13c157..a5da3e94 100644
--- a/pbs-api-types/src/datastore.rs
+++ b/pbs-api-types/src/datastore.rs
@@ -309,6 +309,10 @@ pub struct DataStoreConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub notify: Option<String>,
+ /// Opt-in into the new notification system
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub notification_mode: Option<NotificationMode>,
+
/// Datastore tuning options
#[serde(skip_serializing_if = "Option::is_none")]
pub tuning: Option<String>,
@@ -318,6 +322,23 @@ pub struct DataStoreConfig {
pub maintenance_mode: Option<String>,
}
+#[api]
+#[derive(Serialize, Deserialize, Updater, Clone, PartialEq, Default)]
+#[serde(rename_all = "kebab-case")]
+/// Configure how notifications for this datastore should be sent.
+/// `legacy-sendmail` sends email notifications to the user configured
+/// in `notify-user` via the system's `sendmail` executable.
+/// `notification-system` emits matchable notification events to the
+/// notification system.
+pub enum NotificationMode {
+ /// Send notifications via the system's sendmail command to the user
+ /// configured in `notify-user`
+ #[default]
+ LegacySendmail,
+ /// Emit notification events to the notification system
+ NotificationSystem,
+}
+
impl DataStoreConfig {
pub fn new(name: String, path: String) -> Self {
Self {
@@ -330,6 +351,7 @@ impl DataStoreConfig {
verify_new: None,
notify_user: None,
notify: None,
+ notification_mode: None,
tuning: None,
maintenance_mode: None,
}
diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs
index 3081e1f4..9a64c6a6 100644
--- a/src/api2/config/datastore.rs
+++ b/src/api2/config/datastore.rs
@@ -222,6 +222,8 @@ pub enum DeletableProperty {
NotifyUser,
/// Delete the notify property
Notify,
+ /// Delete the notification-mode property
+ NotificationMode,
/// Delete the tuning property
Tuning,
/// Delete the maintenance-mode property
@@ -315,6 +317,9 @@ pub fn update_datastore(
DeletableProperty::NotifyUser => {
data.notify_user = None;
}
+ DeletableProperty::NotificationMode => {
+ data.notification_mode = None;
+ }
DeletableProperty::Tuning => {
data.tuning = None;
}
@@ -385,6 +390,10 @@ pub fn update_datastore(
data.notify_user = update.notify_user;
}
+ if update.notification_mode.is_some() {
+ data.notification_mode = update.notification_mode;
+ }
+
if update.tuning.is_some() {
data.tuning = update.tuning;
}
--
2.39.2
next prev parent reply other threads:[~2024-04-12 10:06 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-12 10:05 [pbs-devel] [PATCH proxmox-backup 00/33] integrate notification system Lukas Wagner
2024-04-12 10:05 ` [pbs-devel] [PATCH proxmox-backup 01/33] pbs-config: add module for loading notification config Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 02/33] server: rename email_notifications module to notifications Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 03/33] notifications: allow sending notifications via proxmox_notify Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 04/33] buildsys: install templates for test notifications Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 05/33] pbs-config: acl: add /system/notifications as known ACL path Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 06/33] api: add endpoints for querying/testing notification targets Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 07/33] api: add endpoints for notification matchers Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 08/33] api: add endpoints for sendmail targets Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 09/33] api: add endpoints for smtp targets Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 10/33] api: add endpoints for gotify targets Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 11/33] api: add endpoints for querying known notification values/fields Lukas Wagner
2024-04-12 10:06 ` Lukas Wagner [this message]
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 13/33] api-types: api: tape: add notification-mode parameter Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 14/33] server: notifications: send GC notifications via notification system Lukas Wagner
2024-04-15 9:41 ` Gabriel Goller
2024-04-15 14:10 ` Lukas Wagner
2024-04-16 9:37 ` Gabriel Goller
2024-04-16 12:13 ` Lukas Wagner
2024-04-17 7:46 ` Fabian Grünbichler
2024-04-17 14:26 ` Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 15/33] server: notifications: send prune " Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 16/33] server: notifications: send verify " Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 17/33] server: notifications: send sync " Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 18/33] server: notifications: send update " Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 19/33] server: notifications: send acme " Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 20/33] server: notifications: send tape " Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 21/33] ui: add notification config panel Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 22/33] ui: tape backup job: add selector for notification-mode Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 23/33] ui: tape backup: add selector for 'notification-mode' Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 24/33] ui: tape restore: add 'notification-mode' parameter Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 25/33] ui: datastore options: " Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 26/33] ui: utils: add overrides for known notification metadata fields/values Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 27/33] ui: datastore edit: make new stores use notification system by default Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 28/33] ui: permissions paths: add /system/notifications to combobox Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 29/33] proxmox-backup-manager: add CLI for notification targets Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 30/33] proxmox-backup-manager: add CLI for notification matchers Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 31/33] proxmox-backup-manager: add CLI for gotify endpoints Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 32/33] proxmox-backup-manager: add CLI for sendmail endpoints Lukas Wagner
2024-04-12 10:06 ` [pbs-devel] [PATCH proxmox-backup 33/33] proxmox-backup-manager: add CLI for SMTP endpoints Lukas Wagner
2024-04-12 13:59 ` [pbs-devel] [PATCH proxmox-backup 00/33] integrate notification system Gabriel Goller
2024-04-12 14:09 ` Lukas Wagner
2024-04-17 8:22 ` Lukas Wagner
2024-04-17 10:26 ` Gabriel Goller
2024-04-17 10:26 ` Gabriel Goller
2024-04-17 12:31 ` Gabriel Goller
2024-04-17 14:38 ` Lukas Wagner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240412100631.94218-13-l.wagner@proxmox.com \
--to=l.wagner@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox