fluent-plugin-elasticsearch 2.12.4 → 2.12.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 346ce09074a330559ab327a078ddc042e2555bb71afad491962083c272789751
4
- data.tar.gz: 46689cc4b8496fdd57b620d303de60e46e661dce3ac6fe30fab5c7595396bd28
3
+ metadata.gz: 2e61b71d57d8dcc1f75180c40f8e926804b694004b30cb0ecff73407fb1c647c
4
+ data.tar.gz: b1503054bd7fe71e15bc3aa0c9f0fd90e320926ae40138924ddae9511e1bde8a
5
5
  SHA512:
6
- metadata.gz: 71857e0b0b56a2cb5fb4bd6b98f3931ce09397503aadae2df46ac470530065186a22c97625f53f8286f42df7ea4265c0af2073f332a280d7b959cb1376393d0a
7
- data.tar.gz: 82325f62e7365816d0779e8d6656ac31cccc9d20a50723b78b9fe3cd32f3f7fcffbfd8dd62cebb71a203dc4db15be20c283067eaf10b61ad947a4ebca9d04ea1
6
+ metadata.gz: ccf3115fb1d7e434cb7bf986bc4c3f2ef91af0eeeddab5b49bf5603089b4ce48919eb56a60a5f07222be8695caf03ea1d9017ff54a6e0c8e96fcd7adec2dfbec
7
+ data.tar.gz: a5a2b1ee4a2bcf33406e3c754547d0b8de41082a334c196c4ab7b4a9f410770bcf018064ddf5375ceea9e5e935a23e5d88b3b9e17e4a27e9cfc43e1fa6d1acee
data/History.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  ### [Unreleased]
4
4
 
5
+ ### 2.12.5
6
+ - Ensure sniffer class constants definition before calling #client (#515)
7
+
5
8
  ### 2.12.4
6
9
  - #506 Rollover index will be in effect in case of template overwrite also. (#513)
7
10
 
@@ -3,7 +3,7 @@ $:.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'fluent-plugin-elasticsearch'
6
- s.version = '2.12.4'
6
+ s.version = '2.12.5'
7
7
  s.authors = ['diogo', 'pitr']
8
8
  s.email = ['pitr.vern@gmail.com', 'me@diogoterror.com']
9
9
  s.description = %q{Elasticsearch output plugin for Fluent event collector}
@@ -218,6 +218,14 @@ EOC
218
218
  log_level = conf['@log_level'] || conf['log_level']
219
219
  log.warn "Consider to specify log_level with @log_level." unless log_level
220
220
  end
221
+ # Specify @sniffer_class before calling #client.
222
+ # #detect_es_major_version uses #client.
223
+ @sniffer_class = nil
224
+ begin
225
+ @sniffer_class = Object.const_get(@sniffer_class_name) if @sniffer_class_name
226
+ rescue Exception => ex
227
+ raise Fluent::ConfigError, "Could not load sniffer class #{@sniffer_class_name}: #{ex}"
228
+ end
221
229
 
222
230
  @last_seen_major_version =
223
231
  if @verify_es_version_at_startup
@@ -256,12 +264,6 @@ EOC
256
264
  end
257
265
  end
258
266
  end
259
- @sniffer_class = nil
260
- begin
261
- @sniffer_class = Object.const_get(@sniffer_class_name) if @sniffer_class_name
262
- rescue Exception => ex
263
- raise Fluent::ConfigError, "Could not load sniffer class #{@sniffer_class_name}: #{ex}"
264
- end
265
267
  end
266
268
 
267
269
  def backend_options
@@ -23,10 +23,14 @@ class ElasticsearchOutput < Test::Unit::TestCase
23
23
  # For request stub to detect compatibility.
24
24
  @es_version ||= es_version
25
25
  @client_version ||= client_version
26
+ if @es_version
27
+ Fluent::Plugin::ElasticsearchOutput.module_eval(<<-CODE)
28
+ def detect_es_major_version
29
+ #{@es_version}
30
+ end
31
+ CODE
32
+ end
26
33
  Fluent::Plugin::ElasticsearchOutput.module_eval(<<-CODE)
27
- def detect_es_major_version
28
- #{@es_version}
29
- end
30
34
  def client_library_version
31
35
  #{@client_version}
32
36
  end
@@ -59,6 +63,11 @@ class ElasticsearchOutput < Test::Unit::TestCase
59
63
  stub_request(:head, url).to_return(:status => 200, :body => "", :headers => {})
60
64
  end
61
65
 
66
+ def stub_elastic_info(url="http://localhost:9200/", version="6.4.2")
67
+ body ="{\"version\":{\"number\":\"#{version}\"}}"
68
+ stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'json' } })
69
+ end
70
+
62
71
  def stub_elastic(url="http://localhost:9200/_bulk")
63
72
  stub_request(:post, url).with do |req|
64
73
  @index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
@@ -191,6 +200,11 @@ class ElasticsearchOutput < Test::Unit::TestCase
191
200
  assert_equal(exp_matches, matches.length, "Logs do not contain '#{msg}' '#{logs}'")
192
201
  end
193
202
 
203
+ def assert_logs_include_compare_size(exp_matches=1, operator="<=", logs="", msg="")
204
+ matches = logs.grep /#{msg}/
205
+ assert_compare(exp_matches, operator, matches.length, "Logs do not contain '#{msg}' '#{logs}'")
206
+ end
207
+
194
208
  def test_configure
195
209
  config = %{
196
210
  host logs.google.com
@@ -2395,19 +2409,24 @@ class ElasticsearchOutput < Test::Unit::TestCase
2395
2409
 
2396
2410
  def test_use_simple_sniffer
2397
2411
  require 'fluent/plugin/elasticsearch_simple_sniffer'
2398
- driver.configure("sniffer_class_name Fluent::Plugin::ElasticsearchSimpleSniffer
2399
- log_level debug
2400
- with_transporter_log true
2401
- reload_connections true
2402
- reload_after 1")
2403
2412
  stub_elastic_ping
2413
+ stub_elastic_info
2404
2414
  stub_elastic
2415
+ config = %[
2416
+ sniffer_class_name Fluent::Plugin::ElasticsearchSimpleSniffer
2417
+ log_level debug
2418
+ with_transporter_log true
2419
+ reload_connections true
2420
+ reload_after 1
2421
+ ]
2422
+ driver(config, nil)
2405
2423
  driver.run(default_tag: 'test') do
2406
2424
  driver.feed(sample_record)
2407
2425
  end
2408
2426
  log = driver.logs
2409
- # 2 - one for the ping, one for the _bulk
2410
- assert_logs_include(log, /In Fluent::Plugin::ElasticsearchSimpleSniffer hosts/, 2)
2427
+ # 2 or 3 - one for the ping, one for the _bulk, (and client.info)
2428
+ assert_logs_include_compare_size(4, ">", log, /In Fluent::Plugin::ElasticsearchSimpleSniffer hosts/)
2429
+ assert_logs_include_compare_size(2, "<=", log, /In Fluent::Plugin::ElasticsearchSimpleSniffer hosts/)
2411
2430
  end
2412
2431
 
2413
2432
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.4
4
+ version: 2.12.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - diogo
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-12-10 00:00:00.000000000 Z
12
+ date: 2018-12-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd