]> granicus.if.org Git - icinga2/commitdiff
Use a shell script for the mail-service-notification command.
authorGunnar Beutner <gunnar.beutner@netways.de>
Wed, 27 Nov 2013 08:45:04 +0000 (09:45 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Wed, 27 Nov 2013 08:48:00 +0000 (09:48 +0100)
Refs #5224

etc/CMakeLists.txt
etc/icinga2/conf.d/notifications.conf
etc/icinga2/scripts/mail-notification.sh [new file with mode: 0755]
icinga2.spec

index 864350f9f043ca35ad3f423be08dcda5f8dd2633..00c07c9c2f959554b8c5ebc591c1ab5feab96e84 100644 (file)
@@ -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\")")
index 9f58e558f4945289aeeb9c58286d026d06b1ba66..36013c512755932c59358a7dd11978ccdcf8c73c 100644 (file)
@@ -22,27 +22,21 @@ template Notification "mail-notification" {
 }
 
 object NotificationCommand "mail-service-notification" inherits "plugin-notification-command" {
-  command = [
-    "/usr/bin/printf",
-    "\"%b\"",
-    {{{\"***** Icinga  *****
-
-    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$"
+  command = [ (IcingaSysconfDir + "/icinga2/scripts/mail-notification.sh") ],
+
+  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 (executable)
index 0000000..803892d
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+template=$(cat <<TEMPLATE
+***** Icinga  *****
+
+Notification Type: $NOTIFICATIONTYPE
+
+Service: $SERVICEDESC
+Host: $HOSTALIAS
+Address: $HOSTADDRESS
+State: $SERVICESTATE
+
+Date/Time: $LONGDATETIME
+
+Additional Info: $SERVICEOUTPUT
+
+Comment: [$NOTIFICATIONAUTHORNAME] $NOTIFICATIONCOMMENT
+TEMPLATE)
+
+/usr/bin/printf "%b" $template | mail -s "$NOTIFICATIONTYPE - $HOSTDISPLAYNAME - $SERVICEDISPLAYNAME is $SERVICESTATE" $USEREMAIL
+
index c2cc3565ceb89af723bcb1f7f45781978f79747f..600722dce0c01a79a6b6bc15aa90b523f37c6f01 100644 (file)
@@ -315,10 +315,12 @@ exit 0
 %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_sysconfdir}/%{name}/conf.d
 %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_sysconfdir}/%{name}/features-available
 %attr(0750,%{icinga_user},%{icinga_group}) %dir %{_sysconfdir}/%{name}/features-enabled
+%attr(0750,%{icinga_user},%{icinga_group}) %dir %{_sysconfdir}/%{name}/scripts
 %config(noreplace) %attr(0640,%{icinga_user},%{icinga_group}) %{_sysconfdir}/%{name}/%{name}.conf
 %config(noreplace) %attr(0640,%{icinga_user},%{icinga_group}) %{_sysconfdir}/%{name}/conf.d/*.conf
 %config(noreplace) %attr(0640,%{icinga_user},%{icinga_group}) %{_sysconfdir}/%{name}/features-available/*.conf
 %config(noreplace) %{_sysconfdir}/%{name}/features-enabled/*.conf
+%config(noreplace) %{_sysconfdir}/%{name}/scripts/*
 %{_sbindir}/%{name}
 %{_bindir}/%{name}-migrate-config
 %{_bindir}/%{name}-build-ca