From b7397133a8214def0f9cd6ff57dfe15d1a3b54b2 Mon Sep 17 00:00:00 2001 From: Kenji Okimoto Date: Tue, 11 Sep 2018 12:07:58 +0900 Subject: [PATCH] Support filter_record_transformer Signed-off-by: Kenji Okimoto --- .../filter_record_transformer_controller.rb | 5 +++++ .../concerns/fluentd/setting/plugin_config.rb | 11 +++++++++- .../setting/filter_record_transformer.rb | 2 ++ .../filter_record_transformer/_form.html.haml | 20 +++++++++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 app/views/fluentd/settings/filter_record_transformer/_form.html.haml diff --git a/app/controllers/fluentd/settings/filter_record_transformer_controller.rb b/app/controllers/fluentd/settings/filter_record_transformer_controller.rb index fdd605f..891f7cf 100644 --- a/app/controllers/fluentd/settings/filter_record_transformer_controller.rb +++ b/app/controllers/fluentd/settings/filter_record_transformer_controller.rb @@ -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 diff --git a/app/models/concerns/fluentd/setting/plugin_config.rb b/app/models/concerns/fluentd/setting/plugin_config.rb index 57785ed..042629d 100644 --- a/app/models/concerns/fluentd/setting/plugin_config.rb +++ b/app/models/concerns/fluentd/setting/plugin_config.rb @@ -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 diff --git a/app/models/fluentd/setting/filter_record_transformer.rb b/app/models/fluentd/setting/filter_record_transformer.rb index 36f3ee9..df29d65 100644 --- a/app/models/fluentd/setting/filter_record_transformer.rb +++ b/app/models/fluentd/setting/filter_record_transformer.rb @@ -5,6 +5,8 @@ class Fluentd register_plugin("filter", "record_transformer") + attribute(:record, :string) + def self.initial_params { } diff --git a/app/views/fluentd/settings/filter_record_transformer/_form.html.haml b/app/views/fluentd/settings/filter_record_transformer/_form.html.haml new file mode 100644 index 0000000..ed7748f --- /dev/null +++ b/app/views/fluentd/settings/filter_record_transformer/_form.html.haml @@ -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"