From 18b0906630ab4165d1e8b4bc66d7446b17c31605 Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Thu, 14 Jul 2011 18:00:49 +0100 Subject: * Improved logging. * Updated message suppression --- lib/mauve/notifiers/email.rb | 9 ++++----- lib/mauve/notifiers/sms_aql.rb | 18 +++++------------- lib/mauve/notifiers/templates/email.html.erb | 7 ++++++- lib/mauve/notifiers/templates/email.txt.erb | 5 +++++ lib/mauve/notifiers/templates/xmpp.txt.erb | 8 +++++++- lib/mauve/notifiers/xmpp.rb | 7 +++---- 6 files changed, 30 insertions(+), 24 deletions(-) (limited to 'lib/mauve/notifiers') diff --git a/lib/mauve/notifiers/email.rb b/lib/mauve/notifiers/email.rb index 77b10f1..b6a1e1b 100644 --- a/lib/mauve/notifiers/email.rb +++ b/lib/mauve/notifiers/email.rb @@ -35,7 +35,7 @@ module Mauve end - def send_alert(destination, alert, all_alerts, conditions = nil) + def send_alert(destination, alert, all_alerts, conditions = {}) message = prepare_message(destination, alert, all_alerts, conditions) args = [@server, @port] args += [@username, @password, @login_method.to_sym] if @login_method @@ -54,10 +54,9 @@ module Mauve protected - def prepare_message(destination, alert, all_alerts, conditions = nil) - if conditions - @suppressed_changed = conditions[:suppressed_changed] - end + def prepare_message(destination, alert, all_alerts, conditions = {}) + was_suppressed = conditions[:was_suppressed] || false + is_suppressed = conditions[:is_suppressed] || false m = RMail::Message.new diff --git a/lib/mauve/notifiers/sms_aql.rb b/lib/mauve/notifiers/sms_aql.rb index dbda229..d0cf630 100644 --- a/lib/mauve/notifiers/sms_aql.rb +++ b/lib/mauve/notifiers/sms_aql.rb @@ -19,9 +19,9 @@ module Mauve @name = name end - def send_alert(destination, alert, all_alerts, conditions = nil) + def send_alert(destination, alert, all_alerts, conditions = {}) uri = URI.parse(GATEWAY) - + opts_string = { :username => @username, :password => @password, @@ -52,17 +52,9 @@ module Mauve end protected - def prepare_message(destination, alert, all_alerts, conditions=nil) - if conditions - @suppressed_changed = conditions[:suppressed_changed] - end - - txt = case @suppressed_changed - when true then "TOO MUCH NOISE! Last notification: " - when false then "BACK TO NORMAL: " - else - "" - end + def prepare_message(destination, alert, all_alerts, conditions={}) + was_suppressed = conditions[:was_suppressed] || false + is_suppressed = conditions[:is_suppressed] || false template_file = File.join(File.dirname(__FILE__),"templates","sms.txt.erb") diff --git a/lib/mauve/notifiers/templates/email.html.erb b/lib/mauve/notifiers/templates/email.html.erb index bf5aed5..99f56d5 100644 --- a/lib/mauve/notifiers/templates/email.html.erb +++ b/lib/mauve/notifiers/templates/email.html.erb @@ -19,4 +19,9 @@ end

Detail

<%= RedCloth.new(alert.detail).to_html %>

-
--
Love mauve
xxx.
+<% if was_supressed and not is_suppressed %> +

Better now. Your notifications have now restarted.

+<% elsif is_supressed and not was_suppressed %> +

Too noisy! Your notifications have been suppressed.

+<% end %> +
--
Love mauve
xxx.
diff --git a/lib/mauve/notifiers/templates/email.txt.erb b/lib/mauve/notifiers/templates/email.txt.erb index d112718..a08ec55 100644 --- a/lib/mauve/notifiers/templates/email.txt.erb +++ b/lib/mauve/notifiers/templates/email.txt.erb @@ -19,6 +19,11 @@ end ----------------------------------------------------------------------- +<% if was_supressed and not is_suppressed +%>Better now. Your notifications have now restarted.<% +elsif is_supressed and not was_suppressed +%>Too noisy! Your notifications have been suppressed.<% end %> + -- Love mauve. xx diff --git a/lib/mauve/notifiers/templates/xmpp.txt.erb b/lib/mauve/notifiers/templates/xmpp.txt.erb index 2f86cb6..d39500c 100644 --- a/lib/mauve/notifiers/templates/xmpp.txt.erb +++ b/lib/mauve/notifiers/templates/xmpp.txt.erb @@ -11,4 +11,10 @@ end if alert.source != alert.subject %> -- from <%= alert.source %><% end -%>. +%>.<% +if was_suppressed and not is_suppressed +%> Normal service has resumed.<% +elsif is_suppressed and not was_suppressed +%> Further alerts supressed until things calm down.<% +end +%> diff --git a/lib/mauve/notifiers/xmpp.rb b/lib/mauve/notifiers/xmpp.rb index 34cc815..7fe1e39 100644 --- a/lib/mauve/notifiers/xmpp.rb +++ b/lib/mauve/notifiers/xmpp.rb @@ -182,12 +182,11 @@ module Mauve # which checks whether the jid in question has a presence matching one # or more of the choices - see +check_jid_has_presence+ for options. - def send_alert(destination, alert, all_alerts, conditions = nil) + def send_alert(destination, alert, all_alerts, conditions = {}) destination_jid = JID.new(destination) - if conditions - @suppressed_changed = conditions[:suppressed_changed] - end + was_suppressed = conditions[:was_suppressed] || false + is_suppressed = conditions[:is_suppressed] || false if conditions && !check_alert_conditions(destination_jid, conditions) logger.info("Alert conditions not met, not sending XMPP alert to #{destination_jid}") -- cgit v1.2.1