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