mirror of
https://github.com/fluent/fluentd-ui.git
synced 2025-08-08 15:27:08 +02:00
How to reproduce: * Create a binary file by the following command: "ruby -e 'puts "\u3042"' > /tmp/xxx" * Open /daemon/setting/in_tail * Select "/tmp/xxx" * Error page is rendered * log/production.log says: ActionView::Template::Error (undefined method `join' for nil:NilClass): 12: = f.text_field :path, class: "form-control", disabled: true 13: = render partial: "shared/vue/in_tail_format", locals: { file: f.object.path, formats: @setting.known_formats, initialSelected: f.object.format || @setting.guess_format } 14: 15: %pre= file_tail(@setting.path).join("\n") 16: 17: %p 18: = f.submit t('terms.next'), class: "btn btn-lg btn-primary pull-right" app/views/fluentd/settings/in_tail/after_file_choose.html.haml:15:in `block in _app_views_fluentd_settings_in_tail_after_file_choose_html_haml___1713159989942914940_40548520'
38 lines
890 B
Ruby
38 lines
890 B
Ruby
class ApiController < ApplicationController
|
|
def tree
|
|
render json: Treeview.tree(params[:path])
|
|
end
|
|
|
|
def file_preview
|
|
file = params[:file]
|
|
unless File.exists?(file)
|
|
return render json: [], status: 404
|
|
end
|
|
unless File.file?(file) && File.readable?(file)
|
|
return render json: [], status: 403
|
|
end
|
|
render json: file_tail(file)
|
|
end
|
|
|
|
def empty_json
|
|
render json: []
|
|
end
|
|
|
|
def regexp_preview
|
|
preview = RegexpPreview.new(params[:file], params[:format], regexp: params[:regexp], time_format: params[:time_format])
|
|
matches = preview.matches
|
|
render json: {
|
|
regexp: preview.regexp.try(:source),
|
|
time_format: preview.time_format,
|
|
matches: matches.compact,
|
|
}
|
|
end
|
|
|
|
def grok_to_regexp
|
|
grok = GrokConverter.new
|
|
grok.load_patterns
|
|
render text: grok.convert_to_regexp(params[:grok_str]).source
|
|
end
|
|
end
|
|
|