diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/custodian/alerts/mauve.rb | 11 | ||||
| -rw-r--r-- | lib/custodian/util/prefix.rb | 42 | 
2 files changed, 49 insertions, 4 deletions
| diff --git a/lib/custodian/alerts/mauve.rb b/lib/custodian/alerts/mauve.rb index be19eec..0aed390 100644 --- a/lib/custodian/alerts/mauve.rb +++ b/lib/custodian/alerts/mauve.rb @@ -2,6 +2,7 @@  require 'custodian/util/bytemark'  require 'custodian/util/dns' +require 'custodian/util/prefix'  require 'digest/sha1' @@ -223,12 +224,14 @@ module Custodian          # Because there might be N-classes which implemented the test          # we need to make sure these are distinct too.          # -        id_key  = test.to_s -        id_key += test.class.to_s +        id_key    = test.to_s +        id_key   += test.class.to_s +        alert.id  = Digest::SHA1.hexdigest(id_key) -        alert.id = Digest::SHA1.hexdigest(id_key) +        # Look for a subject-prefix +        subject_prefix = Custodian::Util::Prefix.text() -        alert.subject = subject +        alert.subject = subject_prefix + 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 new file mode 100644 index 0000000..743a422 --- /dev/null +++ b/lib/custodian/util/prefix.rb @@ -0,0 +1,42 @@ + + +# +#  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 | 
