From 8fed21ce4af972799634aaa4b44c09184034734a Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Thu, 22 Feb 2018 14:15:05 +0200 Subject: Removed obsolete code. The intention of this series of changes is to allow subjects to be replaced for specific tests. The idea of replacement replaced the idea of a custom-prefix - so I've removed that code before proceeding. --- lib/custodian/alerts/mauve.rb | 6 +----- lib/custodian/util/prefix.rb | 42 ------------------------------------------ 2 files changed, 1 insertion(+), 47 deletions(-) delete mode 100644 lib/custodian/util/prefix.rb diff --git a/lib/custodian/alerts/mauve.rb b/lib/custodian/alerts/mauve.rb index 0aed390..697c7fb 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,7 @@ 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() - - alert.subject = subject_prefix + subject + alert.subject = subject alert.summary = "The #{test_type} test failed against #{test_host}" # 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 -- cgit v1.2.1 From 04782ef9d184cf1de362f1a42fa8f48e5e7aa697 Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Thu, 22 Feb 2018 14:22:37 +0200 Subject: Allow tests to set a subject. This updates the parser, globally, to allow: .... with subject 'xxx' --- lib/custodian/testfactory.rb | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) 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 # -- cgit v1.2.1 From 74d9ba8651346e8a6653a32a70ea2216c4a45f61 Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Thu, 22 Feb 2018 14:23:06 +0200 Subject: If a test has a subject used, then use it. --- lib/custodian/alerts/mauve.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/custodian/alerts/mauve.rb b/lib/custodian/alerts/mauve.rb index 697c7fb..13ac747 100644 --- a/lib/custodian/alerts/mauve.rb +++ b/lib/custodian/alerts/mauve.rb @@ -227,7 +227,16 @@ module Custodian id_key += test.class.to_s alert.id = Digest::SHA1.hexdigest(id_key) + # + # 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.summary = "The #{test_type} test failed against #{test_host}" # -- cgit v1.2.1 From 16ee28b161456337a73e65714d9f21b719ddb98b Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Thu, 22 Feb 2018 14:23:15 +0200 Subject: Test that the parser understands "with subject 'xxx'" --- t/test-custodian-parser.rb | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/t/test-custodian-parser.rb b/t/test-custodian-parser.rb index 2239503..8cbc2ac 100755 --- a/t/test-custodian-parser.rb +++ b/t/test-custodian-parser.rb @@ -429,6 +429,41 @@ EOF end end + + # + # Test that the parser allows subject-setting. + # + def test_http_subject_setting + + # + # test data + # + data = { + "http://example must run http with subject 'foo'." => "foo", + "http://example must run http with status 200 with subject 'bart simpson'." => "bart simpson", + "http://example must run http with content 'bar'." => nil, + 'http://example must run http without cache busting.' => nil + } + + data.each do |str, sub| + assert_nothing_raised do + + # + # Create the new parser + # + obj = Custodian::TestFactory.create(str) + + assert(!obj.nil?) + assert(obj.kind_of?(Array)) + assert(obj.size == 1) + assert_equal(obj[0].to_s, str) + + assert_equal(obj[0].get_subject, sub) + end + end + end + + # # Test that the parser works for basic-auth. # -- cgit v1.2.1 From aa0e8f5e85ff46c06ca6d9d1b303926936ff288d Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Thu, 22 Feb 2018 14:29:08 +0200 Subject: Added ChangeLog entry for new release. --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index ac1a9f6..61a2a7d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +custodian (0.41) stable; urgency=low + + * Allow tests to override the alert-subject raised via mauve (#21, !15) + + -- Steve Kemp Thu, 22 Feb 2018 14:22:41 +0200 + custodian (0.40) stable; urgency=high * Fake-release to ensure all hosts are updated. -- cgit v1.2.1 From 1f3d5467758529812601111b8b4fdf2566abd3d4 Mon Sep 17 00:00:00 2001 From: Steve Kemp Date: Thu, 22 Feb 2018 16:05:51 +0200 Subject: Updated the file-alerter to use the subject. If a subject is specified in a test that will now be used for the raise/clear message. This allows testing of the new parser-change(s). --- lib/custodian/alerts/file.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 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 -- cgit v1.2.1