From a11976d14a801be2e2af9d45cca5217182168f91 Mon Sep 17 00:00:00 2001 From: Kenji Okimoto Date: Tue, 19 Jun 2018 11:53:57 +0900 Subject: [PATCH 1/4] Add local option to general plugin setting form Signed-off-by: Kenji Okimoto --- app/views/shared/settings/_form.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/shared/settings/_form.html.haml b/app/views/shared/settings/_form.html.haml index 99c3dde..8ab6274 100644 --- a/app/views/shared/settings/_form.html.haml +++ b/app/views/shared/settings/_form.html.haml @@ -5,7 +5,7 @@ #plugin-setting - # NOTE: plugin_setting_form_action_url is defined at SettingConcern - = form_with(model: @setting, scope: :setting, url: plugin_setting_form_action_url(@fluentd), class: "ignore-rails-error-div", builder: FluentdFormBuilder) do |form| + = form_with(model: @setting, scope: :setting, url: plugin_setting_form_action_url(@fluentd), local: true, class: "ignore-rails-error-div", builder: FluentdFormBuilder) do |form| - @setting.common_options.each do |key| = form.field(key) From 7394c9fb28472d9aa428669ed64ad4f2f506e2ae Mon Sep 17 00:00:00 2001 From: Kenji Okimoto Date: Tue, 19 Jun 2018 11:55:16 +0900 Subject: [PATCH 2/4] Set `@type` parameter to section properly Signed-off-by: Kenji Okimoto --- app/models/concerns/fluentd/setting/plugin_config.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/fluentd/setting/plugin_config.rb b/app/models/concerns/fluentd/setting/plugin_config.rb index c2814bb..e52cfa0 100644 --- a/app/models/concerns/fluentd/setting/plugin_config.rb +++ b/app/models/concerns/fluentd/setting/plugin_config.rb @@ -45,7 +45,13 @@ class Fluentd elements = [] sections.to_h.each do |key, section_params| if %w(parse format buffer storage).include?(key) - section_params["0"] = { "@type" => self.attributes["#{key}_type"] }.merge(section_params["0"]) + if section_params && section_params.key?("0") + section_params["0"] = { "@type" => self.attributes["#{key}_type"] }.merge(section_params["0"]) + else + section_params = { + "0" => { "@type" => self.attributes["#{key}_type"] } + } + end end next if section_params.blank? section_params.each do |index, _section_params| From f56324062325bc52cc466d4718c98f69cdcfcf10 Mon Sep 17 00:00:00 2001 From: Kenji Okimoto Date: Tue, 19 Jun 2018 11:55:42 +0900 Subject: [PATCH 3/4] Define have_{buffer,storage,parse,format}_section? as singleton methods Signed-off-by: Kenji Okimoto --- .../fluentd/setting/plugin_parameter.rb | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/app/models/concerns/fluentd/setting/plugin_parameter.rb b/app/models/concerns/fluentd/setting/plugin_parameter.rb index 62367fd..5166cee 100644 --- a/app/models/concerns/fluentd/setting/plugin_parameter.rb +++ b/app/models/concerns/fluentd/setting/plugin_parameter.rb @@ -38,19 +38,19 @@ class Fluentd end def have_buffer_section? - self.class._sections.key?(:buffer) + self.class.have_buffer_section? end def have_storage_section? - self.class._sections.key?(:storage) + self.class.have_storage_section? end def have_parse_section? - self.class._sections.key?(:parse) + self.class.have_parse_section? end def have_format_section? - self.class._sections.key?(:format) + self.class.have_format_section? end def create_buffer @@ -99,6 +99,22 @@ class Fluentd self._list[name] end + def have_buffer_section? + self._sections.key?(:buffer) + end + + def have_storage_section? + self._sections.key?(:storage) + end + + def have_parse_section? + self._sections.key?(:parse) + end + + def have_format_section? + self._sections.key?(:format) + end + def permit_params self.new # init keys = self._types.keys From 08f277f9136b8e0bbd2b4b587ac853bc7242c6b2 Mon Sep 17 00:00:00 2001 From: Kenji Okimoto Date: Tue, 19 Jun 2018 11:56:29 +0900 Subject: [PATCH 4/4] Permit parameter to determine owned plugin type Signed-off-by: Kenji Okimoto --- app/models/concerns/fluentd/setting/plugin_parameter.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/models/concerns/fluentd/setting/plugin_parameter.rb b/app/models/concerns/fluentd/setting/plugin_parameter.rb index 5166cee..8e2a354 100644 --- a/app/models/concerns/fluentd/setting/plugin_parameter.rb +++ b/app/models/concerns/fluentd/setting/plugin_parameter.rb @@ -121,6 +121,12 @@ class Fluentd self._sections.each do |key, section| keys << _permit_section(key, section) end + + keys << :buffer_type if have_buffer_section? + keys << :storage_type if have_storage_section? + keys << :parse_type if have_parse_section? + keys << :format_type if have_format_section? + keys end