From 2b20c3f07fc9659e65550585c1ca5f3adeb98593 Mon Sep 17 00:00:00 2001 From: Masahiro Nakagawa Date: Thu, 3 Dec 2015 18:09:59 +0900 Subject: [PATCH] Merge pull request #706 from okkez/show-plugin-config-ancestors Show plugin config ancestors --- lib/fluent/config/configure_proxy.rb | 4 ++-- lib/fluent/configurable.rb | 4 ++-- lib/fluent/supervisor.rb | 14 +++++++++++++- test/config/test_configure_proxy.rb | 11 +---------- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/lib/fluent/config/configure_proxy.rb b/lib/fluent/config/configure_proxy.rb index 1e9b1d744f..5083da0b4a 100644 --- a/lib/fluent/config/configure_proxy.rb +++ b/lib/fluent/config/configure_proxy.rb @@ -235,7 +235,7 @@ def config_section(name, *args, &block) end def dump(level = 0) - dumped_config = "\n" + dumped_config = "" indent = " " * level @params.each do |name, config| dumped_config << "#{indent}#{name}: #{config[1][:type]}: <#{@defaults[name].inspect}>" @@ -243,7 +243,7 @@ def dump(level = 0) dumped_config << "\n" end @sections.each do |section_name, sub_proxy| - dumped_config << "#{indent}#{section_name}#{sub_proxy.dump(level + 1)}" + dumped_config << "#{indent}#{section_name}\n#{sub_proxy.dump(level + 1)}" end dumped_config end diff --git a/lib/fluent/configurable.rb b/lib/fluent/configurable.rb index e7f3f95284..a17008ed2a 100644 --- a/lib/fluent/configurable.rb +++ b/lib/fluent/configurable.rb @@ -130,8 +130,8 @@ def merged_configure_proxy configurables.map{ |a| a.configure_proxy(a.name || a.object_id.to_s) }.reduce(:merge) end - def dump - configure_proxy_map[self.to_s].dump + def dump(level = 0) + configure_proxy_map[self.to_s].dump(level) end end end diff --git a/lib/fluent/supervisor.rb b/lib/fluent/supervisor.rb index fcc915484e..10299ba3ea 100644 --- a/lib/fluent/supervisor.rb +++ b/lib/fluent/supervisor.rb @@ -194,7 +194,19 @@ def show_plugin_config $log.info "Show config for #{@show_plugin_config}" name, type = @show_plugin_config.split(":") plugin = Plugin.__send__("new_#{name}", type) - $log.info plugin.class.dump + dumped_config = "\n" + level = 0 + plugin.class.ancestors.reverse_each do |plugin_class| + if plugin_class.respond_to?(:dump) + $log.on_debug do + dumped_config << plugin_class.name + dumped_config << "\n" + level = 1 + end + dumped_config << plugin_class.dump(level) + end + end + $log.info dumped_config exit 0 rescue => e $log.error "show config failed: #{e}" diff --git a/test/config/test_configure_proxy.rb b/test/config/test_configure_proxy.rb index 27b5236c2e..b46d85a710 100644 --- a/test/config/test_configure_proxy.rb +++ b/test/config/test_configure_proxy.rb @@ -138,13 +138,12 @@ class TestConfigureProxy < ::Test::Unit::TestCase end test 'empty proxy' do - assert_equal("\n", @proxy.dump) + assert_equal("", @proxy.dump) end test 'plain proxy w/o default value' do @proxy.config_param(:name, :string) assert_equal(< CONFIG end @@ -152,7 +151,6 @@ class TestConfigureProxy < ::Test::Unit::TestCase test 'plain proxy w/ default value' do @proxy.config_param(:name, :string, default: "name1") assert_equal(< CONFIG end @@ -161,7 +159,6 @@ class TestConfigureProxy < ::Test::Unit::TestCase @proxy.config_param(:name, :string) @proxy.config_set_default(:name, "name1") assert_equal(< CONFIG end @@ -171,7 +168,6 @@ class TestConfigureProxy < ::Test::Unit::TestCase config_param(:name, :string, default: "name1") end assert_equal(< CONFIG @@ -187,7 +183,6 @@ class TestConfigureProxy < ::Test::Unit::TestCase end end assert_equal(< name2: string: <"name2"> @@ -201,7 +196,6 @@ class TestConfigureProxy < ::Test::Unit::TestCase test 'single proxy' do @proxy.config_param(:name, :string, desc: "description for name") assert_equal(< # description for name CONFIG end @@ -210,7 +204,6 @@ class TestConfigureProxy < ::Test::Unit::TestCase @proxy.config_param(:name, :string) @proxy.config_set_desc(:name, "description for name") assert_equal(< # description for name CONFIG end @@ -225,7 +218,6 @@ class TestConfigureProxy < ::Test::Unit::TestCase end end assert_equal(< # desc1 name2: string: <"name2"> # desc2 @@ -247,7 +239,6 @@ class TestConfigureProxy < ::Test::Unit::TestCase end end assert_equal(< # desc1 name2: string: <"name2"> # desc2