Class: DTR::DrbTestRunnerClientServer
- Inherits:
-
Object
- Object
- DTR::DrbTestRunnerClientServer
- Defined in:
- lib/dtr/drb_dtr.rb
Instance Method Summary collapse
- #idle? ⇒ Boolean
-
#initialize(my_uri, server_uri) ⇒ DrbTestRunnerClientServer
constructor
A new instance of DrbTestRunnerClientServer.
- #name ⇒ Object
- #queue ⇒ Object
- #run(runner_name, test_files, signature) ⇒ Object
- #server_signature ⇒ Object
- #setup(signature) ⇒ Object
- #start ⇒ Object
Constructor Details
#initialize(my_uri, server_uri) ⇒ DrbTestRunnerClientServer
Returns a new instance of DrbTestRunnerClientServer.
179 180 181 182 183 184 |
# File 'lib/dtr/drb_dtr.rb', line 179 def initialize(my_uri, server_uri) @my_uri = my_uri @server_uri = server_uri @run_setup_signature = nil @client_name = DTROPTIONS[:client_name] end |
Instance Method Details
#idle? ⇒ Boolean
194 195 196 |
# File 'lib/dtr/drb_dtr.rb', line 194 def idle? queue.empty? end |
#name ⇒ Object
186 187 188 |
# File 'lib/dtr/drb_dtr.rb', line 186 def name @client_name end |
#queue ⇒ Object
190 191 192 |
# File 'lib/dtr/drb_dtr.rb', line 190 def queue @queue ||= [] end |
#run(runner_name, test_files, signature) ⇒ Object
203 204 205 206 207 208 209 |
# File 'lib/dtr/drb_dtr.rb', line 203 def run(runner_name, test_files, signature) unless test_files.nil? || test_files.empty? queue << [runner_name, test_files, signature] else logger.info { "Error: argument test_files is #{test_files.nil? ? 'nil' : 'empty'}!"} end end |
#server_signature ⇒ Object
211 212 213 |
# File 'lib/dtr/drb_dtr.rb', line 211 def server_signature drbServer.server_signature end |
#setup(signature) ⇒ Object
198 199 200 201 |
# File 'lib/dtr/drb_dtr.rb', line 198 def setup(signature) logger.info {"request setup"} @run_setup_signature = signature end |
#start ⇒ Object
215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 |
# File 'lib/dtr/drb_dtr.rb', line 215 def start $SAFE = 1 # disable eval() and friends access_uris = [@server_uri] DRb.install_acl access_uris.to_acl logger.info { "Installed acl: #{access_uris.to_acl_list.join(', ')}" } DRb.start_service(@my_uri, self) begin logger.info { "=> DTR client started on #{@my_uri}"} logger.info { "=> OPTIONS: #{DTROPTIONS.to_yaml}"} logger.info { "=> Ctrl-C to shutdown; call with --help for options" } loop do if @run_setup_signature logger.info {"Setup"} begin result = dtrClient.setup(@run_setup_signature) if result[:exit_code] != 0 logger.info { "SETUP FAILED: #{result.inspect}" } puts "SETUP FAILED: #{result.inspect}" break end rescue Exception => e logger.error { e } end @run_setup_signature = nil logger.info {"Sleeping..."} end unless queue.empty? logger.info {"Working..."} logger.debug {queue.first.to_yaml} begin dtrClient.run(*queue.first.dup) rescue Exception => e logger.error { e } end queue.pop logger.info {"Sleeping..."} end begin sleep(1) rescue Interrupt => e break # Ctrl-C to shutdown end end ensure DRb.stop_service end end |