fluentd 1.5.2 → 1.6.0
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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +15 -6
- data/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
- data/CHANGELOG.md +29 -0
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +5 -0
- data/Rakefile +6 -1
- data/appveyor.yml +9 -10
- data/lib/fluent/command/fluentd.rb +4 -0
- data/lib/fluent/config/literal_parser.rb +2 -2
- data/lib/fluent/plugin/base.rb +1 -0
- data/lib/fluent/plugin/buffer.rb +22 -0
- data/lib/fluent/plugin/in_forward.rb +2 -2
- data/lib/fluent/plugin/in_monitor_agent.rb +90 -131
- data/lib/fluent/plugin/out_forward.rb +4 -0
- data/lib/fluent/plugin/output.rb +31 -1
- data/lib/fluent/plugin/parser_none.rb +1 -2
- data/lib/fluent/plugin_helper.rb +1 -0
- data/lib/fluent/plugin_helper/cert_option.rb +1 -1
- data/lib/fluent/plugin_helper/http_server.rb +75 -0
- data/lib/fluent/plugin_helper/http_server/app.rb +79 -0
- data/lib/fluent/plugin_helper/http_server/compat/server.rb +81 -0
- data/lib/fluent/plugin_helper/http_server/compat/webrick_handler.rb +58 -0
- data/lib/fluent/plugin_helper/http_server/methods.rb +35 -0
- data/lib/fluent/plugin_helper/http_server/request.rb +42 -0
- data/lib/fluent/plugin_helper/http_server/router.rb +54 -0
- data/lib/fluent/plugin_helper/http_server/server.rb +87 -0
- data/lib/fluent/plugin_helper/socket.rb +8 -2
- data/lib/fluent/supervisor.rb +5 -2
- data/lib/fluent/time.rb +13 -0
- data/lib/fluent/version.rb +1 -1
- data/test/command/test_fluentd.rb +36 -2
- data/test/helper.rb +1 -0
- data/test/helpers/fuzzy_assert.rb +89 -0
- data/test/plugin/test_buf_file.rb +1 -1
- data/test/plugin/test_in_http.rb +2 -5
- data/test/plugin/test_in_monitor_agent.rb +118 -17
- data/test/plugin/test_in_udp.rb +0 -2
- data/test/plugin/test_out_file.rb +15 -12
- data/test/plugin/test_out_forward.rb +18 -0
- data/test/plugin/test_out_secondary_file.rb +6 -4
- data/test/plugin/test_output_as_buffered.rb +4 -0
- data/test/plugin/test_output_as_buffered_retries.rb +0 -2
- data/test/plugin/test_output_as_buffered_secondary.rb +0 -3
- data/test/plugin_helper/data/cert/cert-key.pem +27 -0
- data/test/plugin_helper/data/cert/cert-with-no-newline.pem +19 -0
- data/test/plugin_helper/data/cert/cert.pem +19 -0
- data/test/plugin_helper/http_server/test_app.rb +65 -0
- data/test/plugin_helper/http_server/test_route.rb +32 -0
- data/test/plugin_helper/test_cert_option.rb +16 -0
- data/test/plugin_helper/test_http_server_helper.rb +203 -0
- data/test/plugin_helper/test_server.rb +1 -7
- data/test/test_event_time.rb +13 -0
- data/test/test_log.rb +8 -6
- data/test/test_supervisor.rb +3 -0
- metadata +28 -2
@@ -0,0 +1,65 @@
|
|
1
|
+
require_relative '../../helper'
|
2
|
+
require 'flexmock/test_unit'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'fluent/plugin_helper/http_server/app'
|
6
|
+
skip = false
|
7
|
+
rescue LoadError => _
|
8
|
+
skip = true
|
9
|
+
end
|
10
|
+
|
11
|
+
unless skip
|
12
|
+
class HtttpHelperAppTest < Test::Unit::TestCase
|
13
|
+
NULL_LOGGER = Logger.new(nil)
|
14
|
+
|
15
|
+
class DummyRounter
|
16
|
+
def initialize(table = {})
|
17
|
+
@table = table
|
18
|
+
end
|
19
|
+
|
20
|
+
def route!(method, path, _req)
|
21
|
+
r = @table.fetch(method).fetch(path)
|
22
|
+
[200, {}, r]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
sub_test_case '#call' do
|
27
|
+
data(
|
28
|
+
'GET request' => 'GET',
|
29
|
+
'POST request' => 'POST',
|
30
|
+
'DELETE request' => 'DELETE',
|
31
|
+
'PUT request' => 'PUT',
|
32
|
+
'PATCH request' => 'PATCH',
|
33
|
+
'OPTION request' => 'OPTIONS',
|
34
|
+
'CONNECT request' => 'CONNECT',
|
35
|
+
'TRACE request' => 'TRACE',
|
36
|
+
)
|
37
|
+
test 'dispatch correct path' do |method|
|
38
|
+
r = DummyRounter.new(method.downcase.to_sym => { '/path/' => 'hi' })
|
39
|
+
app = Fluent::PluginHelper::HttpServer::App.new(r, NULL_LOGGER)
|
40
|
+
m = flexmock('request', method: method, path: '/path/')
|
41
|
+
r = app.call(m)
|
42
|
+
assert_equal(r.body.read, 'hi')
|
43
|
+
assert_equal(r.status, 200)
|
44
|
+
end
|
45
|
+
|
46
|
+
test 'dispatch correct path for head' do |method|
|
47
|
+
r = DummyRounter.new(head: { '/path/' => 'hi' })
|
48
|
+
app = Fluent::PluginHelper::HttpServer::App.new(r, NULL_LOGGER)
|
49
|
+
m = flexmock('request', method: method, path: '/path')
|
50
|
+
r = app.call(m)
|
51
|
+
assert_equal(r.body.read, '')
|
52
|
+
assert_equal(r.status, 200)
|
53
|
+
end
|
54
|
+
|
55
|
+
test 'if path does not end with `/`' do |method|
|
56
|
+
r = DummyRounter.new(head: { '/path/' => 'hi' })
|
57
|
+
app = Fluent::PluginHelper::HttpServer::App.new(r, NULL_LOGGER)
|
58
|
+
m = flexmock('request', method: method, path: '/path')
|
59
|
+
r = app.call(m)
|
60
|
+
assert_equal(r.body.read, '')
|
61
|
+
assert_equal(r.status, 200)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative '../../helper'
|
2
|
+
require 'flexmock/test_unit'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'fluent/plugin_helper/http_server/router'
|
6
|
+
skip = false
|
7
|
+
rescue LoadError => _
|
8
|
+
skip = true
|
9
|
+
end
|
10
|
+
|
11
|
+
unless skip
|
12
|
+
class HtttpHelperRouterTest < Test::Unit::TestCase
|
13
|
+
sub_test_case '#mount' do
|
14
|
+
test 'mount with method and path' do
|
15
|
+
router = Fluent::PluginHelper::HttpServer::Router.new
|
16
|
+
router.mount(:get, '/path/', ->(req) { req })
|
17
|
+
assert_equal(router.route!(:get, '/path/', 'request'), 'request')
|
18
|
+
end
|
19
|
+
|
20
|
+
test 'use default app if path is not found' do
|
21
|
+
router = Fluent::PluginHelper::HttpServer::Router.new
|
22
|
+
req = flexmock('request', path: 'path/')
|
23
|
+
assert_equal(router.route!(:get, '/path/', req), [404, { 'Content-Type' => 'text/plain' }, "404 Not Found: #{req.path}\n"])
|
24
|
+
end
|
25
|
+
|
26
|
+
test 'default app is configurable' do
|
27
|
+
router = Fluent::PluginHelper::HttpServer::Router.new(->(req) { req })
|
28
|
+
assert_equal(router.route!(:get, '/path/', 'hello'), 'hello')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../helper'
|
2
|
+
require 'fluent/plugin_helper/cert_option'
|
3
|
+
|
4
|
+
class CertOptionPluginHelperTest < Test::Unit::TestCase
|
5
|
+
class Dummy < Fluent::Plugin::TestBase
|
6
|
+
helpers :cert_option
|
7
|
+
end
|
8
|
+
|
9
|
+
test 'can load PEM encoded certificate file' do
|
10
|
+
d = Dummy.new
|
11
|
+
certs = d.cert_option_certificates_from_file("test/plugin_helper/data/cert/cert.pem")
|
12
|
+
assert_equal(1, certs.length)
|
13
|
+
certs = d.cert_option_certificates_from_file("test/plugin_helper/data/cert/cert-with-no-newline.pem")
|
14
|
+
assert_equal(1, certs.length)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,203 @@
|
|
1
|
+
require_relative '../helper'
|
2
|
+
require 'flexmock/test_unit'
|
3
|
+
require 'fluent/plugin_helper/http_server'
|
4
|
+
require 'fluent/plugin/output'
|
5
|
+
require 'fluent/event'
|
6
|
+
require 'net/http'
|
7
|
+
require 'uri'
|
8
|
+
|
9
|
+
class HtttpHelperTest < Test::Unit::TestCase
|
10
|
+
PORT = unused_port
|
11
|
+
NULL_LOGGER = Logger.new(nil)
|
12
|
+
|
13
|
+
class Dummy < Fluent::Plugin::TestBase
|
14
|
+
helpers :http_server
|
15
|
+
end
|
16
|
+
|
17
|
+
def on_driver
|
18
|
+
Fluent::Test.setup
|
19
|
+
driver = Dummy.new
|
20
|
+
driver.start
|
21
|
+
driver.after_start
|
22
|
+
|
23
|
+
yield(driver)
|
24
|
+
ensure
|
25
|
+
unless driver.stopped?
|
26
|
+
driver.stop rescue nil
|
27
|
+
end
|
28
|
+
|
29
|
+
unless driver.before_shutdown?
|
30
|
+
driver.before_shutdown rescue nil
|
31
|
+
end
|
32
|
+
|
33
|
+
unless driver.shutdown?
|
34
|
+
driver.shutdown rescue nil
|
35
|
+
end
|
36
|
+
|
37
|
+
unless driver.after_shutdown?
|
38
|
+
driver.after_shutdown rescue nil
|
39
|
+
end
|
40
|
+
|
41
|
+
unless driver.closed?
|
42
|
+
driver.close rescue nil
|
43
|
+
end
|
44
|
+
|
45
|
+
unless driver.terminated?
|
46
|
+
driver.terminated rescue nil
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
%w[get head].each do |n|
|
51
|
+
define_method(n) do |uri, header = {}|
|
52
|
+
url = URI.parse(uri)
|
53
|
+
req = Net::HTTP.const_get(n.capitalize).new(url, header)
|
54
|
+
Net::HTTP.start(url.host, url.port) do |http|
|
55
|
+
http.request(req)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
%w[post put patch delete options trace].each do |n|
|
61
|
+
define_method(n) do |uri, body = '', header = {}|
|
62
|
+
url = URI.parse(uri)
|
63
|
+
req = Net::HTTP.const_get(n.capitalize).new(url, header)
|
64
|
+
req.body = body
|
65
|
+
Net::HTTP.start(url.host, url.port) do |http|
|
66
|
+
http.request(req)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
sub_test_case 'Create a HTTP server' do
|
72
|
+
test 'monunt given path' do
|
73
|
+
on_driver do |driver|
|
74
|
+
driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
|
75
|
+
s.get('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello get'] }
|
76
|
+
s.post('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello post'] }
|
77
|
+
s.head('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello head'] }
|
78
|
+
s.put('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello put'] }
|
79
|
+
s.patch('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello patch'] }
|
80
|
+
s.delete('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello delete'] }
|
81
|
+
s.trace('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello trace'] }
|
82
|
+
s.options('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello options'] }
|
83
|
+
end
|
84
|
+
|
85
|
+
resp = head("http://127.0.0.1:#{PORT}/example/hello")
|
86
|
+
assert_equal('200', resp.code)
|
87
|
+
assert_equal(nil, resp.body)
|
88
|
+
assert_equal('text/plain', resp['Content-Type'])
|
89
|
+
|
90
|
+
%w[get put post put delete trace].each do |n|
|
91
|
+
resp = send(n, "http://127.0.0.1:#{PORT}/example/hello")
|
92
|
+
assert_equal('200', resp.code)
|
93
|
+
assert_equal("hello #{n}", resp.body)
|
94
|
+
assert_equal('text/plain', resp['Content-Type'])
|
95
|
+
end
|
96
|
+
|
97
|
+
# TODO: remove when fluentd drop ruby 2.1
|
98
|
+
if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('2.2.0')
|
99
|
+
resp = options("http://127.0.0.1:#{PORT}/example/hello")
|
100
|
+
assert_equal('200', resp.code)
|
101
|
+
assert_equal("hello options", resp.body)
|
102
|
+
assert_equal('text/plain', resp['Content-Type'])
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
test 'when path does not start with `/` or ends with `/`' do
|
108
|
+
on_driver do |driver|
|
109
|
+
driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
|
110
|
+
s.get('example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello get'] }
|
111
|
+
s.get('/example/hello2/') { [200, { 'Content-Type' => 'text/plain' }, 'hello get'] }
|
112
|
+
end
|
113
|
+
|
114
|
+
resp = get("http://127.0.0.1:#{PORT}/example/hello")
|
115
|
+
assert_equal('404', resp.code)
|
116
|
+
|
117
|
+
resp = get("http://127.0.0.1:#{PORT}/example/hello2")
|
118
|
+
assert_equal('200', resp.code)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
test 'when error raised' do
|
123
|
+
on_driver do |driver|
|
124
|
+
driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
|
125
|
+
s.get('/example/hello') { raise 'error!' }
|
126
|
+
end
|
127
|
+
|
128
|
+
resp = get("http://127.0.0.1:#{PORT}/example/hello")
|
129
|
+
assert_equal('500', resp.code)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
test 'when path is not found' do
|
134
|
+
on_driver do |driver|
|
135
|
+
driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
|
136
|
+
s.get('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello get'] }
|
137
|
+
end
|
138
|
+
|
139
|
+
resp = get("http://127.0.0.1:#{PORT}/example/hello/not_found")
|
140
|
+
assert_equal('404', resp.code)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
test 'params and body' do
|
145
|
+
on_driver do |driver|
|
146
|
+
driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
|
147
|
+
s.get('/example/hello') do |req|
|
148
|
+
assert_equal(req.query_string, nil)
|
149
|
+
assert_equal(req.body, nil)
|
150
|
+
[200, { 'Content-Type' => 'text/plain' }, 'hello get']
|
151
|
+
end
|
152
|
+
|
153
|
+
s.post('/example/hello') do |req|
|
154
|
+
assert_equal(req.query_string, nil)
|
155
|
+
assert_equal(req.body, 'this is body')
|
156
|
+
[200, { 'Content-Type' => 'text/plain' }, 'hello post']
|
157
|
+
end
|
158
|
+
|
159
|
+
s.get('/example/hello/params') do |req|
|
160
|
+
assert_equal(req.query_string, 'test=true')
|
161
|
+
assert_equal(req.body, nil)
|
162
|
+
[200, { 'Content-Type' => 'text/plain' }, 'hello get']
|
163
|
+
end
|
164
|
+
|
165
|
+
s.post('/example/hello/params') do |req|
|
166
|
+
assert_equal(req.query_string, 'test=true')
|
167
|
+
assert_equal(req.body, 'this is body')
|
168
|
+
[200, { 'Content-Type' => 'text/plain' }, 'hello post']
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
resp = get("http://127.0.0.1:#{PORT}/example/hello")
|
173
|
+
assert_equal('200', resp.code)
|
174
|
+
|
175
|
+
resp = post("http://127.0.0.1:#{PORT}/example/hello", 'this is body')
|
176
|
+
assert_equal('200', resp.code)
|
177
|
+
|
178
|
+
resp = get("http://127.0.0.1:#{PORT}/example/hello/params?test=true")
|
179
|
+
assert_equal('200', resp.code)
|
180
|
+
|
181
|
+
resp = post("http://127.0.0.1:#{PORT}/example/hello/params?test=true", 'this is body')
|
182
|
+
assert_equal('200', resp.code)
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
test 'must be called #start and #stop' do
|
187
|
+
on_driver do |driver|
|
188
|
+
server = flexmock('Server') do |watcher|
|
189
|
+
watcher.should_receive(:start).once.and_return do |que|
|
190
|
+
que.push(:start)
|
191
|
+
end
|
192
|
+
watcher.should_receive(:stop).once
|
193
|
+
end
|
194
|
+
|
195
|
+
stub(Fluent::PluginHelper::HttpServer::Server).new(anything) { server }
|
196
|
+
driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do
|
197
|
+
# nothing
|
198
|
+
end
|
199
|
+
driver.stop
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
@@ -230,16 +230,10 @@ class ServerPluginHelperTest < Test::Unit::TestCase
|
|
230
230
|
data(
|
231
231
|
'server_create udp' => [:server_create, :udp],
|
232
232
|
)
|
233
|
-
test 'raise error if tcp/tls/unix options specified for udp' do |(m, proto)|
|
233
|
+
test 'raise error if tcp/tls/unix backlog options specified for udp' do |(m, proto)|
|
234
234
|
assert_raise(ArgumentError.new("BUG: backlog is available for tcp/tls")) do
|
235
235
|
@d.__send__(m, :myserver, PORT, proto: proto, backlog: 500){|x| x }
|
236
236
|
end
|
237
|
-
end
|
238
|
-
|
239
|
-
data(
|
240
|
-
'server_create udp' => [:server_create, :udp],
|
241
|
-
)
|
242
|
-
test 'raise error if tcp/tls/unix options specified for udp' do |(m, proto)|
|
243
237
|
assert_raise(ArgumentError.new("BUG: send_keepalive_packet is available for tcp")) do
|
244
238
|
@d.__send__(m, :myserver, PORT, proto: proto, send_keepalive_packet: true){|x| x }
|
245
239
|
end
|
data/test/test_event_time.rb
CHANGED
@@ -36,6 +36,19 @@ class EventTimeTest < Test::Unit::TestCase
|
|
36
36
|
assert_equal('100', "#{time}")
|
37
37
|
end
|
38
38
|
|
39
|
+
test '#to_time' do
|
40
|
+
time = Fluent::EventTime.new(@now.to_i, @now.nsec).to_time
|
41
|
+
assert_instance_of(Time, time)
|
42
|
+
assert_equal(@now.to_i, time.to_i)
|
43
|
+
begin
|
44
|
+
::Time.at(0, 0, :nanosecond)
|
45
|
+
assert_equal(@now.nsec, time.nsec)
|
46
|
+
rescue
|
47
|
+
# Time.at(@sec, @nsec / 1000.0) sometimes cause 1 diff error in nsec by 1000.0
|
48
|
+
assert_in_delta(@now.nsec, time.nsec, 1)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
39
52
|
test '#to_json' do
|
40
53
|
time = Fluent::EventTime.new(100)
|
41
54
|
assert_equal('100', time.to_json)
|
data/test/test_log.rb
CHANGED
@@ -12,7 +12,7 @@ class LogTest < Test::Unit::TestCase
|
|
12
12
|
FileUtils.rm_rf(TMP_DIR)
|
13
13
|
FileUtils.mkdir_p(TMP_DIR)
|
14
14
|
@log_device = Fluent::Test::DummyLogDevice.new
|
15
|
-
@timestamp = Time.parse("2016-04-21
|
15
|
+
@timestamp = Time.parse("2016-04-21 02:58:41 +0000")
|
16
16
|
@timestamp_str = @timestamp.strftime("%Y-%m-%d %H:%M:%S %z")
|
17
17
|
Timecop.freeze(@timestamp)
|
18
18
|
end
|
@@ -540,7 +540,7 @@ end
|
|
540
540
|
class PluginLoggerTest < Test::Unit::TestCase
|
541
541
|
def setup
|
542
542
|
@log_device = Fluent::Test::DummyLogDevice.new
|
543
|
-
@timestamp = Time.parse("2016-04-21
|
543
|
+
@timestamp = Time.parse("2016-04-21 02:58:41 +0000")
|
544
544
|
@timestamp_str = @timestamp.strftime("%Y-%m-%d %H:%M:%S %z")
|
545
545
|
Timecop.freeze(@timestamp)
|
546
546
|
dl_opts = {}
|
@@ -796,13 +796,15 @@ class PluginLoggerTest < Test::Unit::TestCase
|
|
796
796
|
end
|
797
797
|
|
798
798
|
data(
|
799
|
-
text: [:text, "2016-04-21
|
800
|
-
json: [:json, %Q({"time":"2016-04-21
|
799
|
+
text: [:text, "2016-04-21 02:58:41 +0000 [info]: yaaay\n"],
|
800
|
+
json: [:json, %Q({"time":"2016-04-21 02:58:41 +0000","level":"info","message":"yaaay"}\n)],
|
801
801
|
)
|
802
802
|
def test_format(data)
|
803
803
|
fmt, expected_log_line = data
|
804
|
-
|
805
|
-
|
804
|
+
with_timezone('utc') {
|
805
|
+
@log.format = fmt
|
806
|
+
@log.info "yaaay"
|
807
|
+
}
|
806
808
|
assert{ @log_device.logs.include? expected_log_line }
|
807
809
|
end
|
808
810
|
|
data/test/test_supervisor.rb
CHANGED
@@ -274,6 +274,7 @@ class SupervisorTest < ::Test::Unit::TestCase
|
|
274
274
|
params['log_path'] = 'test/tmp/supervisor/log'
|
275
275
|
params['suppress_repeated_stacktrace'] = true
|
276
276
|
params['log_level'] = Fluent::Log::LEVEL_INFO
|
277
|
+
params['conf_encoding'] = 'utf-8'
|
277
278
|
load_config_proc = Proc.new { Fluent::Supervisor.load_config(tmp_dir, params) }
|
278
279
|
|
279
280
|
# first call
|
@@ -340,6 +341,7 @@ class SupervisorTest < ::Test::Unit::TestCase
|
|
340
341
|
params['suppress_repeated_stacktrace'] = true
|
341
342
|
params['log_level'] = Fluent::Log::LEVEL_INFO
|
342
343
|
params['daemonize'] = './fluentd.pid'
|
344
|
+
params['conf_encoding'] = 'utf-8'
|
343
345
|
load_config_proc = Proc.new { Fluent::Supervisor.load_config(tmp_dir, params) }
|
344
346
|
|
345
347
|
# first call
|
@@ -414,6 +416,7 @@ class SupervisorTest < ::Test::Unit::TestCase
|
|
414
416
|
params['log_path'] = 'test/tmp/supervisor/log'
|
415
417
|
params['suppress_repeated_stacktrace'] = true
|
416
418
|
params['log_level'] = Fluent::Log::LEVEL_INFO
|
419
|
+
params['conf_encoding'] = 'utf-8'
|
417
420
|
load_config_proc = Proc.new { Fluent::Supervisor.load_config(tmp_path, params) }
|
418
421
|
|
419
422
|
se_config = load_config_proc.call
|
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.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msgpack
|
@@ -329,6 +329,8 @@ extensions: []
|
|
329
329
|
extra_rdoc_files: []
|
330
330
|
files:
|
331
331
|
- ".github/ISSUE_TEMPLATE.md"
|
332
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
333
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
332
334
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
333
335
|
- ".gitignore"
|
334
336
|
- ".gitlab-ci.yml"
|
@@ -546,6 +548,14 @@ files:
|
|
546
548
|
- lib/fluent/plugin_helper/event_loop.rb
|
547
549
|
- lib/fluent/plugin_helper/extract.rb
|
548
550
|
- lib/fluent/plugin_helper/formatter.rb
|
551
|
+
- lib/fluent/plugin_helper/http_server.rb
|
552
|
+
- lib/fluent/plugin_helper/http_server/app.rb
|
553
|
+
- lib/fluent/plugin_helper/http_server/compat/server.rb
|
554
|
+
- lib/fluent/plugin_helper/http_server/compat/webrick_handler.rb
|
555
|
+
- lib/fluent/plugin_helper/http_server/methods.rb
|
556
|
+
- lib/fluent/plugin_helper/http_server/request.rb
|
557
|
+
- lib/fluent/plugin_helper/http_server/router.rb
|
558
|
+
- lib/fluent/plugin_helper/http_server/server.rb
|
549
559
|
- lib/fluent/plugin_helper/inject.rb
|
550
560
|
- lib/fluent/plugin_helper/parser.rb
|
551
561
|
- lib/fluent/plugin_helper/record_accessor.rb
|
@@ -632,6 +642,7 @@ files:
|
|
632
642
|
- test/counter/test_store.rb
|
633
643
|
- test/counter/test_validator.rb
|
634
644
|
- test/helper.rb
|
645
|
+
- test/helpers/fuzzy_assert.rb
|
635
646
|
- test/plugin/data/2010/01/20100102-030405.log
|
636
647
|
- test/plugin/data/2010/01/20100102-030406.log
|
637
648
|
- test/plugin/data/2010/01/20100102.log
|
@@ -714,12 +725,19 @@ files:
|
|
714
725
|
- test/plugin/test_storage.rb
|
715
726
|
- test/plugin/test_storage_local.rb
|
716
727
|
- test/plugin/test_string_util.rb
|
728
|
+
- test/plugin_helper/data/cert/cert-key.pem
|
729
|
+
- test/plugin_helper/data/cert/cert-with-no-newline.pem
|
730
|
+
- test/plugin_helper/data/cert/cert.pem
|
731
|
+
- test/plugin_helper/http_server/test_app.rb
|
732
|
+
- test/plugin_helper/http_server/test_route.rb
|
733
|
+
- test/plugin_helper/test_cert_option.rb
|
717
734
|
- test/plugin_helper/test_child_process.rb
|
718
735
|
- test/plugin_helper/test_compat_parameters.rb
|
719
736
|
- test/plugin_helper/test_event_emitter.rb
|
720
737
|
- test/plugin_helper/test_event_loop.rb
|
721
738
|
- test/plugin_helper/test_extract.rb
|
722
739
|
- test/plugin_helper/test_formatter.rb
|
740
|
+
- test/plugin_helper/test_http_server_helper.rb
|
723
741
|
- test/plugin_helper/test_inject.rb
|
724
742
|
- test/plugin_helper/test_parser.rb
|
725
743
|
- test/plugin_helper/test_record_accessor.rb
|
@@ -808,6 +826,7 @@ test_files:
|
|
808
826
|
- test/counter/test_store.rb
|
809
827
|
- test/counter/test_validator.rb
|
810
828
|
- test/helper.rb
|
829
|
+
- test/helpers/fuzzy_assert.rb
|
811
830
|
- test/plugin/data/2010/01/20100102-030405.log
|
812
831
|
- test/plugin/data/2010/01/20100102-030406.log
|
813
832
|
- test/plugin/data/2010/01/20100102.log
|
@@ -890,12 +909,19 @@ test_files:
|
|
890
909
|
- test/plugin/test_storage.rb
|
891
910
|
- test/plugin/test_storage_local.rb
|
892
911
|
- test/plugin/test_string_util.rb
|
912
|
+
- test/plugin_helper/data/cert/cert-key.pem
|
913
|
+
- test/plugin_helper/data/cert/cert-with-no-newline.pem
|
914
|
+
- test/plugin_helper/data/cert/cert.pem
|
915
|
+
- test/plugin_helper/http_server/test_app.rb
|
916
|
+
- test/plugin_helper/http_server/test_route.rb
|
917
|
+
- test/plugin_helper/test_cert_option.rb
|
893
918
|
- test/plugin_helper/test_child_process.rb
|
894
919
|
- test/plugin_helper/test_compat_parameters.rb
|
895
920
|
- test/plugin_helper/test_event_emitter.rb
|
896
921
|
- test/plugin_helper/test_event_loop.rb
|
897
922
|
- test/plugin_helper/test_extract.rb
|
898
923
|
- test/plugin_helper/test_formatter.rb
|
924
|
+
- test/plugin_helper/test_http_server_helper.rb
|
899
925
|
- test/plugin_helper/test_inject.rb
|
900
926
|
- test/plugin_helper/test_parser.rb
|
901
927
|
- test/plugin_helper/test_record_accessor.rb
|