From 3c29e4e90711efe41566970c62d9ede7d2d42e6b Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Wed, 27 Nov 2013 09:45:04 +0100 Subject: [PATCH] Use a shell script for the mail-service-notification command. Refs #5224 --- etc/CMakeLists.txt | 1 + etc/icinga2/conf.d/notifications.conf | 34 ++++++++++-------------- etc/icinga2/scripts/mail-notification.sh | 20 ++++++++++++++ icinga2.spec | 2 ++ 4 files changed, 37 insertions(+), 20 deletions(-) create mode 100755 etc/icinga2/scripts/mail-notification.sh diff --git a/etc/CMakeLists.txt b/etc/CMakeLists.txt index 864350f9f..00c07c9c2 100644 --- a/etc/CMakeLists.txt +++ b/etc/CMakeLists.txt @@ -41,6 +41,7 @@ install_if_not_exists(icinga2/features-available/notification.conf ${CMAKE_INSTA install_if_not_exists(icinga2/features-available/perfdata.conf ${CMAKE_INSTALL_SYSCONFDIR}/icinga2/features-available) install_if_not_exists(icinga2/features-available/statusdata.conf ${CMAKE_INSTALL_SYSCONFDIR}/icinga2/features-available) install_if_not_exists(icinga2/features-available/syslog.conf ${CMAKE_INSTALL_SYSCONFDIR}/icinga2/features-available) +install_if_not_exists(icinga2/scripts/mail-notification.sh ${CMAKE_INSTALL_SYSCONFDIR}/icinga2/scripts) install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_SYSCONFDIR}/icinga2/features-enabled\")") install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink ../features-available/checker.conf \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_SYSCONFDIR}/icinga2/features-enabled/checker.conf\")") diff --git a/etc/icinga2/conf.d/notifications.conf b/etc/icinga2/conf.d/notifications.conf index 9f58e558f..36013c512 100644 --- a/etc/icinga2/conf.d/notifications.conf +++ b/etc/icinga2/conf.d/notifications.conf @@ -22,27 +22,21 @@ template Notification "mail-notification" { } object NotificationCommand "mail-service-notification" inherits "plugin-notification-command" { - command = [ - "/usr/bin/printf", - "\"%b\"", - {{{\"***** Icinga ***** + command = [ (IcingaSysconfDir + "/icinga2/scripts/mail-notification.sh") ], - Notification Type: $NOTIFICATIONTYPE$ - - Service: $SERVICEDESC$ - Host: $HOSTALIAS$ - Address: $HOSTADDRESS$ - State: $SERVICESTATE$ - - Date/Time: $LONGDATETIME$ - - Additional Info: $SERVICEOUTPUT$ - - Comment: [$NOTIFICATIONAUTHORNAME$] $NOTIFICATIONCOMMENT$\"}}}, - "/bin/mail", - "-s", - "\"$NOTIFICATIONTYPE$ - $HOSTDISPLAYNAME$ - $SERVICEDISPLAYNAME$ is $SERVICESTATE$\"", - "$USEREMAIL$" + export_macros = [ + "NOTIFICATIONTYPE", + "SERVICEDESC", + "HOSTALIAS", + "HOSTADDRESS", + "SERVICESTATE", + "LONGDATETIME", + "SERVICEOUTPUT", + "NOTIFICATIONAUTHORNAME", + "NOTIFICATIONCOMMENT", + "HOSTDISPLAYNAME", + "SERVICEDISPLAYNAME", + "USEREMAIL" ] } diff --git a/etc/icinga2/scripts/mail-notification.sh b/etc/icinga2/scripts/mail-notification.sh new file mode 100755 index 000000000..803892dc0 --- /dev/null +++ b/etc/icinga2/scripts/mail-notification.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +template=$(cat <