X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/94d2af98f5882985e57d8dd1b17a2fd2e8cc8734..97403e08475b328115373a2c6a23e82116199aad:/services/api/lib/simulate_job_log.rb diff --git a/services/api/lib/simulate_job_log.rb b/services/api/lib/simulate_job_log.rb index 65ab021746..860513f2f5 100644 --- a/services/api/lib/simulate_job_log.rb +++ b/services/api/lib/simulate_job_log.rb @@ -1,17 +1,19 @@ -require 'db_current_time' - module SimulateJobLog - include DbCurrentTime - def replay(filename, multiplier = 1, simulated_job_uuid = nil) raise "Environment must be development or test" unless [ 'test', 'development' ].include? ENV['RAILS_ENV'] multiplier = multiplier.to_f multiplier = 1.0 if multiplier <= 0 - actual_start_time = db_current_time + actual_start_time = Time.now log_start_time = nil + if simulated_job_uuid and (job = Job.where(uuid: simulated_job_uuid).first) + job_owner_uuid = job.owner_uuid + else + job_owner_uuid = system_user_uuid + end + act_as_system_user do File.open(filename).each.with_index do |line, index| cols = {} @@ -33,14 +35,14 @@ module SimulateJobLog # determine when we want to simulate this log being created, based on the time multiplier log_start_time = cols[:timestamp] if log_start_time.nil? log_time = cols[:timestamp] - actual_elapsed_time = db_current_time - actual_start_time + actual_elapsed_time = Time.now - actual_start_time log_elapsed_time = log_time - log_start_time modified_elapsed_time = log_elapsed_time / multiplier pause_time = modified_elapsed_time - actual_elapsed_time sleep pause_time if pause_time > 0 - # output log entry for debugging and create it in the current environment's database - puts "#{index} #{cols.to_yaml}\n" + Log.new({ + owner_uuid: job_owner_uuid, event_at: Time.zone.local_to_utc(cols[:timestamp]), object_uuid: cols[:job_uuid], event_type: cols[:event_type],