mirror of
https://github.com/fluent/fluentd-ui.git
synced 2025-08-10 00:07:08 +02:00
45 lines
1.0 KiB
Ruby
45 lines
1.0 KiB
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
|
|
plugin_config = prepare_plugin_config || {}
|
|
preview = RegexpPreview.processor(params[:parse_type]).new(params[:file], params[:parse_type], plugin_config)
|
|
|
|
render json: preview.matches
|
|
rescue Fluent::ConfigError => ex
|
|
render json: { error: "#{ex.class}: #{ex.message}" }
|
|
end
|
|
|
|
private
|
|
|
|
def prepare_plugin_config
|
|
plugin_config = params[:plugin_config]
|
|
case params[:parse_type]
|
|
when "multiline"
|
|
plugin_config[:formats].lines.each.with_index do |line, index|
|
|
plugin_config["format#{index + 1}"] = line.chomp
|
|
end
|
|
plugin_config
|
|
else
|
|
plugin_config
|
|
end
|
|
end
|
|
end
|