Class: LitmusPaper::Dependency::TCP
- Inherits:
-
Object
- Object
- LitmusPaper::Dependency::TCP
- Defined in:
- lib/litmus_paper/dependency/tcp.rb
Instance Method Summary collapse
- #available? ⇒ Boolean
-
#initialize(ip, port, options = {}) ⇒ TCP
constructor
A new instance of TCP.
- #to_s ⇒ Object
Constructor Details
#initialize(ip, port, options = {}) ⇒ TCP
Returns a new instance of TCP.
4 5 6 7 8 9 |
# File 'lib/litmus_paper/dependency/tcp.rb', line 4 def initialize(ip, port, = {}) @ip, @port = ip, port @timeout = .fetch(:timeout_seconds, 5) @input_data = [:input_data] @expected_output = [:expected_output] end |
Instance Method Details
#available? ⇒ Boolean
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/litmus_paper/dependency/tcp.rb', line 11 def available? response = true Timeout.timeout(@timeout) do socket = TCPSocket.new(@ip, @port) if @expected_output socket.puts(@input_data) if @input_data 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.}") false end |
#to_s ⇒ Object
34 35 36 |
# File 'lib/litmus_paper/dependency/tcp.rb', line 34 def to_s "Dependency::TCP(tcp://#{@ip}:#{@port})" end |