Support filter_record_transformer

Signed-off-by: Kenji Okimoto <okimoto@clear-code.com>
This commit is contained in:
Kenji Okimoto 2018-09-11 12:07:58 +09:00
parent c8063f94dd
commit b7397133a8
No known key found for this signature in database
GPG Key ID: F9E3E329A5C5E4A1
4 changed files with 37 additions and 1 deletions

View File

@ -6,4 +6,9 @@ class Fluentd::Settings::FilterRecordTransformerController < ApplicationControll
def target_class
Fluentd::Setting::FilterRecordTransformer
end
def setting_params
permit_params = target_class.permit_params + [:record]
params.require(:setting).permit(*permit_params)
end
end

View File

@ -74,7 +74,16 @@ class Fluentd
section_class.new(_section_params).to_config
end.compact
end
attrs = params.to_h.reject do |key, value|
params = params.to_h
if plugin_type == "filter" && plugin_name == "record_transformer"
record_params = {}
params.delete("record").lines.each do |line|
k, v = line.split(" ", 2)
record_params[k] = v
end
elements << config_element("record", "", record_params, [])
end
attrs = params.reject do |key, value|
skip?(key.to_sym, value)
end
return attrs, elements

View File

@ -5,6 +5,8 @@ class Fluentd
register_plugin("filter", "record_transformer")
attribute(:record, :string)
def self.initial_params
{
}

View File

@ -0,0 +1,20 @@
= render "shared/setting_errors"
- # NOTE: plugin_setting_form_action_url is defined at SettingConcern
= form_with(model: setting, scope: "setting", url: plugin_setting_form_action_url(fluentd), local: true, class: "ignore-rails-error-div", builder: FluentdFormBuilder) do |f|
- setting.common_options.each do |key|
= f.field(key)
.form-group
= f.label(:record, nil, data: { toggle: "tooltip", placement: "right"}, title: "considered to be new key-value pairs")
= f.text_area(:record, class: "form-control")
.card.card-body.bg-light
%h4{"data-toggle" => "collapse", "href" => "#advanced-setting"}
= icon('fa-caret-down')
= t('terms.advanced_setting')
#advanced-setting.collapse
- setting.advanced_options.each do |key|
= f.field(key)
= f.submit t('fluentd.common.finish'), class: "btn btn-lg btn-primary pull-right"