lib/god/conditions/ping.rb in olgen-god-0.9.0 vs lib/god/conditions/ping.rb in olgen-god-0.9.1

- old
+ new

@@ -1,17 +1,26 @@ module God module Conditions class Ping < PollCondition - attr_accessor :timeout, :host, :trigger_on + include ConditionHelper + attr_accessor :timeout, :host, :trigger_on, :times def initialize super self.timeout = 2 # s self.host = nil self.trigger_on=true + self.times = [1, 1] end + + def prepare + if self.times.kind_of?(Integer) + self.times = [self.times, self.times] + end + @timeline = Timeline.new(self.times[1]) + end def valid? valid = true valid &= complain("Attribute 'host' must be specified", self) if self.host.nil? valid &= complain("Attribute 'timeout' must be specified", self) if self.timeout.nil? @@ -21,13 +30,13 @@ def test cmd = "ping -W #{self.timeout} -c 5 #{self.host}" ping_result = `#{cmd}` if ping_result=~/time=/ self.info = "Server reachable via ping!" - return self.trigger_on + return timeline_test(self.trigger_on) end self.info = "Server unreachable via ping!!!" - return !self.trigger_on + return timeline_test(!self.trigger_on) end end end end \ No newline at end of file