class DeepTest::Distributed::MasterTestServer
Constants
- STATUS_PORT
Attributes
servers[R]
Public Class Methods
new(servers)
click to toggle source
# File lib/deep_test/distributed/master_test_server.rb, line 10 def initialize(servers) @servers = servers end
start(uri, server_uris)
click to toggle source
# File lib/deep_test/distributed/master_test_server.rb, line 31 def self.start(uri, server_uris) master = start_drb(uri, server_uris) start_http(master) DeepTest.logger.info "MasterTestServer listening at #{DRb.uri}" DRb.thread.join end
start_drb(uri, server_uris)
click to toggle source
# File lib/deep_test/distributed/master_test_server.rb, line 38 def self.start_drb(uri, server_uris) servers = server_uris.map {|server_uri| DRbObject.new_with_uri server_uri} master = DeepTest::Distributed::MasterTestServer.new(servers) DRb.start_service(uri, master) master end
start_http(master)
click to toggle source
# File lib/deep_test/distributed/master_test_server.rb, line 45 def self.start_http(master) s = WEBrick::HTTPServer.new :Port => STATUS_PORT s.mount_proc("/", &master.method(:show_status)) Thread.new {s.start} end
Public Instance Methods
show_status(req, res)
click to toggle source
# File lib/deep_test/distributed/master_test_server.rb, line 14 def show_status(req, res) template = File.read(File.dirname(__FILE__) + "/show_status.rhtml") res.body = ERB.new(template).result(binding) end
test_server_statuses()
click to toggle source
# File lib/deep_test/distributed/master_test_server.rb, line 19 def test_server_statuses @servers.map do |s| status = begin s.status rescue Exception => e e end [s.__drburi, status] end end