From 3472be35b5f6b896f51fe95f6001be648e0ec628 Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Mon, 13 Jun 2011 11:49:34 +0100 Subject: Updated email alert to send a sane subject, and valid HTML. --- bytemark_example_alerts.sh | 6 +++--- lib/mauve/notifiers/email.rb | 17 +++++++++++++++-- lib/mauve/notifiers/templates/email.html.erb | 22 ++++++++-------------- lib/mauve/notifiers/templates/email.txt.erb | 2 +- 4 files changed, 27 insertions(+), 20 deletions(-) diff --git a/bytemark_example_alerts.sh b/bytemark_example_alerts.sh index 916ffb5..1d4041c 100755 --- a/bytemark_example_alerts.sh +++ b/bytemark_example_alerts.sh @@ -22,12 +22,12 @@ $PRE -o networkmonitor -i 2 -u cr01.thn.bytemark.co.uk \ -s "cr02.man.bytemark.co.uk refused SSH connection" \ -d "
ssh: connect to host localhost port 1212: Connection refused
" -$PRE -o ventham.bytemark.co.uk -i heartbeat -r now -s "heartbeat failed for ventham.bytemark.co.uk" --detail="

The heartbeat wasn't sent for the host ventham.bytemark.co.uk

This indicates that the host might be down

" >/dev/null +$PRE -o ventham.bytemark.co.uk -i heartbeat -r +10m -c now -s "heartbeat failed for ventham.bytemark.co.uk" --detail="

The heartbeat wasn't sent for the host ventham.bytemark.co.uk

This indicates that the host might be down

" >/dev/null -$PRE -o networkmonitor -i ping-ventham -u ventham.bytemark.co.uk -r +10m -s "ping failed for ventham.bytemark.co.uk" +$PRE -o networkmonitor -i ping-ventham -u ventham.bytemark.co.uk -r -s "ping failed for ventham.bytemark.co.uk" $PRE -o vmhs -i 12345 -u partridge.bytemark.co.uk \ - -s "partridge.bytemark.co.uk heartbeat not received" -r +10m -c now + -s "partridge.bytemark.co.uk heartbeat not received" -r +10m -c $PRE -o vmhs -i 12347 -u eider.bytemark.co.uk \ -s "eider.bytemark.co.uk heartbeat not received" -r +2 diff --git a/lib/mauve/notifiers/email.rb b/lib/mauve/notifiers/email.rb index 168a9d6..75588f4 100644 --- a/lib/mauve/notifiers/email.rb +++ b/lib/mauve/notifiers/email.rb @@ -67,8 +67,21 @@ module Mauve end m = RMail::Message.new - - m.header.subject = "Arse" + + # + # Use a template for: + # + # * The subject + # * The text part + # * The HTML part. + # + subject_template = File.join(File.dirname(__FILE__), "templates", "email_subject.txt.erb") + if File.exists?(subject_template) + m.header.subject = ERB.new(File.read(subject_template)).result(binding).chomp + else + m.header.subject = "Arse" + end + m.header.to = destination m.header.from = @from m.header.date = MauveTime.now diff --git a/lib/mauve/notifiers/templates/email.html.erb b/lib/mauve/notifiers/templates/email.html.erb index fcf0620..c568d77 100644 --- a/lib/mauve/notifiers/templates/email.html.erb +++ b/lib/mauve/notifiers/templates/email.html.erb @@ -1,4 +1,7 @@ -

<%= alert.update_type.upcase %> <% + + +

<%= alert.update_type.upcase %>: <% case alert.update_type when :cleared %><%= MauveTime.now.to_s_relative(alert.cleared_at.to_time) %><% @@ -11,18 +14,9 @@ end if alert.source != alert.subject %> -- from <%= alert.source %><% end -%>. - +%>.


- -
-<%=alert.detail %> -
- +

Detail

+
<%=alert.detail %>

- -
---
-Love mauve
-xxx. -
+
--
Love mauve
xxx.
diff --git a/lib/mauve/notifiers/templates/email.txt.erb b/lib/mauve/notifiers/templates/email.txt.erb index 8f7e9a4..eb49da9 100644 --- a/lib/mauve/notifiers/templates/email.txt.erb +++ b/lib/mauve/notifiers/templates/email.txt.erb @@ -13,7 +13,7 @@ if alert.source != alert.subject end %>. --- Details ------------------------------------------------------------ +-- Detail ------------------------------------------------------------ <%= Sanitize.clean(alert.detail) %> -- cgit v1.2.1