summaryrefslogtreecommitdiff
path: root/lib/custodian
diff options
context:
space:
mode:
Diffstat (limited to 'lib/custodian')
-rw-r--r--lib/custodian/alerts/file.rb12
-rw-r--r--lib/custodian/alerts/mauve.rb13
-rw-r--r--lib/custodian/testfactory.rb27
-rw-r--r--lib/custodian/util/prefix.rb42
4 files changed, 45 insertions, 49 deletions
diff --git a/lib/custodian/alerts/file.rb b/lib/custodian/alerts/file.rb
index 06a704e..0c7a6dd 100644
--- a/lib/custodian/alerts/file.rb
+++ b/lib/custodian/alerts/file.rb
@@ -31,7 +31,12 @@ module Custodian
# Record a raise event for the given test.
#
def raise
- write_message("RAISE: #{test.target} failed #{test.get_type}-test - #{test.error}")
+ subject = test.target
+ subject = test.get_subject() unless test.get_subject().nil?
+
+ write_message("RAISE: #{subject} failed #{test.get_type}-test - #{test.error}")
+
+
end
@@ -47,7 +52,10 @@ module Custodian
# Record a clear event for the given test.
#
def clear
- write_message("CLEAR: #{test.target} failed #{test.get_type}-test")
+ subject = test.target
+ subject = test.get_subject() unless test.get_subject().nil?
+
+ write_message("CLEAR: #{subject} failed #{test.get_type}-test")
end
diff --git a/lib/custodian/alerts/mauve.rb b/lib/custodian/alerts/mauve.rb
index 0aed390..13ac747 100644
--- a/lib/custodian/alerts/mauve.rb
+++ b/lib/custodian/alerts/mauve.rb
@@ -2,7 +2,6 @@
require 'custodian/util/bytemark'
require 'custodian/util/dns'
-require 'custodian/util/prefix'
require 'digest/sha1'
@@ -228,10 +227,16 @@ module Custodian
id_key += test.class.to_s
alert.id = Digest::SHA1.hexdigest(id_key)
- # Look for a subject-prefix
- subject_prefix = Custodian::Util::Prefix.text()
+ #
+ # Set the subject of the alert
+ #
+ alert.subject = subject
+
+ #
+ # But allow it to be overwritten if something was specified.
+ #
+ alert.subject = test.get_subject() unless test.get_subject().nil?
- alert.subject = subject_prefix + subject
alert.summary = "The #{test_type} test failed against #{test_host}"
#
diff --git a/lib/custodian/testfactory.rb b/lib/custodian/testfactory.rb
index db3f339..358e676 100644
--- a/lib/custodian/testfactory.rb
+++ b/lib/custodian/testfactory.rb
@@ -99,10 +99,21 @@ module Custodian
#
# We do this only after we've instantiated the test.
#
- if line =~ /\s+otherwise\s+'([^']+)'/
+ if line =~ /\s+otherwise\s+'([^']+)'/
obj.set_notification_text($1.dup)
end
+
+ #
+ # Some tests will replace their subject.
+ #
+ #
+ if line =~ /\s+with\s+subject\s+'([^']+)'/
+ obj.set_subject($1.dup)
+ else
+ obj.set_subject( nil )
+ end
+
#
# Is the test inverted?
#
@@ -168,6 +179,20 @@ module Custodian
end
+ #
+ # If this test has a custom subject then return it
+ #
+ def get_subject
+ @subject
+ end
+
+
+ #
+ # Setup a custom subject for the (mauve) alert we raise
+ #
+ def set_subject( subject )
+ @subject = subject
+ end
#
diff --git a/lib/custodian/util/prefix.rb b/lib/custodian/util/prefix.rb
deleted file mode 100644
index 743a422..0000000
--- a/lib/custodian/util/prefix.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-#
-# This class allows a custom-prefix to be prepended to any alert
-# subjects.
-#
-module Custodian
-
- module Util
-
- class Prefix
-
-
- #
- # Return the custom-prefix to use, if any.
- #
- def Prefix.text()
- # Default to no prefix.
- default = ""
-
- # Look for matches - last one wins.
- Dir.glob( "/store/clients/*/custodian-prefix.cfg" ).each do |file|
- begin
- default = File.read( file )
- rescue Errno::EACCES
- # Permission-denied.
- end
- end
-
- # Remove any newline characters
- default.gsub!( /[\r\n]/, '' )
-
- # Truncate, if required.
- max = 32
- default = default[0...max] if ( default.length > max )
-
- default
- end
-
- end
- end
-end