module Idlc::Deploy::Power

def wait_for_tcp_connection(host, port, connection_timeout = 5, wait_timeout = 1500, sleep_time = 10)

def wait_for_tcp_connection(host, port, connection_timeout = 5, wait_timeout = 1500, sleep_time = 10)
  connected = false
  start_time = Time.now
  until connected
    begin
      Net::Telnet.new(
        'Host' => host,
        'Port' => port,
        'Telnetmode' => false,
        'Timeout' => connection_timeout
      )
      connected = true
    rescue ConnectionError, Net::OpenTimeout, Errno::ECONNREFUSED
      check_timeout(start_time, wait_timeout)
      debug("waiting for #{host}:#{port} ... (#{(Time.now - start_time)}s elapsed)")
      sleep sleep_time
    end
  end
  msg "recieved response from #{host}:#{port} !"
  true
end