Sha256: 0de0b575dc7399896fbeda54d13b96b6ac67e625d7c251c3c4301d5c4b672d3d

Contents?: true

Size: 852 Bytes

Versions: 2

Compression:

Stored size: 852 Bytes

Contents

module God
  module Conditions
    
    class Ping < PollCondition
      attr_accessor :timeout, :host, :trigger_on
      
      def initialize
        super
        self.timeout = 2 # s
        self.host = nil
        self.trigger_on=true
      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?
        valid
      end
      
      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
        end
        self.info = "Server unreachable via ping!!!"
        return !self.trigger_on
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
olgen-god-0.9.0 lib/god/conditions/ping.rb
olgen-god-0.8.2 lib/god/conditions/ping.rb