class LoadManager
Attributes
configuration[R]
run_id[R]
Public Class Methods
new(configuration, target_code)
click to toggle source
# File lib/load/load_manager.rb, line 10 def initialize(configuration, target_code) @configuration = configuration end
Public Instance Methods
kill_pids(pids)
click to toggle source
# File lib/load/load_manager.rb, line 65 def kill_pids(pids) puts "Killing child processes" pids.each do |pid| Process.kill("INT", pid) end end
ramp_up()
click to toggle source
# File lib/load/load_manager.rb, line 14 def ramp_up puts "Load Manager - ramp_up" puts "Load Manager: #{Process.pid}" pids = [] definition_code = configuration['code'] @server_address = ENV["SERVER"] || "localhost:2233" puts "Server address: #{@server_address}" if (ENV['SERVER'] == nil) puts "No 'SERVER' env specified, creating local/minimal server to store results" pids << fork { @reporter = LoadReporter.new({server: @server_address}) while (@reporter.started == false) puts "Cannot find Load server" sleep 1 end } else puts "Using existent 'SERVER': #{@server_address}" end @run_id = create_run({definition_code: definition_code}) ramp_up = LoadRampUp.new(@run_id, @target_code, @configuration) pids << fork { ramp_up.run } quit = false while !quit begin system("stty raw -echo") str = STDIN.getc ensure system("stty -raw echo") end input = str.chr puts "You pressed: #{input} ##{str.to_i}" if (input == "q") quit = true puts "==================================================================================" puts "DONE WITH RAMP UP" puts " PID's: #{pids}" puts "==================================================================================" end end kill_pids(pids) end