fluent-plugin-elasticsearch 5.3.0 → 5.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -31,11 +31,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
31
31
  end
32
32
 
33
33
  def ilm_endpoint
34
- if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
35
- '_enrich'.freeze
36
- else
37
- '_ilm'.freeze
38
- end
34
+ '_ilm'.freeze
39
35
  end
40
36
 
41
37
  def driver(conf='', es_version=elasticsearch_version.to_i, client_version=elasticsearch_version)
@@ -92,40 +88,40 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
92
88
  NONEXISTENT_DATA_STREAM_EXCEPTION = {"error": {}, "status": 404}
93
89
 
94
90
  def stub_ilm_policy(name="foo_ilm_policy", url="http://localhost:9200")
95
- stub_request(:put, "#{url}/#{ilm_endpoint}/policy/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
91
+ stub_request(:put, "#{url}/#{ilm_endpoint}/policy/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED], :headers => {'x-elastic-product' => 'Elasticsearch'})
96
92
  end
97
93
 
98
94
  def stub_index_template(name="foo_tpl", url="http://localhost:9200")
99
- stub_request(:put, "#{url}/_index_template/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
95
+ stub_request(:put, "#{url}/_index_template/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED], :headers => {'x-elastic-product' => 'Elasticsearch'})
100
96
  end
101
97
 
102
98
  def stub_data_stream(name="foo", url="http://localhost:9200")
103
- stub_request(:put, "#{url}/_data_stream/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
99
+ stub_request(:put, "#{url}/_data_stream/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED], :headers => {'x-elastic-product' => 'Elasticsearch'})
104
100
  end
105
101
 
106
102
  def stub_existent_data_stream?(name="foo", url="http://localhost:9200")
107
- stub_request(:get, "#{url}/_data_stream/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
103
+ stub_request(:get, "#{url}/_data_stream/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED], :headers => {'x-elastic-product' => 'Elasticsearch'})
108
104
  end
109
105
 
110
106
  def stub_existent_ilm?(name="foo_ilm_policy", url="http://localhost:9200")
111
107
 
112
- stub_request(:get, "#{url}/#{ilm_endpoint}/policy/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
108
+ stub_request(:get, "#{url}/#{ilm_endpoint}/policy/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED], :headers => {'x-elastic-product' => 'Elasticsearch'})
113
109
  end
114
110
 
115
111
  def stub_existent_template?(name="foo_tpl", url="http://localhost:9200")
116
- stub_request(:get, "#{url}/_index_template/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
112
+ stub_request(:get, "#{url}/_index_template/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED], :headers => {'x-elastic-product' => 'Elasticsearch'})
117
113
  end
118
114
 
119
115
  def stub_nonexistent_data_stream?(name="foo", url="http://localhost:9200")
120
- stub_request(:get, "#{url}/_data_stream/#{name}").to_return(:status => [404, TRANSPORT_CLASS::Transport::Errors::NotFound])
116
+ stub_request(:get, "#{url}/_data_stream/#{name}").to_return(:status => [404, TRANSPORT_CLASS::Transport::Errors::NotFound], :headers => {'x-elastic-product' => 'Elasticsearch'})
121
117
  end
122
118
 
123
119
  def stub_nonexistent_ilm?(name="foo_ilm_policy", url="http://localhost:9200")
124
- stub_request(:get, "#{url}/#{ilm_endpoint}/policy/#{name}").to_return(:status => [404, TRANSPORT_CLASS::Transport::Errors::NotFound])
120
+ stub_request(:get, "#{url}/#{ilm_endpoint}/policy/#{name}").to_return(:status => [404, TRANSPORT_CLASS::Transport::Errors::NotFound], :headers => {'x-elastic-product' => 'Elasticsearch'})
125
121
  end
126
122
 
127
123
  def stub_nonexistent_template?(name="foo_tpl", url="http://localhost:9200")
128
- stub_request(:get, "#{url}/_index_template/#{name}").to_return(:status => [404, TRANSPORT_CLASS::Transport::Errors::NotFound])
124
+ stub_request(:get, "#{url}/_index_template/#{name}").to_return(:status => [404, TRANSPORT_CLASS::Transport::Errors::NotFound], :headers => {'x-elastic-product' => 'Elasticsearch'})
129
125
  end
130
126
 
131
127
 
@@ -141,7 +137,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
141
137
 
142
138
  def stub_nonexistent_template_retry?(name="foo_tpl", url="http://localhost:9200")
143
139
  stub_request(:get, "#{url}/_index_template/#{name}").
144
- to_return({ status: 500, body: 'Internal Server Error' }, { status: 404, body: '{}' })
140
+ to_return({ status: 500, body: 'Internal Server Error' }, { status: 404, body: '{}', :headers => {'x-elastic-product' => 'Elasticsearch'} })
145
141
  end
146
142
 
147
143
  def stub_bulk_feed(datastream_name="foo", ilm_name="foo_ilm_policy", template_name="foo_tpl", url="http://localhost:9200")
@@ -150,19 +146,19 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
150
146
  # {"create": {}}\nhttp://localhost:9200/_ilm/policy/foo_ilm_bar
151
147
  # {"@timestamp": ...}
152
148
  push_bulk_request(req.body)
153
- end
149
+ end.to_return({:status => 200, :body => "{}", :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } })
154
150
  stub_request(:post, "#{url}/#{ilm_name}/_bulk").with do |req|
155
151
  # bulk data must be pair of OP and records
156
152
  # {"create": {}}\nhttp://localhost:9200/_ilm/policy/foo_ilm_bar
157
153
  # {"@timestamp": ...}
158
154
  push_bulk_request(req.body)
159
- end
155
+ end.to_return({:status => 200, :body => "{}", :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } })
160
156
  stub_request(:post, "#{url}/#{template_name}/_bulk").with do |req|
161
157
  # bulk data must be pair of OP and records
162
158
  # {"create": {}}\nhttp://localhost:9200/_ilm/policy/foo_ilm_bar
163
159
  # {"@timestamp": ...}
164
160
  push_bulk_request(req.body)
165
- end
161
+ end.to_return({:status => 200, :body => "{}", :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } })
166
162
  end
167
163
 
168
164
  def stub_elastic_info(url="http://localhost:9200/", version=elasticsearch_version, headers={})
@@ -189,7 +185,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
189
185
  stub_request(:post, url).with do |req|
190
186
  index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
191
187
  @index_command_counts[url] += index_cmds.size
192
- end
188
+ end.to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
193
189
  end
194
190
 
195
191
  def data_stream_supported?
@@ -588,7 +584,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
588
584
 
589
585
  stub_default
590
586
  stub_request(:post, "http://localhost:9200/foo/_bulk").
591
- to_return(status: 200, body: "", headers: {})
587
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
592
588
 
593
589
  instance = driver(config).instance
594
590
 
@@ -626,7 +622,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
626
622
 
627
623
  stub_default
628
624
  stub_request(:post, "http://localhost:9200/foo/_bulk").
629
- to_return(status: 200, body: "", headers: {})
625
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
630
626
 
631
627
  instance = driver(config).instance
632
628
 
@@ -849,7 +845,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
849
845
  stub_elastic_with_store_index_command_counts("http://#{host}:#{port}/foo_bar/_bulk")
850
846
  stub_elastic_info("http://#{host}:#{port}/")
851
847
  stub_request(:get, "http://#{host}:#{port}/_data_stream/foo_bar").
852
- to_return(status: 200, body: "", headers: {})
848
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
853
849
  end
854
850
 
855
851
  conf = config_element(
@@ -919,7 +915,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
919
915
 
920
916
  stub_default
921
917
  elastic_request = stub_request(:post, "http://localhost:9200/foo/_bulk").
922
- to_return(:status => 200, :headers => {'Content-Type' => 'application/json'}, :body => compressed_body)
918
+ to_return(:status => 200, :headers => {'Content-Type' => 'application/json', 'x-elastic-product' => 'Elasticsearch'}, :body => compressed_body)
923
919
 
924
920
  driver(config)
925
921
  driver.run(default_tag: 'test') do
@@ -945,7 +941,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
945
941
  stub_data_stream
946
942
 
947
943
  stub_request(:put, "http://localhost:9200/#{ilm_endpoint}/policy/foo_ilm_policy").
948
- to_return(:status => 200, :body => "", :headers => {})
944
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
949
945
 
950
946
  assert_nothing_raised {
951
947
  driver(config)
@@ -970,7 +966,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
970
966
  stub_data_stream
971
967
 
972
968
  stub_request(:put, "http://localhost:9200/#{ilm_endpoint}/policy/foo_ilm_policy").
973
- to_return(:status => 200, :body => "", :headers => {})
969
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
974
970
 
975
971
  assert_nothing_raised {
976
972
  driver(config)
@@ -999,7 +995,7 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
999
995
  stub_nonexistent_template?("foo_template")
1000
996
 
1001
997
  stub_request(:put, "http://localhost:9200/#{ilm_endpoint}/policy/foo_ilm_policy").
1002
- to_return(:status => 200, :body => "", :headers => {})
998
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1003
999
 
1004
1000
  assert_nothing_raised {
1005
1001
  driver(config)
@@ -67,7 +67,7 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
67
67
  def stub_elastic(url="http://localhost:9200/_bulk")
68
68
  stub_request(:post, url).with do |req|
69
69
  @index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
70
- end
70
+ end.to_return({:status => 200, :body => "", :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } })
71
71
  end
72
72
 
73
73
  def stub_elastic_info(url="http://localhost:9200/", version=elasticsearch_version)
@@ -92,7 +92,7 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
92
92
  stub_request(:post, url).with do |req|
93
93
  index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
94
94
  @index_command_counts[url] += index_cmds.size
95
- end
95
+ end.to_return({:status => 200, :body => "", :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } })
96
96
  end
97
97
 
98
98
  def assert_logs_include(logs, msg, exp_matches=1)
@@ -182,7 +182,7 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
182
182
  end
183
183
 
184
184
  stub_request(:post, "http://localhost:9200/_bulk").
185
- to_return(status: 200, body: "", headers: {})
185
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
186
186
  stub_elastic_info
187
187
  driver.run(default_tag: 'test') do
188
188
  driver.feed(sample_record)
@@ -215,7 +215,7 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
215
215
  end
216
216
 
217
217
  stub_request(:post, "http://localhost:9200/_bulk").
218
- to_return(status: 200, body: "", headers: {})
218
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
219
219
  stub_elastic_info
220
220
  driver.run(default_tag: 'test') do
221
221
  driver.feed(sample_record)
@@ -387,13 +387,15 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
387
387
 
388
388
  def test_content_type_header
389
389
  stub_request(:head, "http://localhost:9200/").
390
- to_return(:status => 200, :body => "", :headers => {})
390
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
391
391
  if Elasticsearch::VERSION >= "6.0.2"
392
392
  elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
393
- with(headers: { "Content-Type" => "application/x-ndjson" })
393
+ with(headers: { "Content-Type" => "application/x-ndjson"}).
394
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
394
395
  else
395
396
  elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
396
- with(headers: { "Content-Type" => "application/json" })
397
+ with(headers: { "Content-Type" => "application/json"}).
398
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
397
399
  end
398
400
  stub_elastic_info('http://localhost:9200')
399
401
 
@@ -444,7 +446,7 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
444
446
  compressed_body = gzip(bodystr, Zlib::DEFAULT_COMPRESSION)
445
447
 
446
448
  elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
447
- to_return(:status => 200, :headers => {'Content-Type' => 'Application/json'}, :body => compressed_body)
449
+ to_return(:status => 200, :headers => {'Content-Type' => 'Application/json', 'x-elastic-product' => 'Elasticsearch'}, :body => compressed_body)
448
450
  stub_elastic_info
449
451
 
450
452
  driver(config)
@@ -1122,7 +1124,7 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
1122
1124
  stub_request(:post, "http://localhost:9200/_bulk").with do |req|
1123
1125
  connection_resets += 1
1124
1126
  raise Faraday::ConnectionFailed, "Test message"
1125
- end
1127
+ end.to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1126
1128
  stub_elastic_info
1127
1129
 
1128
1130
  assert_raise(Fluent::Plugin::ElasticsearchOutput::RecoverableRequestFailure) {
@@ -1139,7 +1141,7 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
1139
1141
  stub_request(:post, "http://localhost:9200/_bulk").with do |req|
1140
1142
  connection_resets += 1
1141
1143
  raise ZeroDivisionError, "any not host_unreachable_exceptions exception"
1142
- end
1144
+ end.to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1143
1145
  stub_elastic_info
1144
1146
 
1145
1147
  driver.configure("reconnect_on_error true\n")
@@ -1166,7 +1168,7 @@ class ElasticsearchOutputDynamic < Test::Unit::TestCase
1166
1168
  stub_request(:post, "http://localhost:9200/_bulk").with do |req|
1167
1169
  connection_resets += 1
1168
1170
  raise ZeroDivisionError, "any not host_unreachable_exceptions exception"
1169
- end
1171
+ end.to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1170
1172
  stub_elastic_info
1171
1173
 
1172
1174
  driver.configure("reconnect_on_error false\n")
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: 5.3.0
4
+ version: 5.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - diogo
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-04-11 00:00:00.000000000 Z
13
+ date: 2023-11-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: fluentd
@@ -251,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
251
  - !ruby/object:Gem::Version
252
252
  version: '0'
253
253
  requirements: []
254
- rubygems_version: 3.3.26
254
+ rubygems_version: 3.4.6
255
255
  signing_key:
256
256
  specification_version: 4
257
257
  summary: Elasticsearch output plugin for Fluent event collector