summaryrefslogtreecommitdiff
path: root/lib/custodian/parser.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/custodian/parser.rb')
-rw-r--r--lib/custodian/parser.rb32
1 files changed, 19 insertions, 13 deletions
diff --git a/lib/custodian/parser.rb b/lib/custodian/parser.rb
index f9fc89f..77adc48 100644
--- a/lib/custodian/parser.rb
+++ b/lib/custodian/parser.rb
@@ -21,8 +21,7 @@ require 'uri'
# but in practice it manages to successfully parse each of the configuration
# files that we currently maintain @ Bytemark.
#
-# If there are any lines which are not recognized the class will terminate
-# with an error.
+# If there are any lines which are not recognized the class will raise an exception.
#
# Steve
# --
@@ -60,7 +59,7 @@ class MonitorConfig
@MACROS = Hash.new()
@queue = Beanstalk::Pool.new(['127.0.0.1:11300'])
@file = filename
- @timeout = 12
+ @timeout = 15
raise ArgumentError, "Missing configuration file!" if ( @file.nil? )
raise ArgumentError, "File not found: #{@file}" unless ( File.exists?( @file) )
@@ -145,7 +144,7 @@ class MonitorConfig
val = Array.new
#
- # Get the name
+ # Get the name of the macro.
#
name = $1.dup if ( line =~ /^([1-2A-Z_]+)\s+/ )
@@ -314,14 +313,6 @@ class MonitorConfig
end
#
- # Alert text will have a default, which may be overridden.
- #
- alert = "#{service} failed"
- if ( line =~ /otherwise '([^']+)'/ )
- alert=$1.dup
- end
-
- #
# All our service tests, except ping, require a port - we setup the defaults here,
# but the configuration file will allow users to specify an alternative
# via " on XXX ".
@@ -378,13 +369,28 @@ class MonitorConfig
:target_host => host,
:test_type => service,
:test_port => port,
- :test_alert => alert,
:verbose => true,
:timeout => @timeout
}
#
+ # Alert text will have a default, which may be overridden.
+ #
+ alert = "#{service} failed on #{host}"
+ if ( line =~ /otherwise '([^']+)'/ )
+ alert=$1.dup
+ end
+
+ #
+ # Store the alert
+ #
+ # Note: We do this in the loop so that we can have "on $host" with
+ # the per-test hostname inserted.
+ #
+ test[:test_alert] = alert
+
+ #
# TCP-tests will include a banner, optionally
#
if ( test[:test_type] =~ /tcp/ )