lib/watirgrid.rb in watirgrid-0.0.1 vs lib/watirgrid.rb in watirgrid-0.0.2
- old
+ new
@@ -11,17 +11,16 @@
class Grid
attr_accessor :drb_server_uri, :ring_server, :browsers
def initialize(params = {})
- @host = params[:interface] || external_interface
+ @drb_server_host = params[:drb_server_host] || external_interface
@drb_server_port = params[:drb_server_port] || 0
+ @ring_server_host = params[:ring_server_host] || external_interface
@ring_server_port = params[:ring_server_port] || Rinda::Ring_PORT
@renewer = params[:renewer] || Rinda::SimpleRenewer.new
- @quantity = params[:quantity]
-
logfile = params[:logfile] || STDOUT
@log = Logger.new(logfile, 'daily')
@log.level = params[:loglevel] || Logger::ERROR
@log.datetime_format = "%Y-%m-%d %H:%M:%S "
end
@@ -40,11 +39,13 @@
threads = []
id = 0
@browsers.each do |browser|
threads << Thread.new do
id += 1
- yield(browser, id)
+ @log.debug(browser)
+ # yields a browser object, ID, hostname, architecture, type
+ yield(browser[2].new_browser, id, browser[4],browser[5],browser[6])
end
end
threads.each {|thread| thread.join}
end
@@ -67,56 +68,65 @@
end
##
# Start the DRb Server
def start_drb_server
- drb_server = DRb.start_service("druby://#{@host}:#{@drb_server_port}")
+ drb_server = DRb.start_service(
+ "druby://#{@drb_server_host}:#{@drb_server_port}")
@drb_server_uri = drb_server.uri
@log.info("DRb server started on : #{@drb_server_uri}")
end
##
# Locate the Rinda Ring Server via a UDP broadcast
def find_ring_server
- @ring_server = Rinda::RingFinger.new(@host, @ring_server_port)
+ @ring_server = Rinda::RingFinger.new(
+ @ring_server_host, @ring_server_port)
@ring_server = @ring_server.lookup_ring_any
- @log.info("Ring server found on : druby://#{@host}:#{@ring_server_port}")
+ @log.info("Ring server found on : druby://#{@ring_server_host}:#{@ring_server_port}")
end
##
# Get all tuple spaces on ringserver
def get_tuples(params = {})
- quantity = params[:quantity] || -1
+ if (params[:quantity].nil? or params[:quantity] == 0) then
+ quantity = -1
+ else
+ quantity = params[:quantity] - 1
+ end
architecture = params[:architecture] || nil
browser_type = params[:browser_type] || nil
@browsers = []
- services = @ring_server.read_all([
+ @tuples = @ring_server.read_all([
:name,
nil, # watir provider
nil, # browser front object
nil, # provider description
nil, # hostname
architecture,
browser_type])
- @log.info("Found #{services.size} services.")
- if services.size > 0 then
- services[1..quantity].each do |service|
- hostname = service[4]
+ @log.info("Found #{@tuples.size} tuples.")
+ if @tuples.size > 0 then
+ @log.debug("Iterating from 0 to #{quantity}")
+ @tuples[0..quantity].each do |tuple|
+ @log.debug("Iterating through #{@tuples.size} tuples")
+ hostname = tuple[4]
if params[:hostnames] then
if params[:hostnames][hostname] then
- @browsers << service[2].new_browser
- @ring_server.take(service)if params[:take_all] == true
+ @browsers << tuple
+ @ring_server.take(tuple)if params[:take_all] == true
end
else
- @browsers << service[2].new_browser
- @ring_server.take(service)if params[:take_all] == true
+ @browsers << tuple
+ @ring_server.take(tuple)if params[:take_all] == true
end
end
else
@browsers
end
+ @browsers
end
end
end