Sha256: f71f3cb841d41bed343a242dccb0c3d2ba2d332a7a0cd37e0c63ffccde10d38f
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
module LitmusPaper module Dependency class TCP def initialize(ip, port, options = {}) @ip, @port = ip, port @timeout = options.fetch(:timeout_seconds, 5) @input_data = options[:input_data] @expected_output = options[:expected_output] end def available? response = true Timeout.timeout(@timeout) do socket = TCPSocket.new(@ip, @port) if @input_data || @expected_output socket.puts(@input_data.to_s) data = socket.gets response = data.chomp == @expected_output LitmusPaper.logger.info("Response (#{response}) does not match expected output (#{@expected_output})") end socket.close end response rescue Timeout::Error LitmusPaper.logger.info("Timeout connecting #{@ip}:#{@port}") false rescue => e LitmusPaper.logger.info("TCP available check to #{@ip}:#{@port} failed with #{e.message}") false end def to_s "Dependency::TCP(tcp://#{@ip}:#{@port})" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
litmus_paper-0.9.0 | lib/litmus_paper/dependency/tcp.rb |