fluentd 1.17.0-x86-mingw32 → 1.17.1-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,563 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/counter/client'
3
- require 'fluent/counter/store'
4
- require 'fluent/counter/server'
5
- require 'flexmock/test_unit'
6
- require 'timecop'
7
-
8
- class CounterClientTest < ::Test::Unit::TestCase
9
- TEST_ADDR = '127.0.0.1'
10
- TEST_PORT = '8277'
11
-
12
- setup do
13
- # timecop isn't compatible with EventTime
14
- t = Time.parse('2016-09-22 16:59:59 +0900')
15
- Timecop.freeze(t)
16
- @now = Fluent::EventTime.now
17
-
18
- @options = {
19
- addr: TEST_ADDR,
20
- port: TEST_PORT,
21
- log: $log,
22
- }
23
-
24
- @server_name = 'server1'
25
- @scope = "worker1\tplugin1"
26
- @loop = Coolio::Loop.new
27
- @server = Fluent::Counter::Server.new(@server_name, @options).start
28
- @client = Fluent::Counter::Client.new(@loop, @options).start
29
- end
30
-
31
- teardown do
32
- Timecop.return
33
- @server.stop
34
- @client.stop
35
- end
36
-
37
- test 'Callable API' do
38
- [:establish, :init, :delete, :inc, :reset, :get].each do |m|
39
- assert_true @client.respond_to?(m)
40
- end
41
- end
42
-
43
- sub_test_case 'on_message' do
44
- setup do
45
- @future = flexmock('future')
46
- @client.instance_variable_set(:@responses, { 1 => @future })
47
- end
48
-
49
- test 'call a set method to a corresponding object' do
50
- @future.should_receive(:set).once.with(Hash)
51
- @client.send(:on_message, { 'id' => 1 })
52
- end
53
-
54
- test "output a warning log when passed id doesn't exist" do
55
- data = { 'id' => 2 }
56
- mock($log).warn("Receiving missing id data: #{data}")
57
- @client.send(:on_message, data)
58
- end
59
- end
60
-
61
- def extract_value_from_server(server, scope, name)
62
- store = server.instance_variable_get(:@store).instance_variable_get(:@storage).instance_variable_get(:@store)
63
- key = Fluent::Counter::Store.gen_key(scope, name)
64
- store[key]
65
- end
66
-
67
- def travel(sec)
68
- # Since Timecop.travel() causes test failures on Windows/AppVeyor by inducing
69
- # rounding errors to Time.now, we need to use Timecop.freeze() instead.
70
- Timecop.freeze(Time.now + sec)
71
- end
72
-
73
- sub_test_case 'establish' do
74
- test 'establish a scope' do
75
- @client.establish(@scope)
76
- assert_equal "#{@server_name}\t#{@scope}", @client.instance_variable_get(:@scope)
77
- end
78
-
79
- data(
80
- empty: '',
81
- invalid_string: '_scope',
82
- invalid_string2: 'Scope'
83
- )
84
- test 'raise an error when passed scope is invalid' do |scope|
85
- assert_raise do
86
- @client.establish(scope)
87
- end
88
- end
89
- end
90
-
91
- sub_test_case 'init' do
92
- setup do
93
- @client.instance_variable_set(:@scope, @scope)
94
- end
95
-
96
- data(
97
- numeric_type: [
98
- { name: 'key', reset_interval: 20, type: 'numeric' }, 0
99
- ],
100
- float_type: [
101
- { name: 'key', reset_interval: 20, type: 'float' }, 0.0
102
- ],
103
- integer_type: [
104
- { name: 'key', reset_interval: 20, type: 'integer' }, 0
105
- ]
106
- )
107
- test 'create a value' do |(param, initial_value)|
108
- assert_nil extract_value_from_server(@server, @scope, param[:name])
109
-
110
- response = @client.init(param).get
111
- data = response.data.first
112
-
113
- assert_nil response.errors
114
- assert_equal param[:name], data['name']
115
- assert_equal param[:reset_interval], data['reset_interval']
116
- assert_equal param[:type], data['type']
117
- assert_equal initial_value, data['current']
118
- assert_equal initial_value, data['total']
119
-
120
- v = extract_value_from_server(@server, @scope, param[:name])
121
- assert_equal param[:name], v['name']
122
- assert_equal param[:reset_interval], v['reset_interval']
123
- assert_equal param[:type], v['type']
124
- assert_equal initial_value, v['total']
125
- assert_equal initial_value, v['current']
126
- end
127
-
128
- test 'raise an error when @scope is nil' do
129
- @client.instance_variable_set(:@scope, nil)
130
- assert_raise 'Call `establish` method to get a `scope` before calling this method' do
131
- params = { name: 'key1', reset_interval: 10 }
132
- @client.init(params).get
133
- end
134
- end
135
-
136
- data(
137
- already_exist_key: [
138
- { name: 'key1', reset_interval: 10 },
139
- { 'code' => 'invalid_params', 'message' => "worker1\tplugin1\tkey1 already exists in counter" }
140
- ],
141
- missing_name: [
142
- { reset_interval: 10 },
143
- { 'code' => 'invalid_params', 'message' => '`name` is required' },
144
- ],
145
- missing_reset_interval: [
146
- { name: 'key' },
147
- { 'code' => 'invalid_params', 'message' => '`reset_interval` is required' },
148
- ],
149
- invalid_name: [
150
- { name: '\tkey' },
151
- { 'code' => 'invalid_params', 'message' => '`name` is the invalid format' }
152
- ]
153
- )
154
- test 'return an error object' do |(param, expected_error)|
155
- params = { name: 'key1', reset_interval: 10 }
156
- @client.init(params).get
157
- response = @client.init(param).get
158
- errors = response.errors.first
159
-
160
- assert_empty response.data
161
- assert_equal expected_error, errors
162
-
163
- assert_raise {
164
- @client.init(param).wait
165
- }
166
- end
167
-
168
- test 'return an existing value when passed key already exists and ignore option is true' do
169
- params = { name: 'key1', reset_interval: 10 }
170
- res1 = @client.init(params).get
171
- res2 = nil
172
- assert_nothing_raised do
173
- res2 = @client.init({ name: 'key1', reset_interval: 10 }, options: { ignore: true }).get
174
- end
175
- assert_equal res1.data, res2.data
176
- end
177
-
178
- test 'return an error object and data object' do
179
- param = { name: 'key1', reset_interval: 10 }
180
- param2 = { name: 'key2', reset_interval: 10 }
181
- @client.init(param).get
182
-
183
- response = @client.init([param2, param]).get
184
- data = response.data.first
185
- error = response.errors.first
186
-
187
- assert_equal param2[:name], data['name']
188
- assert_equal param2[:reset_interval], data['reset_interval']
189
-
190
- assert_equal 'invalid_params', error['code']
191
- assert_equal "#{@scope}\t#{param[:name]} already exists in counter", error['message']
192
- end
193
-
194
- test 'return a future object when async call' do
195
- param = { name: 'key', reset_interval: 10 }
196
- r = @client.init(param)
197
- assert_true r.is_a?(Fluent::Counter::Future)
198
- assert_nil r.errors
199
- end
200
- end
201
-
202
- sub_test_case 'delete' do
203
- setup do
204
- @client.instance_variable_set(:@scope, @scope)
205
- @name = 'key'
206
- @key = Fluent::Counter::Store.gen_key(@scope, @name)
207
-
208
- @init_obj = { name: @name, reset_interval: 20, type: 'numeric' }
209
- @client.init(@init_obj).get
210
- end
211
-
212
- test 'delete a value' do
213
- assert extract_value_from_server(@server, @scope, @name)
214
-
215
- response = @client.delete(@name).get
216
- v = response.data.first
217
-
218
- assert_nil response.errors
219
- assert_equal @init_obj[:name], v['name']
220
- assert_equal @init_obj[:type], v['type']
221
- assert_equal @init_obj[:reset_interval], v['reset_interval']
222
-
223
- assert_nil extract_value_from_server(@server, @scope, @name)
224
- end
225
-
226
- test 'raise an error when @scope is nil' do
227
- @client.instance_variable_set(:@scope, nil)
228
- assert_raise 'Call `establish` method to get a `scope` before calling this method' do
229
- @client.delete(@name).get
230
- end
231
- end
232
-
233
- data(
234
- key_not_found: [
235
- 'key2',
236
- { 'code' => 'unknown_key', 'message' => "`worker1\tplugin1\tkey2` doesn't exist in counter" }
237
- ],
238
- invalid_key: [
239
- '\tkey',
240
- { 'code' => 'invalid_params', 'message' => '`key` is the invalid format' }
241
- ]
242
- )
243
- test 'return an error object' do |(param, expected_error)|
244
- response = @client.delete(param).get
245
- errors = response.errors.first
246
-
247
- assert_empty response.data
248
- assert_equal expected_error, errors
249
- end
250
-
251
- test 'return an error object and data object' do
252
- unknown_name = 'key2'
253
-
254
- response = @client.delete(@name, unknown_name).get
255
- data = response.data.first
256
- error = response.errors.first
257
-
258
- assert_equal @name, data['name']
259
- assert_equal @init_obj[:reset_interval], data['reset_interval']
260
-
261
- assert_equal 'unknown_key', error['code']
262
- assert_equal "`#{@scope}\t#{unknown_name}` doesn't exist in counter", error['message']
263
-
264
- assert_nil extract_value_from_server(@server, @scope, @name)
265
- end
266
-
267
- test 'return a future object when async call' do
268
- r = @client.delete(@name)
269
- assert_true r.is_a?(Fluent::Counter::Future)
270
- assert_nil r.errors
271
- end
272
- end
273
-
274
- sub_test_case 'inc' do
275
- setup do
276
- @client.instance_variable_set(:@scope, @scope)
277
- @name = 'key'
278
- @key = Fluent::Counter::Store.gen_key(@scope, @name)
279
-
280
- @init_obj = { name: @name, reset_interval: 20, type: 'numeric' }
281
- @client.init(@init_obj).get
282
- end
283
-
284
- test 'increment a value' do
285
- v = extract_value_from_server(@server, @scope, @name)
286
- assert_equal 0, v['total']
287
- assert_equal 0, v['current']
288
-
289
- travel(1)
290
- inc_obj = { name: @name, value: 10 }
291
- @client.inc(inc_obj).get
292
-
293
- v = extract_value_from_server(@server, @scope, @name)
294
- assert_equal inc_obj[:value], v['total']
295
- assert_equal inc_obj[:value], v['current']
296
- assert_equal (@now + 1), Fluent::EventTime.new(*v['last_modified_at'])
297
- end
298
-
299
- test 'create and increment a value when force option is true' do
300
- name = 'new_key'
301
- param = { name: name, value: 11, reset_interval: 1 }
302
-
303
- assert_nil extract_value_from_server(@server, @scope, name)
304
-
305
- @client.inc(param, options: { force: true }).get
306
-
307
- v = extract_value_from_server(@server, @scope, name)
308
- assert v
309
- assert_equal param[:name], v['name']
310
- assert_equal 1, v['reset_interval']
311
- assert_equal param[:value], v['current']
312
- assert_equal param[:value], v['total']
313
- end
314
-
315
- test 'raise an error when @scope is nil' do
316
- @client.instance_variable_set(:@scope, nil)
317
- assert_raise 'Call `establish` method to get a `scope` before calling this method' do
318
- params = { name: 'name', value: 1 }
319
- @client.inc(params).get
320
- end
321
- end
322
-
323
- data(
324
- not_exist_key: [
325
- { name: 'key2', value: 10 },
326
- { 'code' => 'unknown_key', 'message' => "`worker1\tplugin1\tkey2` doesn't exist in counter" }
327
- ],
328
- missing_name: [
329
- { value: 10 },
330
- { 'code' => 'invalid_params', 'message' => '`name` is required' },
331
- ],
332
- missing_value: [
333
- { name: 'key' },
334
- { 'code' => 'invalid_params', 'message' => '`value` is required' },
335
- ],
336
- invalid_name: [
337
- { name: '\tkey' },
338
- { 'code' => 'invalid_params', 'message' => '`name` is the invalid format' }
339
- ]
340
- )
341
- test 'return an error object' do |(param, expected_error)|
342
- response = @client.inc(param).get
343
- errors = response.errors.first
344
- assert_empty response.data
345
- assert_equal expected_error, errors
346
- end
347
-
348
- test 'return an error object and data object' do
349
- parmas = [
350
- { name: @name, value: 10 },
351
- { name: 'unknown_key', value: 9 },
352
- ]
353
- response = @client.inc(parmas).get
354
-
355
- data = response.data.first
356
- error = response.errors.first
357
-
358
- assert_equal @name, data['name']
359
- assert_equal 10, data['current']
360
- assert_equal 10, data['total']
361
-
362
- assert_equal 'unknown_key', error['code']
363
- assert_equal "`#{@scope}\tunknown_key` doesn't exist in counter", error['message']
364
- end
365
-
366
- test 'return a future object when async call' do
367
- param = { name: 'key', value: 10 }
368
- r = @client.inc(param)
369
- assert_true r.is_a?(Fluent::Counter::Future)
370
- assert_nil r.errors
371
- end
372
- end
373
-
374
- sub_test_case 'get' do
375
- setup do
376
- @client.instance_variable_set(:@scope, @scope)
377
- @name = 'key'
378
-
379
- @init_obj = { name: @name, reset_interval: 20, type: 'numeric' }
380
- @client.init(@init_obj).get
381
- end
382
-
383
- test 'get a value' do
384
- v1 = extract_value_from_server(@server, @scope, @name)
385
- v2 = @client.get(@name).data.first
386
-
387
- assert_equal v1['name'], v2['name']
388
- assert_equal v1['current'], v2['current']
389
- assert_equal v1['total'], v2['total']
390
- assert_equal v1['type'], v2['type']
391
- end
392
-
393
- test 'raise an error when @scope is nil' do
394
- @client.instance_variable_set(:@scope, nil)
395
- assert_raise 'Call `establish` method to get a `scope` before calling this method' do
396
- @client.get(@name).get
397
- end
398
- end
399
-
400
- data(
401
- key_not_found: [
402
- 'key2',
403
- { 'code' => 'unknown_key', 'message' => "`worker1\tplugin1\tkey2` doesn't exist in counter" }
404
- ],
405
- invalid_key: [
406
- '\tkey',
407
- { 'code' => 'invalid_params', 'message' => '`key` is the invalid format' }
408
- ]
409
- )
410
- test 'return an error object' do |(param, expected_error)|
411
- response = @client.get(param).get
412
- errors = response.errors.first
413
- assert_empty response.data
414
- assert_equal expected_error, errors
415
- end
416
-
417
- test 'return an error object and data object' do
418
- unknown_name = 'key2'
419
-
420
- response = @client.get(@name, unknown_name).get
421
- data = response.data.first
422
- error = response.errors.first
423
-
424
- assert_equal @name, data['name']
425
- assert_equal @init_obj[:reset_interval], data['reset_interval']
426
-
427
- assert_equal 'unknown_key', error['code']
428
- assert_equal "`#{@scope}\t#{unknown_name}` doesn't exist in counter", error['message']
429
- end
430
-
431
- test 'return a future object when async call' do
432
- r = @client.get(@name)
433
- assert_true r.is_a?(Fluent::Counter::Future)
434
- assert_nil r.errors
435
- end
436
- end
437
-
438
- sub_test_case 'reset' do
439
- setup do
440
- @client.instance_variable_set(:@scope, @scope)
441
- @name = 'key'
442
- @key = Fluent::Counter::Store.gen_key(@scope, @name)
443
-
444
- @init_obj = { name: @name, reset_interval: 5, type: 'numeric' }
445
- @client.init(@init_obj).get
446
- @inc_obj = { name: @name, value: 10 }
447
- @client.inc(@inc_obj).get
448
- end
449
-
450
- test 'reset a value after `reset_interval` passed' do
451
- v1 = extract_value_from_server(@server, @scope, @name)
452
- assert_equal @inc_obj[:value], v1['total']
453
- assert_equal @inc_obj[:value], v1['current']
454
- assert_equal @now, Fluent::EventTime.new(*v1['last_reset_at'])
455
-
456
- travel_sec = 6 # greater than reset_interval
457
- travel(travel_sec)
458
-
459
- v2 = @client.reset(@name).get
460
- data = v2.data.first
461
-
462
- c = data['counter_data']
463
-
464
- assert_equal travel_sec, data['elapsed_time']
465
- assert_true data['success']
466
-
467
- assert_equal @inc_obj[:value], c['current']
468
- assert_equal @inc_obj[:value], c['total']
469
- assert_equal @now, c['last_reset_at']
470
-
471
- v1 = extract_value_from_server(@server, @scope, @name)
472
- assert_equal 0, v1['current']
473
- assert_equal @inc_obj[:value], v1['total']
474
- assert_equal (@now + travel_sec), Fluent::EventTime.new(*v1['last_reset_at'])
475
- assert_equal (@now + travel_sec), Fluent::EventTime.new(*v1['last_modified_at'])
476
- end
477
-
478
- test 'areturn a value object before `reset_interval` passed' do
479
- v1 = extract_value_from_server(@server, @scope, @name)
480
- assert_equal @inc_obj[:value], v1['total']
481
- assert_equal @inc_obj[:value], v1['current']
482
- assert_equal @now, Fluent::EventTime.new(*v1['last_reset_at'])
483
-
484
- travel_sec = 4 # less than reset_interval
485
- travel(travel_sec)
486
-
487
- v2 = @client.reset(@name).get
488
- data = v2.data.first
489
-
490
- c = data['counter_data']
491
-
492
- assert_equal travel_sec, data['elapsed_time']
493
- assert_equal false, data['success']
494
-
495
- assert_equal @inc_obj[:value], c['current']
496
- assert_equal @inc_obj[:value], c['total']
497
- assert_equal @now, c['last_reset_at']
498
-
499
- v1 = extract_value_from_server(@server, @scope, @name)
500
- assert_equal @inc_obj[:value], v1['current']
501
- assert_equal @inc_obj[:value], v1['total']
502
- assert_equal @now, Fluent::EventTime.new(*v1['last_reset_at'])
503
- end
504
-
505
- test 'raise an error when @scope is nil' do
506
- @client.instance_variable_set(:@scope, nil)
507
- assert_raise 'Call `establish` method to get a `scope` before calling this method' do
508
- @client.reset(@name).get
509
- end
510
- end
511
-
512
- data(
513
- key_not_found: [
514
- 'key2',
515
- { 'code' => 'unknown_key', 'message' => "`worker1\tplugin1\tkey2` doesn't exist in counter" }
516
- ],
517
- invalid_key: [
518
- '\tkey',
519
- { 'code' => 'invalid_params', 'message' => '`key` is the invalid format' }
520
- ]
521
- )
522
- test 'return an error object' do |(param, expected_error)|
523
- response = @client.reset(param).get
524
- errors = response.errors.first
525
- assert_empty response.data
526
- assert_equal expected_error, errors
527
- end
528
-
529
- test 'return an error object and data object' do
530
- unknown_name = 'key2'
531
-
532
- travel_sec = 6 # greater than reset_interval
533
- travel(travel_sec)
534
-
535
- response = @client.reset(@name, unknown_name).get
536
- data = response.data.first
537
- error = response.errors.first
538
- counter = data['counter_data']
539
-
540
- assert_true data['success']
541
- assert_equal travel_sec, data['elapsed_time']
542
- assert_equal @name, counter['name']
543
- assert_equal @init_obj[:reset_interval], counter['reset_interval']
544
- assert_equal @inc_obj[:value], counter['total']
545
- assert_equal @inc_obj[:value], counter['current']
546
-
547
- assert_equal 'unknown_key', error['code']
548
- assert_equal "`#{@scope}\t#{unknown_name}` doesn't exist in counter", error['message']
549
-
550
- v1 = extract_value_from_server(@server, @scope, @name)
551
- assert_equal 0, v1['current']
552
- assert_equal @inc_obj[:value], v1['total']
553
- assert_equal (@now + travel_sec), Fluent::EventTime.new(*v1['last_reset_at'])
554
- assert_equal (@now + travel_sec), Fluent::EventTime.new(*v1['last_modified_at'])
555
- end
556
-
557
- test 'return a future object when async call' do
558
- r = @client.reset(@name)
559
- assert_true r.is_a?(Fluent::Counter::Future)
560
- assert_nil r.errors
561
- end
562
- end
563
- end
@@ -1,44 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/counter/error'
3
-
4
- class CounterErrorTest < ::Test::Unit::TestCase
5
- setup do
6
- @message = 'error message'
7
- end
8
-
9
- test 'invalid_params' do
10
- error = Fluent::Counter::InvalidParams.new(@message)
11
- expected = { 'code' => 'invalid_params', 'message' => @message }
12
- assert_equal expected, error.to_hash
13
- end
14
-
15
- test 'unknown_key' do
16
- error = Fluent::Counter::UnknownKey.new(@message)
17
- expected = { 'code' => 'unknown_key', 'message' => @message }
18
- assert_equal expected, error.to_hash
19
- end
20
-
21
- test 'parse_error' do
22
- error = Fluent::Counter::ParseError.new(@message)
23
- expected = { 'code' => 'parse_error', 'message' => @message }
24
- assert_equal expected, error.to_hash
25
- end
26
-
27
- test 'method_not_found' do
28
- error = Fluent::Counter::MethodNotFound.new(@message)
29
- expected = { 'code' => 'method_not_found', 'message' => @message }
30
- assert_equal expected, error.to_hash
31
- end
32
-
33
- test 'invalid_request' do
34
- error = Fluent::Counter::InvalidRequest.new(@message)
35
- expected = { 'code' => 'invalid_request', 'message' => @message }
36
- assert_equal expected, error.to_hash
37
- end
38
-
39
- test 'internal_server_error' do
40
- error = Fluent::Counter::InternalServerError.new(@message)
41
- expected = { 'code' => 'internal_server_error', 'message' => @message }
42
- assert_equal expected, error.to_hash
43
- end
44
- end