fluentd 1.12.2-x64-mingw32 → 1.13.2-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd might be problematic. Click here for more details.

Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.yaml +69 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.yaml +38 -0
  4. data/.github/workflows/linux-test.yaml +1 -1
  5. data/.github/workflows/windows-test.yaml +19 -3
  6. data/.gitlab-ci.yml +19 -19
  7. data/CHANGELOG.md +153 -0
  8. data/CONTRIBUTING.md +2 -2
  9. data/MAINTAINERS.md +1 -1
  10. data/README.md +8 -5
  11. data/bin/fluentd +8 -1
  12. data/example/counter.conf +1 -1
  13. data/fluentd.gemspec +4 -3
  14. data/lib/fluent/command/cat.rb +19 -3
  15. data/lib/fluent/command/fluentd.rb +1 -2
  16. data/lib/fluent/command/plugin_generator.rb +42 -2
  17. data/lib/fluent/config.rb +1 -1
  18. data/lib/fluent/config/section.rb +5 -0
  19. data/lib/fluent/config/types.rb +15 -0
  20. data/lib/fluent/config/v1_parser.rb +3 -2
  21. data/lib/fluent/env.rb +2 -1
  22. data/lib/fluent/log.rb +1 -0
  23. data/lib/fluent/oj_options.rb +62 -0
  24. data/lib/fluent/plugin/file_wrapper.rb +49 -4
  25. data/lib/fluent/plugin/formatter.rb +1 -0
  26. data/lib/fluent/plugin/formatter_json.rb +9 -7
  27. data/lib/fluent/plugin/in_http.rb +10 -0
  28. data/lib/fluent/plugin/in_tail.rb +150 -39
  29. data/lib/fluent/plugin/in_tail/position_file.rb +15 -1
  30. data/lib/fluent/plugin/out_forward.rb +14 -33
  31. data/lib/fluent/plugin/output.rb +11 -9
  32. data/lib/fluent/plugin/parser_csv.rb +2 -2
  33. data/lib/fluent/plugin/parser_json.rb +2 -3
  34. data/lib/fluent/plugin/parser_syslog.rb +2 -2
  35. data/lib/fluent/plugin/service_discovery.rb +0 -15
  36. data/lib/fluent/plugin/storage_local.rb +1 -1
  37. data/lib/fluent/plugin_helper/http_server/router.rb +1 -1
  38. data/lib/fluent/plugin_helper/server.rb +4 -2
  39. data/lib/fluent/plugin_helper/service_discovery.rb +39 -1
  40. data/lib/fluent/plugin_helper/service_discovery/manager.rb +11 -5
  41. data/lib/fluent/plugin_helper/socket_option.rb +2 -2
  42. data/lib/fluent/supervisor.rb +15 -0
  43. data/lib/fluent/system_config.rb +14 -0
  44. data/lib/fluent/test/driver/storage.rb +30 -0
  45. data/lib/fluent/version.rb +1 -1
  46. data/templates/new_gem/fluent-plugin.gemspec.erb +3 -3
  47. data/templates/new_gem/lib/fluent/plugin/storage.rb.erb +40 -0
  48. data/templates/new_gem/test/plugin/test_storage.rb.erb +18 -0
  49. data/test/command/test_cat.rb +99 -0
  50. data/test/command/test_plugin_generator.rb +2 -1
  51. data/test/config/test_section.rb +9 -0
  52. data/test/config/test_system_config.rb +46 -0
  53. data/test/config/test_types.rb +7 -0
  54. data/test/plugin/in_tail/test_io_handler.rb +4 -4
  55. data/test/plugin/in_tail/test_position_file.rb +54 -0
  56. data/test/plugin/out_forward/test_connection_manager.rb +0 -6
  57. data/test/plugin/test_file_wrapper.rb +115 -0
  58. data/test/plugin/test_in_forward.rb +59 -83
  59. data/test/plugin/test_in_http.rb +58 -40
  60. data/test/plugin/test_in_syslog.rb +66 -56
  61. data/test/plugin/test_in_tail.rb +329 -10
  62. data/test/plugin/test_in_tcp.rb +45 -32
  63. data/test/plugin/test_in_udp.rb +47 -33
  64. data/test/plugin/test_out_forward.rb +138 -105
  65. data/test/plugin/test_out_stream.rb +18 -8
  66. data/test/plugin/test_output.rb +15 -3
  67. data/test/plugin/test_output_as_buffered_backup.rb +2 -0
  68. data/test/plugin/test_parser_csv.rb +14 -0
  69. data/test/plugin/test_parser_syslog.rb +14 -0
  70. data/test/plugin_helper/http_server/test_route.rb +1 -1
  71. data/test/plugin_helper/service_discovery/test_manager.rb +1 -1
  72. data/test/plugin_helper/test_child_process.rb +1 -1
  73. data/test/plugin_helper/test_http_server_helper.rb +34 -27
  74. data/test/plugin_helper/test_server.rb +144 -139
  75. data/test/plugin_helper/test_service_discovery.rb +74 -14
  76. data/test/plugin_helper/test_socket.rb +16 -9
  77. data/test/test_config.rb +2 -1
  78. data/test/test_event_time.rb +2 -2
  79. data/test/test_oj_options.rb +55 -0
  80. data/test/test_output.rb +2 -2
  81. data/test/test_supervisor.rb +35 -0
  82. metadata +41 -11
  83. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
  84. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
