class Flare::Test::Node

Description

Attributes

hostname[R]
hostname_port[R]
pid[R]
port[R]

Public Class Methods

new(hostname_port, pid) click to toggle source
# File lib/flare/test/node.rb, line 15
def initialize(hostname_port, pid)
  @hostname_port = hostname_port
  @hostname, @port = hostname_port.split(':')
  @pid = pid
  @alive = true
end

Public Instance Methods

cont() click to toggle source
# File lib/flare/test/node.rb, line 40
def cont
  Process.kill :CONT, @pid
end
open(&block) click to toggle source
# File lib/flare/test/node.rb, line 22
def open(&block)
  return nil unless @alive
  node = Flare::Tools::Node.open(@hostname, @port)
  return node if block.nil?
  ret = nil
  begin
    ret = block.call(node)
  rescue => e
    node.close
    raise e
  end
  ret
end
stop() click to toggle source
# File lib/flare/test/node.rb, line 36
def stop
  Process.kill :STOP, @pid
end
terminate() click to toggle source
# File lib/flare/test/node.rb, line 44
def terminate
  puts "killing... #{@pid}"
  begin
    Timeout.timeout(10) do
      Process.kill :TERM, @pid
      Process.waitpid @pid
    end
  rescue TimeoutError => e
    Process.kill :KILL, @pid
    Process.waitpid @pid
  end
  @alive = false
end