Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Reports
- class Common
- def input_hash
- input_data
- end
- def input_json
- input_data.to_json
- end
- def output_data
- return @output_data if @output_data
- tmp_file = Tempfile.new
- File.write(tmp_file.path, input_data.to_json)
- measure = MeasureMemoryUsageTimeSpeed.run_and_measure do
- Open3.capture3(command(tmp_file))
- end
- # TODO: store these data
- # measure[:time_spent_seconds]
- # measure[:memory_usage_kb]
- command_out, command_error, command_status = measure[:block_result]
- command_result = { command_out: command_out,
- command_error: command_error,
- command_status: command_status.to_i }
- raise(StandardError, "command '#{python_script_name}' has non-zero result") unless command_status.to_i.zero?
- @output_data = JSON.parse(command_out, { allow_nan: true })
- rescue StandardError => e
- puts command_result
- ::CbsPlatform::ErrorReporter.error(
- e,
- "Can't generate #{report_type} report data (report ID = #{report_id}, command_result=#{command_result})"
- )
- nil
- command_result
- ensure
- tmp_file&.close
- tmp_file&.unlink
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement