Class: DeepTest::Distributed::RemoteWorkerClient
- Inherits:
-
Object
- Object
- DeepTest::Distributed::RemoteWorkerClient
- Defined in:
- lib/deep_test/distributed/remote_worker_client.rb
Instance Method Summary collapse
- #fail_over(method, exception) ⇒ Object
- #failed_over? ⇒ Boolean
-
#initialize(options, test_server, failover_workers) ⇒ RemoteWorkerClient
constructor
A new instance of RemoteWorkerClient.
- #load_files(filelist) ⇒ Object
- #start_all ⇒ Object
- #stop_all ⇒ Object
Constructor Details
#initialize(options, test_server, failover_workers) ⇒ RemoteWorkerClient
Returns a new instance of RemoteWorkerClient.
4 5 6 7 8 |
# File 'lib/deep_test/distributed/remote_worker_client.rb', line 4 def initialize(, test_server, failover_workers) @failover_workers = failover_workers @options = @test_server = test_server end |
Instance Method Details
#fail_over(method, exception) ⇒ Object
44 45 46 47 |
# File 'lib/deep_test/distributed/remote_worker_client.rb', line 44 def fail_over(method, exception) @options.ui_instance.distributed_failover_to_local(method, exception) @worker_server = @failover_workers end |
#failed_over? ⇒ Boolean
49 50 51 |
# File 'lib/deep_test/distributed/remote_worker_client.rb', line 49 def failed_over? @worker_server == @failover_workers end |
#load_files(filelist) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/deep_test/distributed/remote_worker_client.rb', line 10 def load_files(filelist) @options.new_listener_list.before_sync t = Thread.new do @test_server.sync(@options) @worker_server = @test_server.spawn_worker_server(@options) @worker_server.load_files filelist end filelist.each {|f| load f} begin t.join rescue => e # The failover here doesn't invoke load_files on the failover_workers # because they will be LocalWorkers, which fork from the current # process. The fact that we depend in this here is damp... # fail_over("load_files", e) end end |
#start_all ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/deep_test/distributed/remote_worker_client.rb', line 32 def start_all @worker_server.start_all rescue => e raise if failed_over? fail_over("start_all", e) retry end |
#stop_all ⇒ Object
40 41 42 |
# File 'lib/deep_test/distributed/remote_worker_client.rb', line 40 def stop_all @worker_server.stop_all end |