mirror of
https://git.proxmox.com/git/proxmox-backup
synced 2025-08-14 18:55:02 +00:00
api-types: api: datatore: add notification-mode parameter
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> Tested-by: Gabriel Goller <g.goller@proxmox.com> Reviewed-by: Gabriel Goller <g.goller@proxmox.com> Tested-by: Maximiliano Sandoval <m.sandoval@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
728740d307
commit
7b668dbc2b
@ -309,6 +309,10 @@ pub struct DataStoreConfig {
|
|||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub notify: Option<String>,
|
pub notify: Option<String>,
|
||||||
|
|
||||||
|
/// Opt in to the new notification system
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub notification_mode: Option<NotificationMode>,
|
||||||
|
|
||||||
/// Datastore tuning options
|
/// Datastore tuning options
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub tuning: Option<String>,
|
pub tuning: Option<String>,
|
||||||
@ -318,6 +322,23 @@ pub struct DataStoreConfig {
|
|||||||
pub maintenance_mode: Option<String>,
|
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 {
|
impl DataStoreConfig {
|
||||||
pub fn new(name: String, path: String) -> Self {
|
pub fn new(name: String, path: String) -> Self {
|
||||||
Self {
|
Self {
|
||||||
@ -330,6 +351,7 @@ impl DataStoreConfig {
|
|||||||
verify_new: None,
|
verify_new: None,
|
||||||
notify_user: None,
|
notify_user: None,
|
||||||
notify: None,
|
notify: None,
|
||||||
|
notification_mode: None,
|
||||||
tuning: None,
|
tuning: None,
|
||||||
maintenance_mode: None,
|
maintenance_mode: None,
|
||||||
}
|
}
|
||||||
|
@ -222,6 +222,8 @@ pub enum DeletableProperty {
|
|||||||
NotifyUser,
|
NotifyUser,
|
||||||
/// Delete the notify property
|
/// Delete the notify property
|
||||||
Notify,
|
Notify,
|
||||||
|
/// Delete the notification-mode property
|
||||||
|
NotificationMode,
|
||||||
/// Delete the tuning property
|
/// Delete the tuning property
|
||||||
Tuning,
|
Tuning,
|
||||||
/// Delete the maintenance-mode property
|
/// Delete the maintenance-mode property
|
||||||
@ -315,6 +317,9 @@ pub fn update_datastore(
|
|||||||
DeletableProperty::NotifyUser => {
|
DeletableProperty::NotifyUser => {
|
||||||
data.notify_user = None;
|
data.notify_user = None;
|
||||||
}
|
}
|
||||||
|
DeletableProperty::NotificationMode => {
|
||||||
|
data.notification_mode = None;
|
||||||
|
}
|
||||||
DeletableProperty::Tuning => {
|
DeletableProperty::Tuning => {
|
||||||
data.tuning = None;
|
data.tuning = None;
|
||||||
}
|
}
|
||||||
@ -385,6 +390,10 @@ pub fn update_datastore(
|
|||||||
data.notify_user = update.notify_user;
|
data.notify_user = update.notify_user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if update.notification_mode.is_some() {
|
||||||
|
data.notification_mode = update.notification_mode;
|
||||||
|
}
|
||||||
|
|
||||||
if update.tuning.is_some() {
|
if update.tuning.is_some() {
|
||||||
data.tuning = update.tuning;
|
data.tuning = update.tuning;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user