fluentd 1.17.0 → 1.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -0
  3. data/README.md +1 -0
  4. data/SECURITY.md +2 -2
  5. data/fluent.conf +14 -14
  6. data/lib/fluent/command/cap_ctl.rb +4 -4
  7. data/lib/fluent/compat/call_super_mixin.rb +3 -3
  8. data/lib/fluent/compat/propagate_default.rb +4 -4
  9. data/lib/fluent/config/yaml_parser/parser.rb +4 -0
  10. data/lib/fluent/log/console_adapter.rb +4 -2
  11. data/lib/fluent/plugin/in_exec.rb +14 -2
  12. data/lib/fluent/plugin/in_http.rb +1 -1
  13. data/lib/fluent/plugin/in_sample.rb +13 -7
  14. data/lib/fluent/plugin/in_tail.rb +65 -23
  15. data/lib/fluent/plugin/out_copy.rb +1 -1
  16. data/lib/fluent/plugin/out_file.rb +8 -0
  17. data/lib/fluent/plugin/out_http.rb +12 -0
  18. data/lib/fluent/plugin/parser_json.rb +4 -12
  19. data/lib/fluent/plugin_helper/http_server/server.rb +1 -1
  20. data/lib/fluent/version.rb +1 -1
  21. data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
  22. metadata +25 -472
  23. data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +0 -50
  24. data/.github/DISCUSSION_TEMPLATE/q-a.yml +0 -47
  25. data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
  26. data/.github/ISSUE_TEMPLATE/config.yml +0 -5
  27. data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
  28. data/.github/ISSUE_TEMPLATE.md +0 -17
  29. data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  30. data/.github/workflows/stale-actions.yml +0 -24
  31. data/.github/workflows/test-ruby-head.yml +0 -31
  32. data/.github/workflows/test.yml +0 -32
  33. data/.gitignore +0 -30
  34. data/Gemfile +0 -9
  35. data/fluentd.gemspec +0 -62
  36. data/test/command/test_binlog_reader.rb +0 -362
  37. data/test/command/test_ca_generate.rb +0 -70
  38. data/test/command/test_cap_ctl.rb +0 -100
  39. data/test/command/test_cat.rb +0 -128
  40. data/test/command/test_ctl.rb +0 -56
  41. data/test/command/test_fluentd.rb +0 -1291
  42. data/test/command/test_plugin_config_formatter.rb +0 -397
  43. data/test/command/test_plugin_generator.rb +0 -109
  44. data/test/compat/test_calls_super.rb +0 -166
  45. data/test/compat/test_parser.rb +0 -92
  46. data/test/config/assertions.rb +0 -42
  47. data/test/config/test_config_parser.rb +0 -551
  48. data/test/config/test_configurable.rb +0 -1784
  49. data/test/config/test_configure_proxy.rb +0 -604
  50. data/test/config/test_dsl.rb +0 -415
  51. data/test/config/test_element.rb +0 -518
  52. data/test/config/test_literal_parser.rb +0 -309
  53. data/test/config/test_plugin_configuration.rb +0 -56
  54. data/test/config/test_section.rb +0 -191
  55. data/test/config/test_system_config.rb +0 -195
  56. data/test/config/test_types.rb +0 -408
  57. data/test/counter/test_client.rb +0 -563
  58. data/test/counter/test_error.rb +0 -44
  59. data/test/counter/test_mutex_hash.rb +0 -179
  60. data/test/counter/test_server.rb +0 -589
  61. data/test/counter/test_store.rb +0 -258
  62. data/test/counter/test_validator.rb +0 -137
  63. data/test/helper.rb +0 -155
  64. data/test/helpers/fuzzy_assert.rb +0 -89
  65. data/test/helpers/process_extenstion.rb +0 -33
  66. data/test/log/test_console_adapter.rb +0 -117
  67. data/test/plugin/data/2010/01/20100102-030405.log +0 -0
  68. data/test/plugin/data/2010/01/20100102-030406.log +0 -0
  69. data/test/plugin/data/2010/01/20100102.log +0 -0
  70. data/test/plugin/data/log/bar +0 -0
  71. data/test/plugin/data/log/foo/bar.log +0 -0
  72. data/test/plugin/data/log/foo/bar2 +0 -0
  73. data/test/plugin/data/log/test.log +0 -0
  74. data/test/plugin/data/log_numeric/01.log +0 -0
  75. data/test/plugin/data/log_numeric/02.log +0 -0
  76. data/test/plugin/data/log_numeric/12.log +0 -0
  77. data/test/plugin/data/log_numeric/14.log +0 -0
  78. data/test/plugin/data/sd_file/config +0 -11
  79. data/test/plugin/data/sd_file/config.json +0 -17
  80. data/test/plugin/data/sd_file/config.yaml +0 -11
  81. data/test/plugin/data/sd_file/config.yml +0 -11
  82. data/test/plugin/data/sd_file/invalid_config.yml +0 -7
  83. data/test/plugin/in_tail/test_fifo.rb +0 -121
  84. data/test/plugin/in_tail/test_io_handler.rb +0 -150
  85. data/test/plugin/in_tail/test_position_file.rb +0 -346
  86. data/test/plugin/out_forward/test_ack_handler.rb +0 -140
  87. data/test/plugin/out_forward/test_connection_manager.rb +0 -145
  88. data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
  89. data/test/plugin/out_forward/test_load_balancer.rb +0 -106
  90. data/test/plugin/out_forward/test_socket_cache.rb +0 -174
  91. data/test/plugin/test_bare_output.rb +0 -131
  92. data/test/plugin/test_base.rb +0 -247
  93. data/test/plugin/test_buf_file.rb +0 -1314
  94. data/test/plugin/test_buf_file_single.rb +0 -898
  95. data/test/plugin/test_buf_memory.rb +0 -42
  96. data/test/plugin/test_buffer.rb +0 -1493
  97. data/test/plugin/test_buffer_chunk.rb +0 -209
  98. data/test/plugin/test_buffer_file_chunk.rb +0 -871
  99. data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
  100. data/test/plugin/test_buffer_memory_chunk.rb +0 -339
  101. data/test/plugin/test_compressable.rb +0 -87
  102. data/test/plugin/test_file_util.rb +0 -96
  103. data/test/plugin/test_filter.rb +0 -368
  104. data/test/plugin/test_filter_grep.rb +0 -697
  105. data/test/plugin/test_filter_parser.rb +0 -731
  106. data/test/plugin/test_filter_record_transformer.rb +0 -577
  107. data/test/plugin/test_filter_stdout.rb +0 -207
  108. data/test/plugin/test_formatter_csv.rb +0 -136
  109. data/test/plugin/test_formatter_hash.rb +0 -38
  110. data/test/plugin/test_formatter_json.rb +0 -61
  111. data/test/plugin/test_formatter_ltsv.rb +0 -70
  112. data/test/plugin/test_formatter_msgpack.rb +0 -28
  113. data/test/plugin/test_formatter_out_file.rb +0 -116
  114. data/test/plugin/test_formatter_single_value.rb +0 -44
  115. data/test/plugin/test_formatter_tsv.rb +0 -76
  116. data/test/plugin/test_in_debug_agent.rb +0 -49
  117. data/test/plugin/test_in_exec.rb +0 -261
  118. data/test/plugin/test_in_forward.rb +0 -1178
  119. data/test/plugin/test_in_gc_stat.rb +0 -62
  120. data/test/plugin/test_in_http.rb +0 -1124
  121. data/test/plugin/test_in_monitor_agent.rb +0 -922
  122. data/test/plugin/test_in_object_space.rb +0 -66
  123. data/test/plugin/test_in_sample.rb +0 -190
  124. data/test/plugin/test_in_syslog.rb +0 -505
  125. data/test/plugin/test_in_tail.rb +0 -3429
  126. data/test/plugin/test_in_tcp.rb +0 -328
  127. data/test/plugin/test_in_udp.rb +0 -296
  128. data/test/plugin/test_in_unix.rb +0 -181
  129. data/test/plugin/test_input.rb +0 -137
  130. data/test/plugin/test_metadata.rb +0 -89
  131. data/test/plugin/test_metrics.rb +0 -294
  132. data/test/plugin/test_metrics_local.rb +0 -96
  133. data/test/plugin/test_multi_output.rb +0 -204
  134. data/test/plugin/test_out_copy.rb +0 -308
  135. data/test/plugin/test_out_exec.rb +0 -312
  136. data/test/plugin/test_out_exec_filter.rb +0 -606
  137. data/test/plugin/test_out_file.rb +0 -1038
  138. data/test/plugin/test_out_forward.rb +0 -1349
  139. data/test/plugin/test_out_http.rb +0 -557
  140. data/test/plugin/test_out_null.rb +0 -105
  141. data/test/plugin/test_out_relabel.rb +0 -28
  142. data/test/plugin/test_out_roundrobin.rb +0 -146
  143. data/test/plugin/test_out_secondary_file.rb +0 -458
  144. data/test/plugin/test_out_stdout.rb +0 -205
  145. data/test/plugin/test_out_stream.rb +0 -103
  146. data/test/plugin/test_output.rb +0 -1334
  147. data/test/plugin/test_output_as_buffered.rb +0 -2024
  148. data/test/plugin/test_output_as_buffered_backup.rb +0 -363
  149. data/test/plugin/test_output_as_buffered_compress.rb +0 -179
  150. data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
  151. data/test/plugin/test_output_as_buffered_retries.rb +0 -966
  152. data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
  153. data/test/plugin/test_output_as_standard.rb +0 -374
  154. data/test/plugin/test_owned_by.rb +0 -34
  155. data/test/plugin/test_parser.rb +0 -399
  156. data/test/plugin/test_parser_apache.rb +0 -42
  157. data/test/plugin/test_parser_apache2.rb +0 -47
  158. data/test/plugin/test_parser_apache_error.rb +0 -45
  159. data/test/plugin/test_parser_csv.rb +0 -200
  160. data/test/plugin/test_parser_json.rb +0 -244
  161. data/test/plugin/test_parser_labeled_tsv.rb +0 -160
  162. data/test/plugin/test_parser_msgpack.rb +0 -127
  163. data/test/plugin/test_parser_multiline.rb +0 -111
  164. data/test/plugin/test_parser_nginx.rb +0 -88
  165. data/test/plugin/test_parser_none.rb +0 -52
  166. data/test/plugin/test_parser_regexp.rb +0 -284
  167. data/test/plugin/test_parser_syslog.rb +0 -650
  168. data/test/plugin/test_parser_tsv.rb +0 -122
  169. data/test/plugin/test_sd_file.rb +0 -228
  170. data/test/plugin/test_sd_srv.rb +0 -230
  171. data/test/plugin/test_storage.rb +0 -166
  172. data/test/plugin/test_storage_local.rb +0 -335
  173. data/test/plugin/test_string_util.rb +0 -26
  174. data/test/plugin_helper/data/cert/cert-key.pem +0 -27
  175. data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
  176. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
  177. data/test/plugin_helper/data/cert/cert.pem +0 -19
  178. data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
  179. data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
  180. data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
  181. data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
  182. data/test/plugin_helper/data/cert/empty.pem +0 -0
  183. data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
  184. data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
  185. data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
  186. data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
  187. data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
  188. data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
  189. data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
  190. data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
  191. data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
  192. data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
  193. data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
  194. data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
  195. data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
  196. data/test/plugin_helper/http_server/test_app.rb +0 -65
  197. data/test/plugin_helper/http_server/test_route.rb +0 -32
  198. data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
  199. data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
  200. data/test/plugin_helper/test_cert_option.rb +0 -25
  201. data/test/plugin_helper/test_child_process.rb +0 -862
  202. data/test/plugin_helper/test_compat_parameters.rb +0 -358
  203. data/test/plugin_helper/test_event_emitter.rb +0 -80
  204. data/test/plugin_helper/test_event_loop.rb +0 -52
  205. data/test/plugin_helper/test_extract.rb +0 -194
  206. data/test/plugin_helper/test_formatter.rb +0 -255
  207. data/test/plugin_helper/test_http_server_helper.rb +0 -372
  208. data/test/plugin_helper/test_inject.rb +0 -561
  209. data/test/plugin_helper/test_metrics.rb +0 -137
  210. data/test/plugin_helper/test_parser.rb +0 -264
  211. data/test/plugin_helper/test_record_accessor.rb +0 -238
  212. data/test/plugin_helper/test_retry_state.rb +0 -1006
  213. data/test/plugin_helper/test_server.rb +0 -1895
  214. data/test/plugin_helper/test_service_discovery.rb +0 -165
  215. data/test/plugin_helper/test_socket.rb +0 -146
  216. data/test/plugin_helper/test_storage.rb +0 -542
  217. data/test/plugin_helper/test_thread.rb +0 -164
  218. data/test/plugin_helper/test_timer.rb +0 -130
  219. data/test/scripts/exec_script.rb +0 -32
  220. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
  221. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
  222. data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
  223. data/test/scripts/fluent/plugin/out_test.rb +0 -81
  224. data/test/scripts/fluent/plugin/out_test2.rb +0 -80
  225. data/test/scripts/fluent/plugin/parser_known.rb +0 -4
  226. data/test/test_capability.rb +0 -74
  227. data/test/test_clock.rb +0 -164
  228. data/test/test_config.rb +0 -369
  229. data/test/test_configdsl.rb +0 -148
  230. data/test/test_daemonizer.rb +0 -91
  231. data/test/test_engine.rb +0 -203
  232. data/test/test_event.rb +0 -531
  233. data/test/test_event_router.rb +0 -348
  234. data/test/test_event_time.rb +0 -199
  235. data/test/test_file_wrapper.rb +0 -53
  236. data/test/test_filter.rb +0 -121
  237. data/test/test_fluent_log_event_router.rb +0 -99
  238. data/test/test_formatter.rb +0 -369
  239. data/test/test_input.rb +0 -31
  240. data/test/test_log.rb +0 -1076
  241. data/test/test_match.rb +0 -148
  242. data/test/test_mixin.rb +0 -351
  243. data/test/test_msgpack_factory.rb +0 -50
  244. data/test/test_oj_options.rb +0 -55
  245. data/test/test_output.rb +0 -278
  246. data/test/test_plugin.rb +0 -251
  247. data/test/test_plugin_classes.rb +0 -370
  248. data/test/test_plugin_helper.rb +0 -81
  249. data/test/test_plugin_id.rb +0 -119
  250. data/test/test_process.rb +0 -14
  251. data/test/test_root_agent.rb +0 -951
  252. data/test/test_static_config_analysis.rb +0 -177
  253. data/test/test_supervisor.rb +0 -821
  254. data/test/test_test_drivers.rb +0 -136
  255. data/test/test_time_formatter.rb +0 -301
  256. data/test/test_time_parser.rb +0 -362
  257. data/test/test_tls.rb +0 -65
  258. data/test/test_unique_id.rb +0 -47
  259. data/test/test_variable_store.rb +0 -65
