Skip to content

Commit

Permalink
Merge pull request #2034 from fluent/dsl-fix-warning-for-reserved-par…
Browse files Browse the repository at this point in the history
…ameter

dsl: Need '@' prefix for reserved system parameters. fix #2028
  • Loading branch information
repeatedly authored Jun 26, 2018
2 parents b593e6f + 9cde4dc commit ee9c9e5
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 15 deletions.
13 changes: 8 additions & 5 deletions lib/fluent/config/dsl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
module Fluent
module Config
module DSL
RESERVED_PARAMETERS = [:type, :id, :log_level, :label] # Need '@' prefix for reserved parameters

module Parser
def self.read(path)
path = File.expand_path(path)
Expand Down Expand Up @@ -95,11 +97,12 @@ def method_missing(name, *args, &block)
proxy.element.instance_exec(&block)
@elements.push(proxy.to_config_element)
else
@attrs[name.to_s] = if value.is_a?(Array) || value.is_a?(Hash)
JSON.dump(value)
else
value.to_s
end
param_name = RESERVED_PARAMETERS.include?(name) ? "@#{name}" : name.to_s
@attrs[param_name] = if value.is_a?(Array) || value.is_a?(Hash)
JSON.dump(value)
else
value.to_s
end
end

self
Expand Down
16 changes: 8 additions & 8 deletions test/config/test_dsl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ def setup
assert_equal('source', ele4.name)
assert_predicate(ele4.arg, :empty?)
assert_equal(2, ele4.keys.size)
assert_equal('tail', ele4['type'])
assert_equal('tail', ele4['@type'])
assert_equal("/var/log/httpd/access.part4.log", ele4['path'])
end

Expand All @@ -185,11 +185,11 @@ def setup

assert_equal('filter', filter0.name)
assert_equal('bar.**', filter0.arg)
assert_equal('hoge', filter0['type'])
assert_equal('hoge', filter0['@type'])
assert_equal('moge', filter0['val1'])
assert_equal(JSON.dump(['foo', 'bar', 'baz']), filter0['val2'])
assert_equal('10', filter0['val3'])
assert_equal('hoge', filter0['id'])
assert_equal('hoge', filter0['@id'])

assert_equal(2, filter0.elements.size)
assert_equal('subsection', filter0.elements[0].name)
Expand All @@ -203,7 +203,7 @@ def setup

assert_equal('match', match0.name)
assert_equal('{foo,bar}.**', match0.arg)
assert_equal('file', match0['type'])
assert_equal('file', match0['@type'])
assert_equal('/var/log/httpd/access.myhostname.4.log', match0['path'])
end
end
Expand Down Expand Up @@ -302,7 +302,7 @@ def setup
assert_equal('source', ele4.name)
assert_predicate(ele4.arg, :empty?)
assert_equal(2, ele4.keys.size)
assert_equal('tail', ele4['type'])
assert_equal('tail', ele4['@type'])
assert_equal("/var/log/httpd/access.part4.log", ele4['path'])
end

Expand All @@ -311,11 +311,11 @@ def setup

assert_equal('filter', filter0.name)
assert_equal('bar.**', filter0.arg)
assert_equal('hoge', filter0['type'])
assert_equal('hoge', filter0['@type'])
assert_equal('moge', filter0['val1'])
assert_equal(JSON.dump(['foo', 'bar', 'baz']), filter0['val2'])
assert_equal('10', filter0['val3'])
assert_equal('hoge', filter0['id'])
assert_equal('hoge', filter0['@id'])

assert_equal(2, filter0.elements.size)
assert_equal('subsection', filter0.elements[0].name)
Expand All @@ -329,7 +329,7 @@ def setup

assert_equal('match', match0.name)
assert_equal('{foo,bar}.**', match0.arg)
assert_equal('file', match0['type'])
assert_equal('file', match0['@type'])
assert_equal('/var/log/httpd/access.myhostname.4.log', match0['path'])
end
end
Expand Down
4 changes: 2 additions & 2 deletions test/test_configdsl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@ def test_parse
e0 = root.elements[0]
assert_equal 'source', e0.name
assert_equal '', e0.arg
assert_equal 'forward', e0['type']
assert_equal 'forward', e0['@type']
assert_equal '24224', e0['port']

e1 = root.elements[1]
assert_equal 'match', e1.name
assert_equal 'test.**', e1.arg
assert_equal 'forward', e1['type']
assert_equal 'forward', e1['@type']
assert_equal '1s', e1['flush_interval']
assert_equal 2, e1.elements.size
e1s0 = e1.elements[0]
Expand Down

0 comments on commit ee9c9e5

Please sign in to comment.