- if trace.valid?
- Trace.transaction do
- begin
- # Save the trace object
- trace.save!
-
- # Rename the temporary file to the final name
- FileUtils.mv(filename, trace.trace_name)
- rescue StandardError
- # Remove the file as we have failed to update the database
- FileUtils.rm_f(filename)
-
- # Pass the exception on
- raise
- end
-
- begin
- # Clear the inserted flag to make the import daemon load the trace
- trace.inserted = false
- trace.save!
- rescue StandardError
- # Remove the file as we have failed to update the database
- FileUtils.rm_f(trace.trace_name)
-
- # Pass the exception on
- raise
- end
- end
- end