@@ -1,518 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/config/element'
3
- require 'fluent/config/configure_proxy'
4
- require 'fluent/configurable'
5
- require 'pp'
6
-
7
- class TestConfigElement < ::Test::Unit::TestCase
8
- def element(name = 'ROOT', arg = '', attrs = {}, elements = [], unused = nil)
9
- Fluent::Config::Element.new(name, arg, attrs, elements, unused)
10
- end
11
-
12
- sub_test_case '#elements=' do
13
- test 'elements can be set by others' do
14
- e = element()
15
- assert_equal [], e.elements
16
-
17
- e1 = element('e1')
18
- e2 = element('e2')
19
- e.elements = [e1, e2]
20
- assert_equal [e1, e2], e.elements
21
- end
22
- end
23
-
24
- sub_test_case '#elements' do
25
- setup do
26
- @c1 = element('source')
27
- @c2 = element('source', 'yay')
28
- @c3 = element('match', 'test.**')
29
- @c4 = element('label', '@mytest', {}, [ element('filter', '**'), element('match', '**') ])
30
- children = [@c1, @c2, @c3, @c4]
31
- @e = Fluent::Config::Element.new('ROOT', '', {}, children)
32
- end
33
-
34
- test 'returns all elements without arguments' do
35
- assert_equal [@c1, @c2, @c3, @c4], @e.elements
36
- end
37
-
38
- test 'returns elements with specified names' do
39
- assert_equal [@c1, @c2, @c3], @e.elements('source', 'match')
40
- assert_equal [@c3, @c4], @e.elements('match', 'label')
41
- end
42
-
43
- test 'returns elements with specified name, and arg if specified' do
44
- assert_equal [@c1, @c2], @e.elements(name: 'source')
45
- assert_equal [@c2], @e.elements(name: 'source', arg: 'yay')
46
- end
47
-
48
- test 'keyword argument name/arg and names are exclusive' do
49
- assert_raise ArgumentError do
50
- @e.elements('source', name: 'match')
51
- end
52
- assert_raise ArgumentError do
53
- @e.elements('source', 'match', name: 'label', arg: '@mytest')
54
- end
55
- end
56
-
57
- test 'specifying only arg without name is invalid' do
58
- assert_raise ArgumentError do
59
- @e.elements(arg: '@mytest')
60
- end
61
- end
62
- end
63
-
64
- sub_test_case '#initialize' do
65
- test 'creates object with blank attrs and elements' do
66
- e = element('ROOT', '', {}, [])
67
- assert_equal([], e.elements)
68
- end
69
-
70
- test 'creates object which contains attrs and elements' do
71
- e = element('ROOT', '', {"k1" => "v1", "k2" => "v2"}, [
72
- element('test', 'mydata', {'k3' => 'v3'}, [])
73
- ])
74
- assert_equal('ROOT', e.name)
75
- assert_equal('', e.arg)
76
- assert_equal('v1', e["k1"])
77
- assert_equal('v2', e["k2"])
78
- assert_equal(1, e.elements.size)
79
- e.each_element('test') do |el|
80
- assert_equal('test', el.name)
81
- assert_equal('mydata', el.arg)
82
- assert_equal('v3', el["k3"])
83
- end
84
- end
85
-
86
- test 'creates object which contains attrs, elements and unused' do
87
- e = element('ROOT', '', {"k1" => "v1", "k2" => "v2", "k4" => "v4"}, [
88
- element('test', 'mydata', {'k3' => 'v3'}, [])
89
- ], "k3")
90
- assert_equal("k3", e.unused)
91
- assert_equal('ROOT', e.name)
92
- assert_equal('', e.arg)
93
- assert_equal('v1', e["k1"])
94
- assert_equal('v2', e["k2"])
95
- assert_equal('v4', e["k4"])
96
- assert_equal(1, e.elements.size)
97
- e.each_element('test') do |el|
98
- assert_equal('test', el.name)
99
- assert_equal('mydata', el.arg)
100
- assert_equal('v3', el["k3"])
101
- end
102
- assert_equal("k3", e.unused)
103
- end
104
- end
105
-
106
- sub_test_case "@unused" do
107
- sub_test_case '#[] has side effect for @unused' do
108
- test 'without unused argument' do
109
- e = element('ROOT', '', {"k1" => "v1", "k2" => "v2", "k4" => "v4"}, [
110
- element('test', 'mydata', {'k3' => 'v3'}, [])
111
- ])
112
- assert_equal(["k1", "k2", "k4"], e.unused)
113
- assert_equal('v1', e["k1"])
114
- assert_equal(["k2", "k4"], e.unused)
115
- assert_equal('v2', e["k2"])
116
- assert_equal(["k4"], e.unused)
117
- assert_equal('v4', e["k4"])
118
- assert_equal([], e.unused)
119
- end
120
-
121
- test 'with unused argument' do
122
- e = element('ROOT', '', {"k1" => "v1", "k2" => "v2", "k4" => "v4"}, [
123
- element('test', 'mydata', {'k3' => 'v3'}, [])
124
- ], ["k4"])
125
- assert_equal(["k4"], e.unused)
126
- assert_equal('v1', e["k1"])
127
- assert_equal(["k4"], e.unused)
128
- assert_equal('v2', e["k2"])
129
- assert_equal(["k4"], e.unused)
130
- assert_equal('v4', e["k4"])
131
- # only consume for "k4"
132
- assert_equal([], e.unused)
133
- end
134
- end
135
- end
136
-
137
- sub_test_case '#add_element' do
138
- test 'elements can be set by #add_element' do
139
- e = element()
140
- assert_equal [], e.elements
141
-
142
- e.add_element('e1', '')
143
- e.add_element('e2', '')
144
- assert_equal [element('e1', ''), element('e2', '')], e.elements
145
- end
146
- end
147
-
148
- sub_test_case '#==' do
149
- sub_test_case 'compare with two element objects' do
150
- test 'equal' do
151
- e1 = element('ROOT', '', {}, [])
152
- e2 = element('ROOT', '', {}, [])
153
- assert_true(e1 == e2)
154
- end
155
-
156
- data("differ args" => [Fluent::Config::Element.new('ROOT', '', {}, []),
157
- Fluent::Config::Element.new('ROOT', 'mydata', {}, [])],
158
- "differ keys" => [Fluent::Config::Element.new('ROOT', 'mydata', {}, []),
159
- Fluent::Config::Element.new('ROOT', 'mydata', {"k1" => "v1"}, [])],
160
- "differ elements" =>
161
- [Fluent::Config::Element.new('ROOT', 'mydata', {"k1" => "v1"}, []),
162
- Fluent::Config::Element.new('ROOT', 'mydata', {"k1" => "v1"}, [
163
- Fluent::Config::Element.new('test', 'mydata', {'k3' => 'v3'}, [])
164
- ])])
165
- test 'not equal' do |data|
166
- e1, e2 = data
167
- assert_false(e1 == e2)
168
- end
169
- end
170
- end
171
-
172
- sub_test_case '#+' do
173
- test 'can merge 2 elements: object side is primary' do
174
- e1 = element('ROOT', 'mydata', {"k1" => "v1"}, [])
175
- e2 = element('ROOT', 'mydata2', {"k1" => "ignored", "k2" => "v2"}, [
176
- element('test', 'ext', {'k3' => 'v3'}, [])
177
- ])
178
- e = e1 + e2
179
-
180
- assert_equal('ROOT', e.name)
181
- assert_equal('mydata', e.arg)
182
- assert_equal('v1', e['k1'])
183
- assert_equal('v2', e['k2'])
184
- assert_equal(1, e.elements.size)
185
- e.each_element('test') do |el|
186
- assert_equal('test', el.name)
187
- assert_equal('ext', el.arg)
188
- assert_equal('v3', el["k3"])
189
- end
190
- end
191
- end
192
-
193
- sub_test_case '#check_not_fetched' do
194
- sub_test_case 'without unused' do
195
- test 'can get attribute keys and original Config::Element' do
196
- e = element('ROOT', 'mydata', {"k1" => "v1"}, [])
197
- e.check_not_fetched { |key, elem|
198
- assert_equal("k1", key)
199
- assert_equal(e, elem)
200
- }
201
- end
202
- end
203
-
204
- sub_test_case 'with unused' do
205
- test 'can get unused marked attribute keys and original Config::Element' do
206
- e = element('ROOT', 'mydata', {"k1" => "v1", "k2" => "unused", "k3" => "k3"})
207
- e.unused = "k2"
208
- e.check_not_fetched { |key, elem|
209
- assert_equal("k2", key)
210
- assert_equal(e, elem)
211
- }
212
- end
213
- end
214
- end
215
-
216
- sub_test_case '#has_key?' do
217
- test 'can get boolean with key name' do
218
- e = element('ROOT', 'mydata', {"k1" => "v1"}, [])
219
- assert_true(e.has_key?("k1"))
220
- assert_false(e.has_key?("noexistent"))
221
- end
222
- end
223
-
224
-
225
- sub_test_case '#to_s' do
226
- data("without v1_config" => [false, <<-CONF
227
- <ROOT>
228
- k1 v1
229
- k2 "stringVal"
230
- <test ext>
231
- k2 v2
232
- </test>
233
- </ROOT>
234
- CONF
235
- ],
236
- "with v1_config" => [true, <<-CONF
237
- <ROOT>
238
- k1 v1
239
- k2 "stringVal"
240
- <test ext>
241
- k2 v2
242
- </test>
243
- </ROOT>
244
- CONF
245
- ],
246
- )
247
- test 'dump config element with #to_s' do |data|
248
- v1_config, expected = data
249
- e = element('ROOT', '', {'k1' => 'v1', "k2" =>"\"stringVal\""}, [
250
- element('test', 'ext', {'k2' => 'v2'}, [])
251
- ])
252
- e.v1_config = v1_config
253
- dump = expected
254
- assert_not_equal(e.inspect, e.to_s)
255
- assert_equal(dump, e.to_s)
256
- end
257
-
258
- test 'dump nil and default for v1' do
259
- expected = <<-CONF
260
- <ROOT>
261
- str1
262
- str2 defstring
263
- </ROOT>
264
- CONF
265
- e = element('ROOT', '', {'str1' => nil, "str2" => :default}, [])
266
- type_lookup = ->(type){ Fluent::Configurable.lookup_type(type) }
267
- p = Fluent::Config::ConfigureProxy.new("test", type_lookup: type_lookup)
268
- p.config_param :str1, :string
269
- p.config_param :str2, :string, default: "defstring"
270
- e.corresponding_proxies << p
271
- e.v1_config = true
272
- assert_not_equal(e.inspect, e.to_s)
273
- assert_equal(expected, e.to_s)
274
- end
275
- end
276
-
277
- sub_test_case '#inspect' do
278
- test 'dump config element with #inspect' do
279
- e = element('ROOT', '', {'k1' => 'v1'}, [
280
- element('test', 'ext', {'k2' => 'v2'}, [])
281
- ])
282
- dump = <<-CONF
283
- name:ROOT, arg:, {\"k1\"=>\"v1\"}, [name:test, arg:ext, {\"k2\"=>\"v2\"}, []]
284
- CONF
285
- assert_not_equal(e.to_s, e.inspect)
286
- assert_equal(dump.chomp, e.inspect)
287
- end
288
- end
289
-
290
- sub_test_case 'for sections which has secret parameter' do
291
- setup do
292
- @type_lookup = ->(type){ Fluent::Configurable.lookup_type(type) }
293
- p1 = Fluent::Config::ConfigureProxy.new(:match, type_lookup: @type_lookup)
294
- p1.config_param :str1, :string
295
- p1.config_param :str2, :string, secret: true
296
- p1.config_param :enum1, :enum, list: [:a, :b, :c]
297
- p1.config_param :enum2, :enum, list: [:a, :b, :c], secret: true
298
- p1.config_param :bool1, :bool
299
- p1.config_param :bool2, :bool, secret: true
300
- p1.config_param :int1, :integer
301
- p1.config_param :int2, :integer, secret: true
302
- p1.config_param :float1, :float
303
- p1.config_param :float2, :float, secret: true
304
- p2 = Fluent::Config::ConfigureProxy.new(:match, type_lookup: @type_lookup)
305
- p2.config_param :size1, :size
306
- p2.config_param :size2, :size, secret: true
307
- p2.config_param :time1, :time
308
- p2.config_param :time2, :time, secret: true
309
- p2.config_param :array1, :array
310
- p2.config_param :array2, :array, secret: true
311
- p2.config_param :hash1, :hash
312
- p2.config_param :hash2, :hash, secret: true
313
- p1.config_section :mysection do
314
- config_param :str1, :string
315
- config_param :str2, :string, secret: true
316
- config_param :enum1, :enum, list: [:a, :b, :c]
317
- config_param :enum2, :enum, list: [:a, :b, :c], secret: true
318
- config_param :bool1, :bool
319
- config_param :bool2, :bool, secret: true
320
- config_param :int1, :integer
321
- config_param :int2, :integer, secret: true
322
- config_param :float1, :float
323
- config_param :float2, :float, secret: true
324
- config_param :size1, :size
325
- config_param :size2, :size, secret: true
326
- config_param :time1, :time
327
- config_param :time2, :time, secret: true
328
- config_param :array1, :array
329
- config_param :array2, :array, secret: true
330
- config_param :hash1, :hash
331
- config_param :hash2, :hash, secret: true
332
- end
333
- params = {
334
- 'str1' => 'aaa', 'str2' => 'bbb', 'enum1' => 'a', 'enum2' => 'b', 'bool1' => 'true', 'bool2' => 'yes',
335
- 'int1' => '1', 'int2' => '2', 'float1' => '1.0', 'float2' => '0.5', 'size1' => '1k', 'size2' => '1m',
336
- 'time1' => '5m', 'time2' => '3h', 'array1' => 'a,b,c', 'array2' => 'd,e,f',
337
- 'hash1' => 'a:1,b:2', 'hash2' => 'a:2,b:4',
338
- 'unknown1' => 'yay', 'unknown2' => 'boo',
339
- }
340
- e2 = Fluent::Config::Element.new('mysection', '', params.dup, [])
341
- e2.corresponding_proxies << p1.sections.values.first
342
- @e = Fluent::Config::Element.new('match', '**', params, [e2])
343
- @e.corresponding_proxies << p1
344
- @e.corresponding_proxies << p2
345
- end
346
-
347
- sub_test_case '#to_masked_element' do
348
- test 'returns a new element object which has masked values for secret parameters and elements' do
349
- e = @e.to_masked_element
350
- assert_equal 'aaa', e['str1']
351
- assert_equal 'xxxxxx', e['str2']
352
- assert_equal 'a', e['enum1']
353
- assert_equal 'xxxxxx', e['enum2']
354
- assert_equal 'true', e['bool1']
355
- assert_equal 'xxxxxx', e['bool2']
356
- assert_equal '1', e['int1']
357
- assert_equal 'xxxxxx', e['int2']
358
- assert_equal '1.0', e['float1']
359
- assert_equal 'xxxxxx', e['float2']
360
- assert_equal '1k', e['size1']
361
- assert_equal 'xxxxxx', e['size2']
362
- assert_equal '5m', e['time1']
363
- assert_equal 'xxxxxx', e['time2']
364
- assert_equal 'a,b,c', e['array1']
365
- assert_equal 'xxxxxx', e['array2']
366
- assert_equal 'a:1,b:2', e['hash1']
367
- assert_equal 'xxxxxx', e['hash2']
368
- assert_equal 'yay', e['unknown1']
369
- assert_equal 'boo', e['unknown2']
370
- e2 = e.elements.first
371
- assert_equal 'aaa', e2['str1']
372
- assert_equal 'xxxxxx', e2['str2']
373
- assert_equal 'a', e2['enum1']
374
- assert_equal 'xxxxxx', e2['enum2']
375
- assert_equal 'true', e2['bool1']
376
- assert_equal 'xxxxxx', e2['bool2']
377
- assert_equal '1', e2['int1']
378
- assert_equal 'xxxxxx', e2['int2']
379
- assert_equal '1.0', e2['float1']
380
- assert_equal 'xxxxxx', e2['float2']
381
- assert_equal '1k', e2['size1']
382
- assert_equal 'xxxxxx', e2['size2']
383
- assert_equal '5m', e2['time1']
384
- assert_equal 'xxxxxx', e2['time2']
385
- assert_equal 'a,b,c', e2['array1']
386
- assert_equal 'xxxxxx', e2['array2']
387
- assert_equal 'a:1,b:2', e2['hash1']
388
- assert_equal 'xxxxxx', e2['hash2']
389
- assert_equal 'yay', e2['unknown1']
390
- assert_equal 'boo', e2['unknown2']
391
- end
392
- end
393
-
394
- sub_test_case '#secret_param?' do
395
- test 'returns boolean which shows values of given key will be masked' do
396
- assert !@e.secret_param?('str1')
397
- assert @e.secret_param?('str2')
398
- assert !@e.elements.first.secret_param?('str1')
399
- assert @e.elements.first.secret_param?('str2')
400
- end
401
- end
402
-
403
- sub_test_case '#param_type' do
404
- test 'returns parameter type which are registered in corresponding proxy' do
405
- assert_equal :string, @e.param_type('str1')
406
- assert_equal :string, @e.param_type('str2')
407
- assert_equal :enum, @e.param_type('enum1')
408
- assert_equal :enum, @e.param_type('enum2')
409
- assert_nil @e.param_type('unknown1')
410
- assert_nil @e.param_type('unknown2')
411
- end
412
- end
413
-
414
- # sub_test_case '#dump_value'
415
- sub_test_case '#dump_value' do
416
- test 'dumps parameter_name and values with leading indentation' do
417
- assert_equal "str1 aaa\n", @e.dump_value("str1", @e["str1"], "")
418
- assert_equal "str2 xxxxxx\n", @e.dump_value("str2", @e["str2"], "")
419
- end
420
- end
421
- end
422
-
423
- sub_test_case '#set_target_worker' do
424
- test 'set target_worker_id recursively' do
425
- e = element('label', '@mytest', {}, [ element('filter', '**'), element('match', '**', {}, [ element('store'), element('store') ]) ])
426
- e.set_target_worker_id(1)
427
- assert_equal [1], e.target_worker_ids
428
- assert_equal [1], e.elements[0].target_worker_ids
429
- assert_equal [1], e.elements[1].target_worker_ids
430
- assert_equal [1], e.elements[1].elements[0].target_worker_ids
431
- assert_equal [1], e.elements[1].elements[1].target_worker_ids
432
- end
433
- end
434
-
435
- sub_test_case '#for_every_workers?' do
436
- test 'has target_worker_id' do
437
- e = element()
438
- e.set_target_worker_id(1)
439
- assert_false e.for_every_workers?
440
- end
441
-
442
- test "doesn't have target_worker_id" do
443
- e = element()
444
- assert e.for_every_workers?
445
- end
446
- end
447
-
448
- sub_test_case '#for_this_workers?' do
449
- test 'target_worker_id == current worker_id' do
450
- e = element()
451
- e.set_target_worker_id(0)
452
- assert e.for_this_worker?
453
- end
454
-
455
- test 'target_worker_ids includes current worker_id' do
456
- e = element()
457
- e.set_target_worker_ids([0])
458
- assert e.for_this_worker?
459
- end
460
-
461
- test 'target_worker_id != current worker_id' do
462
- e = element()
463
- e.set_target_worker_id(1)
464
- assert_false e.for_this_worker?
465
- end
466
-
467
- test 'target_worker_ids does not includes current worker_id' do
468
- e = element()
469
- e.set_target_worker_ids([1, 2])
470
- assert_false e.for_this_worker?
471
- end
472
-
473
- test "doesn't have target_worker_id" do
474
- e = element()
475
- assert_false e.for_this_worker?
476
- end
477
- end
478
-
479
- sub_test_case '#for_another_worker?' do
480
- test 'target_worker_id == current worker_id' do
481
- e = element()
482
- e.set_target_worker_id(0)
483
- assert_false e.for_another_worker?
484
- end
485
-
486
- test 'target_worker_ids contains current worker_id' do
487
- e = element()
488
- e.set_target_worker_ids([0, 1])
489
- assert_false e.for_another_worker?
490
- end
491
-
492
- test 'target_worker_id != current worker_id' do
493
- e = element()
494
- e.set_target_worker_id(1)
495
- assert e.for_another_worker?
496
- end
497
-
498
- test 'target_worker_ids does not contains current worker_id' do
499
- e = element()
500
- e.set_target_worker_ids([1, 2])
501
- assert e.for_another_worker?
502
- end
503
-
504
- test "doesn't have target_worker_id" do
505
- e = element()
506
- assert_false e.for_another_worker?
507
- end
508
- end
509
-
510
- sub_test_case '#pretty_print' do
511
- test 'prints inspect to pp object' do
512
- q = PP.new
513
- e = element()
514
- e.pretty_print(q)
515
- assert_equal e.inspect, q.output
516
- end
517
- end
518
- end