@@ -17,6 +17,24 @@ class ServiceDiscoveryHelper < Test::Unit::TestCase
17
17
  end
18
18
  end
19
19
 
20
+ class DummyPlugin < Fluent::Plugin::TestBase
21
+ helpers :service_discovery
22
+
23
+ def configure(conf)
24
+ super
25
+ service_discovery_configure(:service_discovery_helper_test, static_default_service_directive: 'node')
26
+ end
27
+
28
+ def select_service(&block)
29
+ service_discovery_select_service(&block)
30
+ end
31
+
32
+ # Make these mehtod public
33
+ def discovery_manager
34
+ super
35
+ end
36
+ end
37
+
20
38
  setup do
21
39
  @sd_file_dir = File.expand_path('../plugin/data/sd_file', __dir__)
22
40
 
@@ -33,7 +51,7 @@ class ServiceDiscoveryHelper < Test::Unit::TestCase
33
51
  end
34
52
  end
35
53
 
36
- test 'start discovery manager' do
54
+ test 'support calling #service_discovery_create_manager and #discovery_manager from plugin' do
37
55
  d = @d = Dummy.new
38
56
 
39
57
  d.service_discovery_create_manager(
@@ -55,13 +73,30 @@ class ServiceDiscoveryHelper < Test::Unit::TestCase
55
73
  assert_equal 1234, services[0].port
56
74
  end
57
75
 
58
- test 'call timer_execute if dynamic configuration' do
59
- d = @d = Dummy.new
76
+ test 'start discovery manager' do
77
+ d = @d = DummyPlugin.new
60
78
 
61
- d.service_discovery_create_manager(
62
- :service_discovery_helper_test,
63
- configurations: [{ type: :file, conf: config_element('file_config', '', { 'path' => File.join(@sd_file_dir, 'config.yml') }) }],
64
- )
79
+ services = [config_element('service', '', { 'host' => '127.0.0.1', 'port' => '1234' })]
80
+ d.configure(config_element('root', '', {}, [config_element('service_discovery', '', {'@type' => 'static'}, services)]))
81
+
82
+ assert_true !!d.discovery_manager
83
+
84
+ mock.proxy(d.discovery_manager).start.once
85
+ mock.proxy(d).timer_execute(:service_discovery_helper_test, anything).never
86
+
87
+ d.start
88
+ d.event_loop_wait_until_start
89
+
90
+ assert_equal 1, d.discovery_manager.services.size
91
+ d.select_service do |serv|
92
+ assert_equal "127.0.0.1", serv.host
93
+ assert_equal 1234, serv.port
94
+ end
95
+ end
96
+
97
+ test 'call timer_execute if dynamic configuration' do
98
+ d = @d = DummyPlugin.new
99
+ d.configure(config_element('root', '', {}, [config_element('service_discovery', '', { '@type' => 'file', 'path' => File.join(@sd_file_dir, 'config.yml' )})]))
65
100
 
66
101
  assert_true !!d.discovery_manager
67
102
  mock.proxy(d.discovery_manager).start.once
@@ -71,25 +106,22 @@ class ServiceDiscoveryHelper < Test::Unit::TestCase
71
106
  end
72
107
 
73
108
  test 'exits service discovery instances without any errors' do
74
- d = @d = Dummy.new
109
+ d = @d = DummyPlugin.new
75
110
  mockv = flexmock('dns_resolver', getaddress: '127.0.0.1')
76
111
  .should_receive(:getresources)
77
112
  .and_return([Resolv::DNS::Resource::IN::SRV.new(1, 10, 8081, 'service1.example.com')])
78
113
  .mock
79
114
  mock(Resolv::DNS).new { mockv }
80
115
 
81
- d.service_discovery_create_manager(
82
- :service_discovery_helper_test2,
83
- configurations: [{ type: :srv, conf: config_element('service_discovery', '', { 'service' => 'service1', 'hostname' => 'example.com' }) }],
84
- )
116
+ d.configure(config_element('root', '', {}, [config_element('service_discovery', '', { '@type' => 'srv', 'service' => 'service1', 'hostname' => 'example.com' })]))
85
117
 
86
118
  assert_true !!d.discovery_manager
87
119
  mock.proxy(d.discovery_manager).start.once
88
- mock(d).timer_execute(:service_discovery_helper_test2, anything).once
120
+ mock(d).timer_execute(:service_discovery_helper_test, anything).once
89
121
 
90
122
  # To avoid claring `@logs` during `terminate` step
91
123
  # https://github.com/fluent/fluentd/blob/bc78d889f93dad8c2a4e0ad1ca802546185dacba/lib/fluent/test/log.rb#L33
92
- mock(d.log).reset.twice
124
+ mock(d.log).reset.times(3)
93
125
 
94
126
  d.start
95
127
  d.event_loop_wait_until_start
@@ -102,4 +134,32 @@ class ServiceDiscoveryHelper < Test::Unit::TestCase
102
134
 
103
135
  assert_false(d.log.out.logs.any? { |e| e.match?(/thread doesn't exit correctly/) })
104
136
  end
137
+
138
+ test 'static service discovery will be configured automatically when default service directive is specified' do
139
+ d = @d = DummyPlugin.new
140
+
141
+ nodes = [
142
+ config_element('node', '', { 'host' => '192.168.0.1', 'port' => '24224' }),
143
+ config_element('node', '', { 'host' => '192.168.0.2', 'port' => '24224' })
144
+ ]
145
+ d.configure(config_element('root', '', {}, nodes))
146
+
147
+ assert_true !!d.discovery_manager
148
+
149
+ mock.proxy(d.discovery_manager).start.once
150
+ mock.proxy(d).timer_execute(:service_discovery_helper_test, anything).never
151
+
152
+ d.start
153
+ d.event_loop_wait_until_start
154
+
155
+ assert_equal 2, d.discovery_manager.services.size
156
+ d.select_service do |serv|
157
+ assert_equal "192.168.0.1", serv.host
158
+ assert_equal 24224, serv.port
159
+ end
160
+ d.select_service do |serv|
161
+ assert_equal "192.168.0.2", serv.host
162
+ assert_equal 24224, serv.port
163
+ end
164
+ end
105
165
  end
@@ -6,17 +6,24 @@ require 'socket'
6
6
  require 'openssl'
7
7
 
8
8
  class SocketHelperTest < Test::Unit::TestCase
9
- PORT = unused_port
10
9
  CERT_DIR = File.expand_path(File.dirname(__FILE__) + '/data/cert/without_ca')
11
10
  CA_CERT_DIR = File.expand_path(File.dirname(__FILE__) + '/data/cert/with_ca')
12
11
  CERT_CHAINS_DIR = File.expand_path(File.dirname(__FILE__) + '/data/cert/cert_chains')
13
12
 
13
+ def setup
14
+ @port = unused_port
15
+ end
16
+
17
+ def teardown
18
+ @port = nil
19
+ end
20
+
14
21
  class SocketHelperTestPlugin < Fluent::Plugin::TestBase
15
22
  helpers :socket
16
23
  end
17
24
 
18
25
  class EchoTLSServer
19
- def initialize(host = '127.0.0.1', port = PORT, cert_path: nil, private_key_path: nil, ca_path: nil)
26
+ def initialize(port, host: '127.0.0.1', cert_path: nil, private_key_path: nil, ca_path: nil)
20
27
  server = TCPServer.open(host, port)
21
28
  ctx = OpenSSL::SSL::SSLContext.new
22
29
  ctx.cert = OpenSSL::X509::Certificate.new(File.open(cert_path)) if cert_path
@@ -91,8 +98,8 @@ class SocketHelperTest < Test::Unit::TestCase
91
98
  cert_path = File.join(CERT_DIR, 'cert.pem')
92
99
  private_key_path = File.join(CERT_DIR, 'cert-key.pem')
93
100
 
94
- EchoTLSServer.new(cert_path: cert_path, private_key_path: private_key_path).start do
95
- client = SocketHelperTestPlugin.new.socket_create_tls('127.0.0.1', PORT, verify_fqdn: false, cert_paths: [cert_path])
101
+ EchoTLSServer.new(@port, cert_path: cert_path, private_key_path: private_key_path).start do
102
+ client = SocketHelperTestPlugin.new.socket_create_tls('127.0.0.1', @port, verify_fqdn: false, cert_paths: [cert_path])
96
103
  client.write('hello')
97
104
  assert_equal 'hello', client.readpartial(100)
98
105
  client.close
@@ -105,8 +112,8 @@ class SocketHelperTest < Test::Unit::TestCase
105
112
 
106
113
  ca_cert_path = File.join(CA_CERT_DIR, 'ca-cert.pem')
107
114
 
108
- EchoTLSServer.new(cert_path: cert_path, private_key_path: private_key_path).start do
109
- client = SocketHelperTestPlugin.new.socket_create_tls('127.0.0.1', PORT, verify_fqdn: false, cert_paths: [ca_cert_path])
115
+ EchoTLSServer.new(@port, cert_path: cert_path, private_key_path: private_key_path).start do
116
+ client = SocketHelperTestPlugin.new.socket_create_tls('127.0.0.1', @port, verify_fqdn: false, cert_paths: [ca_cert_path])
110
117
  client.write('hello')
111
118
  assert_equal 'hello', client.readpartial(100)
112
119
  client.close
@@ -121,8 +128,8 @@ class SocketHelperTest < Test::Unit::TestCase
121
128
  client_cert_path = File.join(CERT_CHAINS_DIR, 'cert.pem')
122
129
  client_private_key_path = File.join(CERT_CHAINS_DIR, 'cert-key.pem')
123
130
 
124
- EchoTLSServer.new(cert_path: cert_path, private_key_path: private_key_path, ca_path: client_ca_cert_path).start do
125
- client = SocketHelperTestPlugin.new.socket_create_tls('127.0.0.1', PORT, verify_fqdn: false, cert_path: client_cert_path, private_key_path: client_private_key_path, cert_paths: [cert_path])
131
+ EchoTLSServer.new(@port, cert_path: cert_path, private_key_path: private_key_path, ca_path: client_ca_cert_path).start do
132
+ client = SocketHelperTestPlugin.new.socket_create_tls('127.0.0.1', @port, verify_fqdn: false, cert_path: client_cert_path, private_key_path: client_private_key_path, cert_paths: [cert_path])
126
133
  client.write('hello')
127
134
  assert_equal 'hello', client.readpartial(100)
128
135
  client.close
@@ -133,7 +140,7 @@ class SocketHelperTest < Test::Unit::TestCase
133
140
  cert_path = File.expand_path(File.dirname(__FILE__) + '/data/cert/empty.pem')
134
141
 
135
142
  assert_raise Fluent::ConfigError do
136
- SocketHelperTestPlugin.new.socket_create_tls('127.0.0.1', PORT, cert_path: cert_path)
143
+ SocketHelperTestPlugin.new.socket_create_tls('127.0.0.1', @port, cert_path: cert_path)
137
144
  end
138
145
  end
139
146
  end
data/test/test_config.rb CHANGED
@@ -160,7 +160,8 @@ class ConfigTest < Test::Unit::TestCase
160
160
  prepare_config
161
161
  opts = {
162
162
  :config_path => "#{TMP_DIR}/config_test_1.conf",
163
- :inline_config => "<source>\n type http\n port 2222\n </source>"
163
+ :inline_config => "<source>\n type http\n port 2222\n </source>",
164
+ :use_v1_config => false
164
165
  }
165
166
  assert_nothing_raised do
166
167
  Fluent::Supervisor.new(opts)
@@ -64,8 +64,8 @@ class EventTimeTest < Test::Unit::TestCase
64
64
 
65
65
  test 'Oj.dump' do
66
66
  time = Fluent::EventTime.new(100)
67
- require 'fluent/env'
68
- Oj.default_options = Fluent::DEFAULT_OJ_OPTIONS
67
+ require 'fluent/oj_options'
68
+ Fluent::OjOptions.load_env
69
69
  assert_equal('{"time":100}', Oj.dump({'time' => time}))
70
70
  assert_equal('["tag",100,{"key":"value"}]', Oj.dump(["tag", time, {"key" => "value"}], mode: :compat))
71
71
  end
@@ -0,0 +1,55 @@
1
+ require_relative 'helper'
2
+ require 'fluent/test'
3
+ require 'fluent/oj_options'
4
+
5
+ class OjOptionsTest < ::Test::Unit::TestCase
6
+ begin
7
+ require 'oj'
8
+ @@oj_is_avaibale = true
9
+ rescue LoadError
10
+ @@oj_is_avaibale = false
11
+ end
12
+
13
+ setup do
14
+ @orig_env = {}
15
+ ENV.each do |key, value|
16
+ @orig_env[key] = value if key.start_with?("FLUENT_OJ_OPTION_")
17
+ end
18
+ end
19
+
20
+ teardown do
21
+ ENV.delete_if { |key| key.start_with?("FLUENT_OJ_OPTION_") }
22
+ @orig_env.each { |key, value| ENV[key] = value }
23
+ end
24
+
25
+ test "available?" do
26
+ assert_equal(@@oj_is_avaibale, Fluent::OjOptions.available?)
27
+ end
28
+
29
+ sub_test_case "set by environment variable" do
30
+ test "when no env vars set, returns default options" do
31
+ ENV.delete_if { |key| key.start_with?("FLUENT_OJ_OPTION_") }
32
+ defaults = Fluent::OjOptions::DEFAULTS
33
+ assert_equal(defaults, Fluent::OjOptions.load_env)
34
+ assert_equal(defaults, Oj.default_options.slice(*defaults.keys)) if @@oj_is_avaibale
35
+ end
36
+
37
+ test "valid env var passed with valid value, default is overridden" do
38
+ ENV["FLUENT_OJ_OPTION_BIGDECIMAL_LOAD"] = ":bigdecimal"
39
+ assert_equal(:bigdecimal, Fluent::OjOptions.load_env[:bigdecimal_load])
40
+ assert_equal(:bigdecimal, Oj.default_options[:bigdecimal_load]) if @@oj_is_avaibale
41
+ end
42
+
43
+ test "valid env var passed with invalid value, default is not overriden" do
44
+ ENV["FLUENT_OJ_OPTION_BIGDECIMAL_LOAD"] = ":conor"
45
+ assert_equal(:float, Fluent::OjOptions.load_env[:bigdecimal_load])
46
+ assert_equal(:float, Oj.default_options[:bigdecimal_load]) if @@oj_is_avaibale
47
+ end
48
+
49
+ test "invalid env var passed, nothing done with it" do
50
+ ENV["FLUENT_OJ_OPTION_CONOR"] = ":conor"
51
+ assert_equal(nil, Fluent::OjOptions.load_env[:conor])
52
+ assert_equal(nil, Oj.default_options[:conor]) if @@oj_is_avaibale
53
+ end
54
+ end
55
+ end
data/test/test_output.rb CHANGED
@@ -117,7 +117,7 @@ module FluentOutputTest
117
117
  end
118
118
 
119
119
  mock(d.instance.log).warn("Use different plugin for secondary. Check the plugin works with primary like secondary_file",
120
- { primary: d.instance.class.to_s, secondary: "Fluent::Plugin::Test2Output" })
120
+ primary: d.instance.class.to_s, secondary: "Fluent::Plugin::Test2Output")
121
121
  d.configure(CONFIG + %[
122
122
  <secondary>
123
123
  type test2
@@ -133,7 +133,7 @@ module FluentOutputTest
133
133
  d = Fluent::Test::BufferedOutputTestDriver.new(Fluent::ObjectBufferedOutput)
134
134
 
135
135
  mock(d.instance.log).warn("Use different plugin for secondary. Check the plugin works with primary like secondary_file",
136
- { primary: d.instance.class.to_s, secondary: "Fluent::Plugin::Test2Output" }).never
136
+ primary: d.instance.class.to_s, secondary: "Fluent::Plugin::Test2Output").never
137
137
  d.configure(CONFIG + %[
138
138
  <secondary>
139
139
  type test2
@@ -7,6 +7,7 @@ require_relative 'test_plugin_classes'
7
7
  require 'net/http'
8
8
  require 'uri'
9
9
  require 'fileutils'
10
+ require 'tempfile'
10
11
 
11
12
  if Fluent.windows?
12
13
  require 'win32/event'
@@ -489,6 +490,40 @@ class SupervisorTest < ::Test::Unit::TestCase
489
490
  assert_equal 10, $log.out.instance_variable_get(:@shift_size)
490
491
  end
491
492
 
493
+ sub_test_case "system log rotation" do
494
+ def parse_text(text)
495
+ basepath = File.expand_path(File.dirname(__FILE__) + '/../../')
496
+ Fluent::Config.parse(text, '(test)', basepath, true).elements.find { |e| e.name == 'system' }
497
+ end
498
+
499
+ def test_override_default_log_rotate
500
+ Tempfile.open do |file|
501
+ config = parse_text(<<-EOS)
502
+ <system>
503
+ <log>
504
+ rotate_age 3
505
+ rotate_size 300
506
+ </log>
507
+ </system>
508
+ EOS
509
+ file.puts(config)
510
+ file.flush
511
+ opts = Fluent::Supervisor.default_options.merge(
512
+ log_path: "#{TMP_DIR}/test.log", config_path: file.path
513
+ )
514
+ sv = Fluent::Supervisor.new(opts)
515
+
516
+ log = sv.instance_variable_get(:@log)
517
+ log.init(:standalone, 0)
518
+ logger = $log.instance_variable_get(:@logger)
519
+
520
+ assert_equal([3, 300],
521
+ [logger.instance_variable_get(:@rotate_age),
522
+ logger.instance_variable_get(:@rotate_size)])
523
+ end
524
+ end
525
+ end
526
+
492
527
  def test_inline_config
493
528
  omit 'this feature is deprecated. see https://github.com/fluent/fluentd/issues/2711'
494
529
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluentd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.2
4
+ version: 1.13.2
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-29 00:00:00.000000000 Z
11
+ date: 2021-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -107,7 +107,7 @@ dependencies:
107
107
  version: 0.5.1
108
108
  - - "<"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.7.0
110
+ version: 0.8.0
111
111
  type: :runtime
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
@@ -117,7 +117,7 @@ dependencies:
117
117
  version: 0.5.1
118
118
  - - "<"
119
119
  - !ruby/object:Gem::Version
120
- version: 0.7.0
120
+ version: 0.8.0
121
121
  - !ruby/object:Gem::Dependency
122
122
  name: sigdump
123
123
  requirement: !ruby/object:Gem::Requirement
@@ -206,20 +206,40 @@ dependencies:
206
206
  - - "<"
207
207
  - !ruby/object:Gem::Version
208
208
  version: 1.8.0
209
+ - !ruby/object:Gem::Dependency
210
+ name: win32-api
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '1.10'
216
+ - - "<"
217
+ - !ruby/object:Gem::Version
218
+ version: 2.0.0
219
+ type: :runtime
220
+ prerelease: false
221
+ version_requirements: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: '1.10'
226
+ - - "<"
227
+ - !ruby/object:Gem::Version
228
+ version: 2.0.0
209
229
  - !ruby/object:Gem::Dependency
210
230
  name: win32-service
211
231
  requirement: !ruby/object:Gem::Requirement
212
232
  requirements:
213
233
  - - "~>"
214
234
  - !ruby/object:Gem::Version
215
- version: 2.1.5
235
+ version: 2.2.0
216
236
  type: :runtime
217
237
  prerelease: false
218
238
  version_requirements: !ruby/object:Gem::Requirement
219
239
  requirements:
220
240
  - - "~>"
221
241
  - !ruby/object:Gem::Version
222
- version: 2.1.5
242
+ version: 2.2.0
223
243
  - !ruby/object:Gem::Dependency
224
244
  name: win32-ipc
225
245
  requirement: !ruby/object:Gem::Requirement
@@ -338,14 +358,14 @@ dependencies:
338
358
  requirements:
339
359
  - - "~>"
340
360
  - !ruby/object:Gem::Version
341
- version: '1.0'
361
+ version: '3.0'
342
362
  type: :development
343
363
  prerelease: false
344
364
  version_requirements: !ruby/object:Gem::Requirement
345
365
  requirements:
346
366
  - - "~>"
347
367
  - !ruby/object:Gem::Version
348
- version: '1.0'
368
+ version: '3.0'
349
369
  - !ruby/object:Gem::Dependency
350
370
  name: timecop
351
371
  requirement: !ruby/object:Gem::Requirement
@@ -443,9 +463,9 @@ files:
443
463
  - ".deepsource.toml"
444
464
  - ".drone.yml"
445
465
  - ".github/ISSUE_TEMPLATE.md"
446
- - ".github/ISSUE_TEMPLATE/bug_report.md"
466
+ - ".github/ISSUE_TEMPLATE/bug_report.yaml"
447
467
  - ".github/ISSUE_TEMPLATE/config.yml"
448
- - ".github/ISSUE_TEMPLATE/feature_request.md"
468
+ - ".github/ISSUE_TEMPLATE/feature_request.yaml"
449
469
  - ".github/PULL_REQUEST_TEMPLATE.md"
450
470
  - ".github/workflows/issue-auto-closer.yml"
451
471
  - ".github/workflows/linux-test.yaml"
@@ -589,6 +609,7 @@ files:
589
609
  - lib/fluent/match.rb
590
610
  - lib/fluent/mixin.rb
591
611
  - lib/fluent/msgpack_factory.rb
612
+ - lib/fluent/oj_options.rb
592
613
  - lib/fluent/output.rb
593
614
  - lib/fluent/output_chain.rb
594
615
  - lib/fluent/parser.rb
@@ -734,6 +755,7 @@ files:
734
755
  - lib/fluent/test/driver/multi_output.rb
735
756
  - lib/fluent/test/driver/output.rb
736
757
  - lib/fluent/test/driver/parser.rb
758
+ - lib/fluent/test/driver/storage.rb
737
759
  - lib/fluent/test/driver/test_event_router.rb
738
760
  - lib/fluent/test/filter_test.rb
739
761
  - lib/fluent/test/formatter_test.rb
@@ -759,12 +781,14 @@ files:
759
781
  - templates/new_gem/lib/fluent/plugin/input.rb.erb
760
782
  - templates/new_gem/lib/fluent/plugin/output.rb.erb
761
783
  - templates/new_gem/lib/fluent/plugin/parser.rb.erb
784
+ - templates/new_gem/lib/fluent/plugin/storage.rb.erb
762
785
  - templates/new_gem/test/helper.rb.erb
763
786
  - templates/new_gem/test/plugin/test_filter.rb.erb
764
787
  - templates/new_gem/test/plugin/test_formatter.rb.erb
765
788
  - templates/new_gem/test/plugin/test_input.rb.erb
766
789
  - templates/new_gem/test/plugin/test_output.rb.erb
767
790
  - templates/new_gem/test/plugin/test_parser.rb.erb
791
+ - templates/new_gem/test/plugin/test_storage.rb.erb
768
792
  - templates/plugin_config_formatter/param.md-compact.erb
769
793
  - templates/plugin_config_formatter/param.md-table.erb
770
794
  - templates/plugin_config_formatter/param.md.erb
@@ -772,6 +796,7 @@ files:
772
796
  - test/command/test_binlog_reader.rb
773
797
  - test/command/test_ca_generate.rb
774
798
  - test/command/test_cap_ctl.rb
799
+ - test/command/test_cat.rb
775
800
  - test/command/test_ctl.rb
776
801
  - test/command/test_fluentd.rb
777
802
  - test/command/test_plugin_config_formatter.rb
@@ -830,6 +855,7 @@ files:
830
855
  - test/plugin/test_buffer_memory_chunk.rb
831
856
  - test/plugin/test_compressable.rb
832
857
  - test/plugin/test_file_util.rb
858
+ - test/plugin/test_file_wrapper.rb
833
859
  - test/plugin/test_filter.rb
834
860
  - test/plugin/test_filter_grep.rb
835
861
  - test/plugin/test_filter_parser.rb
@@ -967,6 +993,7 @@ files:
967
993
  - test/test_match.rb
968
994
  - test/test_mixin.rb
969
995
  - test/test_msgpack_factory.rb
996
+ - test/test_oj_options.rb
970
997
  - test/test_output.rb
971
998
  - test/test_plugin.rb
972
999
  - test/test_plugin_classes.rb
@@ -1001,7 +1028,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1001
1028
  - !ruby/object:Gem::Version
1002
1029
  version: '0'
1003
1030
  requirements: []
1004
- rubygems_version: 3.2.3
1031
+ rubygems_version: 3.1.6
1005
1032
  signing_key:
1006
1033
  specification_version: 4
1007
1034
  summary: Fluentd event collector
@@ -1009,6 +1036,7 @@ test_files:
1009
1036
  - test/command/test_binlog_reader.rb
1010
1037
  - test/command/test_ca_generate.rb
1011
1038
  - test/command/test_cap_ctl.rb
1039
+ - test/command/test_cat.rb
1012
1040
  - test/command/test_ctl.rb
1013
1041
  - test/command/test_fluentd.rb
1014
1042
  - test/command/test_plugin_config_formatter.rb
@@ -1067,6 +1095,7 @@ test_files:
1067
1095
  - test/plugin/test_buffer_memory_chunk.rb
1068
1096
  - test/plugin/test_compressable.rb
1069
1097
  - test/plugin/test_file_util.rb
1098
+ - test/plugin/test_file_wrapper.rb
1070
1099
  - test/plugin/test_filter.rb
1071
1100
  - test/plugin/test_filter_grep.rb
1072
1101
  - test/plugin/test_filter_parser.rb
@@ -1204,6 +1233,7 @@ test_files:
1204
1233
  - test/test_match.rb
1205
1234
  - test/test_mixin.rb
1206
1235
  - test/test_msgpack_factory.rb
1236
+ - test/test_oj_options.rb
1207
1237
  - test/test_output.rb
1208
1238
  - test/test_plugin.rb
1209
1239
  - test/test_plugin_classes.rb