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.
@@ -57,6 +57,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
57
57
  Gem::Version.create(::TRANSPORT_CLASS::VERSION) >= Gem::Version.new("7.14.0")
58
58
  end
59
59
 
60
+ def elastic_perform_request_refactored?
61
+ Gem::Version.create(Elasticsearch::VERSION) >= Gem::Version.new("8.8.0")
62
+ end
63
+
60
64
  def elastic_transport_layer?
61
65
  Gem::Version.create(::TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
62
66
  end
@@ -84,7 +88,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
84
88
  def stub_elastic(url="http://localhost:9200/_bulk")
85
89
  stub_request(:post, url).with do |req|
86
90
  @index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
87
- end
91
+ end.to_return({:status => 200, :body => "", :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } })
88
92
  end
89
93
 
90
94
  def stub_elastic_all_requests(url="http://localhost:9200/_bulk")
@@ -92,7 +96,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
92
96
  stub_request(:post, url).with do |req|
93
97
  @index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
94
98
  @index_cmds_all_requests << @index_cmds
95
- end
99
+ end.to_return({:status => 200, :body => "", :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } })
96
100
  end
97
101
 
98
102
  def stub_elastic_unavailable(url="http://localhost:9200/_bulk")
@@ -112,7 +116,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
112
116
  stub_request(:post, url).with do |req|
113
117
  index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
114
118
  @index_command_counts[url] += index_cmds.size
115
- end
119
+ end.to_return({:status => 200, :body => "{}", :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } })
116
120
  end
117
121
 
118
122
  def make_response_body(req, error_el = nil, error_status = nil, error = nil)
@@ -179,7 +183,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
179
183
  "reason" => "Invalid format: \"...\""
180
184
  }
181
185
  }
182
- stub_request(:post, url).to_return(lambda { |req| { :status => 200, :body => make_response_body(req, 1, 400, error), :headers => { 'Content-Type' => 'json' } } })
186
+ stub_request(:post, url).to_return(lambda { |req| { :status => 200, :body => make_response_body(req, 1, 400, error), :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } } })
183
187
  end
184
188
 
185
189
  def stub_elastic_bulk_error(url="http://localhost:9200/_bulk")
@@ -187,7 +191,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
187
191
  "type" => "some-unrecognized-error",
188
192
  "reason" => "some message printed here ...",
189
193
  }
190
- stub_request(:post, url).to_return(lambda { |req| { :status => 200, :body => make_response_body(req, 1, 500, error), :headers => { 'Content-Type' => 'json' } } })
194
+ stub_request(:post, url).to_return(lambda { |req| { :status => 200, :body => make_response_body(req, 1, 500, error), :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } } })
191
195
  end
192
196
 
193
197
  def stub_elastic_bulk_rejected(url="http://localhost:9200/_bulk")
@@ -196,7 +200,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
196
200
  "type" => "es_rejected_execution_exception",
197
201
  "reason" => "rejected execution of org.elasticsearch.transport.TransportService$4@1a34d37a on EsThreadPoolExecutor[bulk, queue capacity = 50, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@312a2162[Running, pool size = 32, active threads = 32, queued tasks = 50, completed tasks = 327053]]"
198
202
  }
199
- stub_request(:post, url).to_return(lambda { |req| { :status => 200, :body => make_response_body(req, 1, 429, error), :headers => { 'Content-Type' => 'json' } } })
203
+ stub_request(:post, url).to_return(lambda { |req| { :status => 200, :body => make_response_body(req, 1, 429, error), :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } } })
200
204
  end
201
205
 
202
206
  def stub_elastic_out_of_memory(url="http://localhost:9200/_bulk")
@@ -205,7 +209,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
205
209
  "type" => "out_of_memory_error",
206
210
  "reason" => "Java heap space"
207
211
  }
208
- stub_request(:post, url).to_return(lambda { |req| { :status => 200, :body => make_response_body(req, 1, 500, error), :headers => { 'Content-Type' => 'json' } } })
212
+ stub_request(:post, url).to_return(lambda { |req| { :status => 200, :body => make_response_body(req, 1, 500, error), :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } } })
209
213
  end
210
214
 
211
215
  def stub_elastic_unexpected_response_op(url="http://localhost:9200/_bulk")
@@ -213,7 +217,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
213
217
  "category" => "some-other-type",
214
218
  "reason" => "some-other-reason"
215
219
  }
216
- stub_request(:post, url).to_return(lambda { |req| bodystr = make_response_body(req, 0, 500, error); body = JSON.parse(bodystr); body['items'][0]['unknown'] = body['items'][0].delete('create'); { :status => 200, :body => body.to_json, :headers => { 'Content-Type' => 'json' } } })
220
+ stub_request(:post, url).to_return(lambda { |req| bodystr = make_response_body(req, 0, 500, error); body = JSON.parse(bodystr); body['items'][0]['unknown'] = body['items'][0].delete('create'); { :status => 200, :body => body.to_json, :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } } })
217
221
  end
218
222
 
219
223
  def assert_logs_include(logs, msg, exp_matches=1)
@@ -324,7 +328,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
324
328
  end
325
329
 
326
330
  stub_request(:post, "http://localhost:9200/_bulk").
327
- to_return(status: 200, body: "", headers: {})
331
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
328
332
  stub_elastic_info
329
333
  driver.run(default_tag: 'test') do
330
334
  driver.feed(sample_record)
@@ -357,7 +361,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
357
361
  end
358
362
 
359
363
  stub_request(:post, "http://localhost:9200/_bulk").
360
- to_return(status: 200, body: "", headers: {})
364
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch' })
361
365
  stub_elastic_info
362
366
  driver.run(default_tag: 'test') do
363
367
  driver.feed(sample_record)
@@ -458,7 +462,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
458
462
 
459
463
  def stub_elastic_info_bad(url="http://localhost:9200/", version="6.4.2")
460
464
  body ="{\"version\":{\"number\":\"#{version}\",\"build_flavor\":\"default\"},\"tagline\":\"You Know, for Search\"}"
461
- stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'text/plain' } })
465
+ stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'text/plain', 'x-elastic-product' => 'Elasticsearch'} })
462
466
  end
463
467
 
464
468
  test 'handle invalid client.info' do
@@ -474,7 +478,11 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
474
478
  scheme https
475
479
  @log_level info
476
480
  }
477
- if elastic_transport_layer?
481
+ if elastic_perform_request_refactored?
482
+ d = create_driver(config, 8, "\"8.8.0\"")
483
+ logs = d.logs
484
+ assert_logs_include(logs, /Detected ES 7.x: `_doc` will be used as the document `_type`./)
485
+ elsif elastic_transport_layer?
478
486
  assert_raise(NoMethodError) do
479
487
  d = create_driver(config, 8, "\"8.0.0\"")
480
488
  end
@@ -516,11 +524,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
516
524
  end
517
525
 
518
526
  def ilm_endpoint
519
- if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
520
- '_enrich'.freeze
521
- else
522
- '_ilm'.freeze
523
- end
527
+ '_ilm'.freeze
524
528
  end
525
529
 
526
530
  data("legacy_template" => [true, "_template"],
@@ -543,22 +547,22 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
543
547
  use_legacy_template #{use_legacy_template_flag}
544
548
  }
545
549
  stub_request(:get, "http://localhost:9200/#{endpoint}/fluentd").
546
- to_return(status: 200, body: "", headers: {})
550
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
547
551
  stub_request(:head, "http://localhost:9200/_alias/fluentd").
548
- to_return(status: 404, body: "", headers: {})
552
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
549
553
  stub_request(:put, "http://localhost:9200/%3Cfluentd-default-%7Bnow%2Fd%7D-000001%3E/#{alias_endpoint}/fluentd").
550
554
  with(body: "{\"aliases\":{\"fluentd\":{\"is_write_index\":true}}}").
551
- to_return(status: 200, body: "", headers: {})
555
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
552
556
  stub_request(:put, "http://localhost:9200/%3Cfluentd-default-%7Bnow%2Fd%7D-000001%3E").
553
- to_return(status: 200, body: "", headers: {})
557
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
554
558
  stub_request(:get, "http://localhost:9200/_xpack").
555
559
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}',
556
- :headers => {"Content-Type"=> "application/json"})
560
+ :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
557
561
  stub_request(:get, "http://localhost:9200/#{ilm_endpoint}/policy/logstash-policy").
558
- to_return(status: 404, body: "", headers: {})
562
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
559
563
  stub_request(:put, "http://localhost:9200/#{ilm_endpoint}/policy/logstash-policy").
560
564
  with(body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
561
- to_return(status: 200, body: "", headers: {})
565
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
562
566
  stub_elastic_info
563
567
 
564
568
  assert_nothing_raised {
@@ -588,22 +592,22 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
588
592
  use_legacy_template #{use_legacy_template_flag}
589
593
  }
590
594
  stub_request(:get, "http://localhost:9200/#{endpoint}/fluentd").
591
- to_return(status: 200, body: "", headers: {})
595
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
592
596
  stub_request(:head, "http://localhost:9200/_alias/fluentd").
593
- to_return(status: 404, body: "", headers: {})
597
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
594
598
  stub_request(:put, "http://localhost:9200/%3Cfluentd-default-%7Bnow%2Fd%7D-000001%3E/#{alias_endpoint}/fluentd").
595
599
  with(body: "{\"aliases\":{\"fluentd\":{\"is_write_index\":true}}}").
596
- to_return(status: 200, body: "", headers: {})
600
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
597
601
  stub_request(:put, "http://localhost:9200/%3Cfluentd-default-%7Bnow%2Fd%7D-000001%3E").
598
- to_return(status: 200, body: "", headers: {})
602
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
599
603
  stub_request(:get, "http://localhost:9200/_xpack").
600
604
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}',
601
- :headers => {"Content-Type"=> "application/json"})
605
+ :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
602
606
  stub_request(:get, "http://localhost:9200/#{ilm_endpoint}/policy/logstash-policy").
603
- to_return(status: 200, body: "", headers: {})
607
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
604
608
  stub_request(:put, "http://localhost:9200/#{ilm_endpoint}/policy/logstash-policy").
605
609
  with(body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"75gb\",\"max_age\":\"50d\"}}}}}}").
606
- to_return(status: 200, body: "", headers: {})
610
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
607
611
  stub_elastic_info
608
612
 
609
613
  assert_nothing_raised {
@@ -954,11 +958,11 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
954
958
  # connection start
955
959
  stub_request(:head, "https://logs.google.com:777/es//").
956
960
  with(basic_auth: ['john', 'doe']).
957
- to_return(:status => 200, :body => "", :headers => {})
961
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
958
962
  # check if template exists
959
963
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
960
964
  with(basic_auth: ['john', 'doe']).
961
- to_return(:status => 200, :body => "", :headers => {})
965
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
962
966
  stub_elastic_info("https://logs.google.com:777/es//")
963
967
 
964
968
  driver(config)
@@ -995,15 +999,15 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
995
999
  # connection start
996
1000
  stub_request(:head, "https://logs.google.com:777/es//").
997
1001
  with(basic_auth: ['john', 'doe']).
998
- to_return(:status => 200, :body => "", :headers => {})
1002
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
999
1003
  # check if template exists
1000
1004
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1001
1005
  with(basic_auth: ['john', 'doe']).
1002
- to_return(:status => 404, :body => "", :headers => {})
1006
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1003
1007
  # creation
1004
1008
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1005
1009
  with(basic_auth: ['john', 'doe']).
1006
- to_return(:status => 200, :body => "", :headers => {})
1010
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1007
1011
  stub_elastic_info("https://logs.google.com:777/es//")
1008
1012
 
1009
1013
  driver(config)
@@ -1043,27 +1047,27 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1043
1047
  # connection start
1044
1048
  stub_request(:head, "https://logs.google.com:777/es//").
1045
1049
  with(basic_auth: ['john', 'doe']).
1046
- to_return(:status => 200, :body => "", :headers => {})
1050
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1047
1051
  # check if template exists
1048
1052
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash-test.template").
1049
1053
  with(basic_auth: ['john', 'doe']).
1050
- to_return(:status => 404, :body => "", :headers => {})
1054
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1051
1055
  # create template
1052
1056
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash-test.template").
1053
1057
  with(basic_auth: ['john', 'doe']).
1054
- to_return(:status => 200, :body => "", :headers => {})
1058
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1055
1059
  # check if alias exists
1056
1060
  stub_request(:head, "https://logs.google.com:777/es//_alias/myapp_deflector-test.template").
1057
1061
  with(basic_auth: ['john', 'doe']).
1058
- to_return(:status => 404, :body => "", :headers => {})
1062
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1059
1063
  # put the alias for the index
1060
1064
  stub_request(:put, "https://logs.google.com:777/es//%3Cfluentd-test.template-default-000001%3E").
1061
1065
  with(basic_auth: ['john', 'doe']).
1062
- to_return(status: 200, body: "", headers: {})
1066
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1063
1067
  stub_request(:put, "https://logs.google.com:777/es//%3Cfluentd-test.template-default-000001%3E/#{alias_endpoint}/myapp_deflector-test.template").
1064
1068
  with(basic_auth: ['john', 'doe'],
1065
1069
  body: "{\"aliases\":{\"myapp_deflector-test.template\":{\"is_write_index\":true}}}").
1066
- to_return(:status => 200, :body => "", :headers => {})
1070
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1067
1071
 
1068
1072
  driver(config)
1069
1073
 
@@ -1113,27 +1117,27 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1113
1117
  # connection start
1114
1118
  stub_request(:head, "https://logs.google.com:777/es//").
1115
1119
  with(basic_auth: ['john', 'doe']).
1116
- to_return(:status => 200, :body => "", :headers => {})
1120
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1117
1121
  # check if template exists
1118
1122
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash-test.template").
1119
1123
  with(basic_auth: ['john', 'doe']).
1120
- to_return(:status => 404, :body => "", :headers => {})
1124
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1121
1125
  # create template
1122
1126
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash-test.template").
1123
1127
  with(basic_auth: ['john', 'doe']).
1124
- to_return(:status => 200, :body => "", :headers => {})
1128
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1125
1129
  # check if alias exists
1126
1130
  stub_request(:head, "https://logs.google.com:777/es//_alias/myapp_deflector-test.template").
1127
1131
  with(basic_auth: ['john', 'doe']).
1128
- to_return(:status => 404, :body => "", :headers => {})
1132
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1129
1133
  # put the alias for the index
1130
1134
  stub_request(:put, "https://logs.google.com:777/es//%3Cfluentd-test.template-default-000001%3E").
1131
1135
  with(basic_auth: ['john', 'doe']).
1132
- to_return(status: 200, body: "", headers: {})
1136
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1133
1137
  stub_request(:put, "https://logs.google.com:777/es//%3Cfluentd-test.template-default-000001%3E/#{alias_endpoint}/myapp_deflector-test.template").
1134
1138
  with(basic_auth: ['john', 'doe'],
1135
1139
  body: "{\"aliases\":{\"myapp_deflector-test.template\":{\"is_write_index\":true}}}").
1136
- to_return(:status => 200, :body => "", :headers => {})
1140
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1137
1141
  stub_elastic_info("https://logs.google.com:777/es//")
1138
1142
 
1139
1143
  driver(config)
@@ -1171,11 +1175,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1171
1175
  end
1172
1176
 
1173
1177
  def ilm_endpoint
1174
- if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
1175
- '_enrich'.freeze
1176
- else
1177
- '_ilm'.freeze
1178
- end
1178
+ '_ilm'.freeze
1179
1179
  end
1180
1180
 
1181
1181
  data("legacy_template" => [true, "_template"],
@@ -1210,51 +1210,51 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1210
1210
  # connection start
1211
1211
  stub_request(:head, "https://logs.google.com:777/es//").
1212
1212
  with(basic_auth: ['john', 'doe']).
1213
- to_return(:status => 200, :body => "", :headers => {})
1213
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1214
1214
  # check if template exists
1215
1215
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1216
1216
  with(basic_auth: ['john', 'doe']).
1217
- to_return(:status => 404, :body => "", :headers => {})
1217
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1218
1218
  # creation
1219
1219
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1220
1220
  with(basic_auth: ['john', 'doe']).
1221
- to_return(:status => 200, :body => "", :headers => {})
1221
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1222
1222
  # check if alias exists
1223
1223
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash").
1224
1224
  with(basic_auth: ['john', 'doe']).
1225
- to_return(:status => 404, :body => "", :headers => {})
1225
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1226
1226
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1227
1227
  with(basic_auth: ['john', 'doe']).
1228
- to_return(status: 404, body: "", headers: {})
1228
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1229
1229
  if use_legacy_template_flag
1230
1230
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1231
1231
  with(basic_auth: ['john', 'doe'],
1232
1232
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"logstash-*\",\"order\":51}").
1233
- to_return(status: 200, body: "", headers: {})
1233
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1234
1234
  else
1235
1235
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1236
1236
  with(basic_auth: ['john', 'doe'],
1237
1237
  body: "{\"index_patterns\":\"logstash-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":101}").
1238
- to_return(status: 200, body: "", headers: {})
1238
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1239
1239
  end
1240
1240
  # put the alias for the index
1241
1241
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
1242
1242
  with(basic_auth: ['john', 'doe']).
1243
- to_return(:status => 200, :body => "", :headers => {})
1243
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1244
1244
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/logstash").
1245
1245
  with(basic_auth: ['john', 'doe'],
1246
1246
  :body => "{\"aliases\":{\"logstash\":{\"is_write_index\":true}}}").
1247
- to_return(:status => 200, :body => "", :headers => {})
1247
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1248
1248
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1249
1249
  with(basic_auth: ['john', 'doe']).
1250
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1250
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
1251
1251
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1252
1252
  with(basic_auth: ['john', 'doe']).
1253
- to_return(:status => 404, :body => "", :headers => {})
1253
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1254
1254
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1255
1255
  with(basic_auth: ['john', 'doe'],
1256
1256
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
1257
- to_return(:status => 200, :body => "", :headers => {})
1257
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1258
1258
  stub_elastic_info("https://logs.google.com:777/es//")
1259
1259
 
1260
1260
  driver(config)
@@ -1296,52 +1296,52 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1296
1296
  # connection start
1297
1297
  stub_request(:head, "https://logs.google.com:777/es//").
1298
1298
  with(basic_auth: ['john', 'doe']).
1299
- to_return(:status => 200, :body => "", :headers => {})
1299
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1300
1300
  # check if template exists
1301
1301
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash-#{date_str}").
1302
1302
  with(basic_auth: ['john', 'doe']).
1303
- to_return(:status => 404, :body => "", :headers => {})
1303
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1304
1304
  # creation
1305
1305
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash-#{date_str}").
1306
1306
  with(basic_auth: ['john', 'doe']).
1307
- to_return(:status => 200, :body => "", :headers => {})
1307
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1308
1308
  # check if alias exists
1309
1309
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash-#{date_str}").
1310
1310
  with(basic_auth: ['john', 'doe']).
1311
- to_return(:status => 404, :body => "", :headers => {})
1311
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1312
1312
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash-#{date_str}").
1313
1313
  with(basic_auth: ['john', 'doe']).
1314
- to_return(status: 404, body: "", headers: {})
1314
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1315
1315
  if use_legacy_template_flag
1316
1316
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash-#{date_str}").
1317
1317
  with(basic_auth: ['john', 'doe'],
1318
1318
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash-log-#{date_str}\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"logstash-log-#{date_str}-*\",\"order\":53}").
1319
- to_return(status: 200, body: "", headers: {})
1319
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1320
1320
  else
1321
1321
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash-#{date_str}").
1322
1322
  with(basic_auth: ['john', 'doe'],
1323
1323
  body: "{\"index_patterns\":\"logstash-log-2020.09.21-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash-2020.09.21\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":103}").
1324
- to_return(status: 200, body: "", headers: {})
1324
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1325
1325
  end
1326
1326
  # put the alias for the index
1327
1327
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-log-#{date_str}-000001%3E").
1328
1328
  with(basic_auth: ['john', 'doe']).
1329
- to_return(:status => 200, :body => "", :headers => {})
1329
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1330
1330
 
1331
1331
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-log-#{date_str}-000001%3E/#{alias_endpoint}/logstash-#{date_str}").
1332
1332
  with(basic_auth: ['john', 'doe'],
1333
1333
  body: "{\"aliases\":{\"logstash-#{date_str}\":{\"is_write_index\":true}}}").
1334
- to_return(status: 200, body: "", headers: {})
1334
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1335
1335
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1336
1336
  with(basic_auth: ['john', 'doe']).
1337
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1337
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
1338
1338
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1339
1339
  with(basic_auth: ['john', 'doe']).
1340
- to_return(:status => 404, :body => "", :headers => {})
1340
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1341
1341
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1342
1342
  with(basic_auth: ['john', 'doe'],
1343
1343
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
1344
- to_return(:status => 200, :body => "", :headers => {})
1344
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1345
1345
  stub_elastic_info("https://logs.google.com:777/es//")
1346
1346
 
1347
1347
  driver(config)
@@ -1389,51 +1389,51 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1389
1389
  # connection start
1390
1390
  stub_request(:head, "https://logs.google.com:777/es//").
1391
1391
  with(basic_auth: ['john', 'doe']).
1392
- to_return(:status => 200, :body => "", :headers => {})
1392
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1393
1393
  # check if template exists
1394
1394
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1395
1395
  with(basic_auth: ['john', 'doe']).
1396
- to_return(:status => 404, :body => "", :headers => {})
1396
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1397
1397
  # creation
1398
1398
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1399
1399
  with(basic_auth: ['john', 'doe']).
1400
- to_return(:status => 200, :body => "", :headers => {})
1400
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1401
1401
  # check if alias exists
1402
1402
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash").
1403
1403
  with(basic_auth: ['john', 'doe']).
1404
- to_return(:status => 404, :body => "", :headers => {})
1404
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1405
1405
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1406
1406
  with(basic_auth: ['john', 'doe']).
1407
- to_return(status: 404, body: "", headers: {})
1407
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1408
1408
  if use_legacy_template_flag
1409
1409
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1410
1410
  with(basic_auth: ['john', 'doe'],
1411
1411
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"logstash-*\",\"order\":51}").
1412
- to_return(status: 200, body: "", headers: {})
1412
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1413
1413
  else
1414
1414
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1415
1415
  with(basic_auth: ['john', 'doe'],
1416
1416
  body: "{\"index_patterns\":\"logstash-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":101}").
1417
- to_return(status: 200, body: "", headers: {})
1417
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1418
1418
  end
1419
1419
  # put the alias for the index
1420
1420
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
1421
1421
  with(basic_auth: ['john', 'doe']).
1422
- to_return(:status => 200, :body => "", :headers => {})
1422
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1423
1423
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/logstash").
1424
1424
  with(basic_auth: ['john', 'doe'],
1425
1425
  :body => "{\"aliases\":{\"logstash\":{\"is_write_index\":true}}}").
1426
- to_return(:status => 200, :body => "", :headers => {})
1426
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1427
1427
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1428
1428
  with(basic_auth: ['john', 'doe']).
1429
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1429
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
1430
1430
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1431
1431
  with(basic_auth: ['john', 'doe']).
1432
- to_return(:status => 200, :body => "", :headers => {})
1432
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1433
1433
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1434
1434
  with(basic_auth: ['john', 'doe'],
1435
1435
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"60gb\",\"max_age\":\"45d\"}}}}}}").
1436
- to_return(:status => 200, :body => "", :headers => {})
1436
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1437
1437
  stub_elastic_info("https://logs.google.com:777/es//")
1438
1438
 
1439
1439
  driver(config)
@@ -1498,51 +1498,51 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1498
1498
  # connection start
1499
1499
  stub_request(:head, "https://logs.google.com:777/es//").
1500
1500
  with(basic_auth: ['john', 'doe']).
1501
- to_return(:status => 200, :body => "", :headers => {})
1501
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1502
1502
  # check if template exists
1503
1503
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1504
1504
  with(basic_auth: ['john', 'doe']).
1505
- to_return(:status => 404, :body => "", :headers => {})
1505
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1506
1506
  # creation
1507
1507
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1508
1508
  with(basic_auth: ['john', 'doe']).
1509
- to_return(:status => 200, :body => "", :headers => {})
1509
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1510
1510
  # check if alias exists
1511
1511
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash").
1512
1512
  with(basic_auth: ['john', 'doe']).
1513
- to_return(:status => 404, :body => "", :headers => {})
1513
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1514
1514
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1515
1515
  with(basic_auth: ['john', 'doe']).
1516
- to_return(status: 404, body: "", headers: {})
1516
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1517
1517
  if use_legacy_template_flag
1518
1518
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_deflector").
1519
1519
  with(basic_auth: ['john', 'doe'],
1520
1520
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"logstash-*\",\"order\":51}").
1521
- to_return(status: 200, body: "", headers: {})
1521
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1522
1522
  else
1523
1523
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_deflector").
1524
1524
  with(basic_auth: ['john', 'doe'],
1525
1525
  body: "{\"index_patterns\":\"logstash-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":101}").
1526
- to_return(status: 200, body: "", headers: {})
1526
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1527
1527
  end
1528
1528
  # put the alias for the index
1529
1529
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-000001%3E").
1530
1530
  with(basic_auth: ['john', 'doe']).
1531
- to_return(:status => 200, :body => "", :headers => {})
1531
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1532
1532
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-000001%3E/#{alias_endpoint}/logstash").
1533
1533
  with(basic_auth: ['john', 'doe'],
1534
1534
  :body => "{\"aliases\":{\"logstash\":{\"is_write_index\":true}}}").
1535
- to_return(:status => 200, :body => "", :headers => {})
1535
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1536
1536
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1537
1537
  with(basic_auth: ['john', 'doe']).
1538
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1538
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
1539
1539
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1540
1540
  with(basic_auth: ['john', 'doe']).
1541
- to_return(:status => 404, :body => "", :headers => {})
1541
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1542
1542
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1543
1543
  with(basic_auth: ['john', 'doe'],
1544
1544
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
1545
- to_return(:status => 200, :body => "", :headers => {})
1545
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1546
1546
  stub_elastic_info("https://logs.google.com:777/es//")
1547
1547
 
1548
1548
  driver(config)
@@ -1584,50 +1584,50 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1584
1584
  # connection start
1585
1585
  stub_request(:head, "https://logs.google.com:777/es//").
1586
1586
  with(basic_auth: ['john', 'doe']).
1587
- to_return(:status => 200, :body => "", :headers => {})
1587
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1588
1588
  # check if template exists
1589
1589
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1590
1590
  with(basic_auth: ['john', 'doe']).
1591
- to_return(:status => 404, :body => "", :headers => {})
1591
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1592
1592
  # creation
1593
1593
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1594
1594
  with(basic_auth: ['john', 'doe']).
1595
- to_return(:status => 200, :body => "", :headers => {})
1595
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1596
1596
  # check if alias exists
1597
1597
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash").
1598
1598
  with(basic_auth: ['john', 'doe']).
1599
- to_return(:status => 404, :body => "", :headers => {})
1599
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1600
1600
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1601
1601
  with(basic_auth: ['john', 'doe']).
1602
- to_return(status: 404, body: "", headers: {})
1602
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1603
1603
  if use_legacy_template_flag
1604
1604
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1605
1605
  with(basic_auth: ['john', 'doe'],
1606
1606
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"myalogs\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"mylogs-*\",\"order\":51}").
1607
- to_return(status: 200, body: "", headers: {})
1607
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1608
1608
  else
1609
1609
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1610
1610
  with(basic_auth: ['john', 'doe'],
1611
1611
  body: "{\"index_patterns\":\"logstash-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":101}").
1612
- to_return(status: 200, body: "", headers: {})
1612
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1613
1613
  end
1614
1614
  # put the alias for the index
1615
1615
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
1616
1616
  with(basic_auth: ['john', 'doe']).
1617
- to_return(:status => 200, :body => "", :headers => {})
1617
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1618
1618
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/logstash").
1619
1619
  with(body: "{\"aliases\":{\"logstash\":{\"is_write_index\":true}}}").
1620
- to_return(status: 200, body: "", headers: {})
1620
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1621
1621
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1622
1622
  with(basic_auth: ['john', 'doe']).
1623
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1623
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
1624
1624
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1625
1625
  with(basic_auth: ['john', 'doe']).
1626
- to_return(:status => 404, :body => "", :headers => {})
1626
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1627
1627
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1628
1628
  with(basic_auth: ['john', 'doe'],
1629
1629
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
1630
- to_return(:status => 200, :body => "", :headers => {})
1630
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1631
1631
  stub_elastic_info("https://logs.google.com:777/es//")
1632
1632
 
1633
1633
  driver(config)
@@ -1669,50 +1669,50 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1669
1669
  # connection start
1670
1670
  stub_request(:head, "https://logs.google.com:777/es//").
1671
1671
  with(basic_auth: ['john', 'doe']).
1672
- to_return(:status => 200, :body => "", :headers => {})
1672
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1673
1673
  # check if template exists
1674
1674
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1675
1675
  with(basic_auth: ['john', 'doe']).
1676
- to_return(:status => 404, :body => "", :headers => {})
1676
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1677
1677
  # creation
1678
1678
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1679
1679
  with(basic_auth: ['john', 'doe']).
1680
- to_return(:status => 200, :body => "", :headers => {})
1680
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1681
1681
  # check if alias exists
1682
1682
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash").
1683
1683
  with(basic_auth: ['john', 'doe']).
1684
- to_return(:status => 404, :body => "", :headers => {})
1684
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1685
1685
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1686
1686
  with(basic_auth: ['john', 'doe']).
1687
- to_return(status: 404, body: "", headers: {})
1687
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1688
1688
  if use_legacy_template_flag
1689
1689
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1690
1690
  with(basic_auth: ['john', 'doe'],
1691
1691
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"myalogs\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"mylogs-*\",\"order\":51}").
1692
- to_return(status: 200, body: "", headers: {})
1692
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1693
1693
  else
1694
1694
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1695
1695
  with(basic_auth: ['john', 'doe'],
1696
1696
  body: "{\"index_patterns\":\"logstash-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":101}").
1697
- to_return(status: 200, body: "", headers: {})
1697
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1698
1698
  end
1699
1699
  # put the alias for the index
1700
1700
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
1701
1701
  with(basic_auth: ['john', 'doe']).
1702
- to_return(:status => 200, :body => "", :headers => {})
1702
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1703
1703
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/logstash").
1704
1704
  with(body: "{\"aliases\":{\"logstash\":{\"is_write_index\":true}}}").
1705
- to_return(status: 200, body: "", headers: {})
1705
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1706
1706
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1707
1707
  with(basic_auth: ['john', 'doe']).
1708
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1708
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
1709
1709
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1710
1710
  with(basic_auth: ['john', 'doe']).
1711
- to_return(:status => 404, :body => "", :headers => {})
1711
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1712
1712
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1713
1713
  with(basic_auth: ['john', 'doe'],
1714
1714
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
1715
- to_return(:status => 200, :body => "", :headers => {})
1715
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1716
1716
  stub_elastic_info("https://logs.google.com:777/es//")
1717
1717
 
1718
1718
  driver(config)
@@ -1761,50 +1761,50 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1761
1761
  # connection start
1762
1762
  stub_request(:head, "https://logs.google.com:777/es//").
1763
1763
  with(basic_auth: ['john', 'doe']).
1764
- to_return(:status => 200, :body => "", :headers => {})
1764
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1765
1765
  # check if template exists
1766
1766
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1767
1767
  with(basic_auth: ['john', 'doe']).
1768
- to_return(:status => 404, :body => "", :headers => {})
1768
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1769
1769
  # creation
1770
1770
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1771
1771
  with(basic_auth: ['john', 'doe']).
1772
- to_return(:status => 200, :body => "", :headers => {})
1772
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1773
1773
  # check if alias exists
1774
1774
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash").
1775
1775
  with(basic_auth: ['john', 'doe']).
1776
- to_return(:status => 404, :body => "", :headers => {})
1776
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1777
1777
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1778
1778
  with(basic_auth: ['john', 'doe']).
1779
- to_return(status: 404, body: "", headers: {})
1779
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1780
1780
  if use_legacy_template_flag
1781
1781
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1782
1782
  with(basic_auth: ['john', 'doe'],
1783
1783
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"myalogs\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"mylogs-*\",\"order\":51}").
1784
- to_return(status: 200, body: "", headers: {})
1784
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1785
1785
  else
1786
1786
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1787
1787
  with(basic_auth: ['john', 'doe'],
1788
1788
  body: "{\"index_patterns\":\"logstash-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":101}").
1789
- to_return(status: 200, body: "", headers: {})
1789
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1790
1790
  end
1791
1791
  # put the alias for the index
1792
1792
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
1793
1793
  with(basic_auth: ['john', 'doe']).
1794
- to_return(:status => 200, :body => "", :headers => {})
1794
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1795
1795
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/logstash").
1796
1796
  with(body: "{\"aliases\":{\"logstash\":{\"is_write_index\":true}}}").
1797
- to_return(status: 200, body: "", headers: {})
1797
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1798
1798
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1799
1799
  with(basic_auth: ['john', 'doe']).
1800
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1800
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
1801
1801
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1802
1802
  with(basic_auth: ['john', 'doe']).
1803
- to_return(:status => 404, :body => "", :headers => {})
1803
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1804
1804
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1805
1805
  with(basic_auth: ['john', 'doe'],
1806
1806
  body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
1807
- to_return(:status => 200, :body => "", :headers => {})
1807
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1808
1808
  stub_elastic_info("https://logs.google.com:777/es//")
1809
1809
 
1810
1810
  driver(config)
@@ -1852,50 +1852,50 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1852
1852
  # connection start
1853
1853
  stub_request(:head, "https://logs.google.com:777/es//").
1854
1854
  with(basic_auth: ['john', 'doe']).
1855
- to_return(:status => 200, :body => "", :headers => {})
1855
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1856
1856
  # check if template exists
1857
1857
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1858
1858
  with(basic_auth: ['john', 'doe']).
1859
- to_return(:status => 404, :body => "", :headers => {})
1859
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1860
1860
  # creation
1861
1861
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1862
1862
  with(basic_auth: ['john', 'doe']).
1863
- to_return(:status => 200, :body => "", :headers => {})
1863
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1864
1864
  # check if alias exists
1865
1865
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash").
1866
1866
  with(basic_auth: ['john', 'doe']).
1867
- to_return(:status => 404, :body => "", :headers => {})
1867
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1868
1868
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1869
1869
  with(basic_auth: ['john', 'doe']).
1870
- to_return(status: 404, body: "", headers: {})
1870
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1871
1871
  if use_legacy_template_flag
1872
1872
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1873
1873
  with(basic_auth: ['john', 'doe'],
1874
1874
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"fluentd-policy2\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"logstash-*\",\"order\":51}").
1875
- to_return(status: 200, body: "", headers: {})
1875
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1876
1876
  else
1877
1877
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1878
1878
  with(basic_auth: ['john', 'doe'],
1879
1879
  body: "{\"index_patterns\":\"logstash-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"fluentd-policy2\",\"index.lifecycle.rollover_alias\":\"logstash\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":101}").
1880
- to_return(status: 200, body: "", headers: {})
1880
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1881
1881
  end
1882
1882
  # put the alias for the index
1883
1883
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
1884
1884
  with(basic_auth: ['john', 'doe']).
1885
- to_return(:status => 200, :body => "", :headers => {})
1885
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1886
1886
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/logstash").
1887
1887
  with(body: "{\"aliases\":{\"logstash\":{\"is_write_index\":true}}}").
1888
- to_return(status: 200, body: "", headers: {})
1888
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1889
1889
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1890
1890
  with(basic_auth: ['john', 'doe']).
1891
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1891
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
1892
1892
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy2").
1893
1893
  with(basic_auth: ['john', 'doe']).
1894
- to_return(:status => 404, :body => "", :headers => {})
1894
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1895
1895
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy2").
1896
1896
  with(basic_auth: ['john', 'doe'],
1897
1897
  body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"80gb\",\"max_age\":\"20d\"}}}}}}").
1898
- to_return(:status => 200, :body => "", :headers => {})
1898
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1899
1899
  stub_elastic_info("https://logs.google.com:777/es//")
1900
1900
 
1901
1901
  driver(config)
@@ -1942,86 +1942,86 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1942
1942
  # connection start
1943
1943
  stub_request(:head, "https://logs.google.com:777/es//").
1944
1944
  with(basic_auth: ['john', 'doe']).
1945
- to_return(:status => 200, :body => "", :headers => {})
1945
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1946
1946
  # check if template exists
1947
1947
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
1948
1948
  with(basic_auth: ['john', 'doe']).
1949
- to_return(:status => 404, :body => "", :headers => {})
1949
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1950
1950
  # creation
1951
1951
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
1952
1952
  with(basic_auth: ['john', 'doe']).
1953
- to_return(:status => 200, :body => "", :headers => {})
1953
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1954
1954
  # check if alias exists
1955
1955
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash-tag1").
1956
1956
  with(basic_auth: ['john', 'doe']).
1957
- to_return(:status => 404, :body => "", :headers => {})
1957
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1958
1958
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash-tag1").
1959
1959
  with(basic_auth: ['john', 'doe']).
1960
- to_return(status: 404, body: "", headers: {})
1960
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1961
1961
  if use_legacy_template_flag
1962
1962
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash-tag1").
1963
1963
  with(basic_auth: ['john', 'doe'],
1964
1964
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash-tag1\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"logstash-tag1-*\",\"order\":52}").
1965
- to_return(status: 200, body: "", headers: {})
1965
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1966
1966
  else
1967
1967
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash-tag1").
1968
1968
  with(basic_auth: ['john', 'doe'],
1969
1969
  body: "{\"index_patterns\":\"logstash-tag1-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash-tag1\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":102}").
1970
- to_return(status: 200, body: "", headers: {})
1970
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1971
1971
  end
1972
1972
  # put the alias for the index
1973
1973
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-tag1-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
1974
1974
  with(basic_auth: ['john', 'doe']).
1975
- to_return(:status => 200, :body => "", :headers => {})
1975
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1976
1976
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-tag1-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/logstash-tag1").
1977
1977
  with(basic_auth: ['john', 'doe'],
1978
1978
  :body => "{\"aliases\":{\"logstash-tag1\":{\"is_write_index\":true}}}").
1979
- to_return(:status => 200, :body => "", :headers => {})
1979
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1980
1980
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1981
1981
  with(basic_auth: ['john', 'doe']).
1982
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1982
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
1983
1983
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1984
1984
  with(basic_auth: ['john', 'doe']).
1985
- to_return(:status => 404, :body => "", :headers => {})
1985
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1986
1986
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1987
1987
  with(basic_auth: ['john', 'doe'],
1988
1988
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
1989
- to_return(:status => 200, :body => "", :headers => {})
1989
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1990
1990
  # check if alias exists
1991
1991
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash-tag2").
1992
1992
  with(basic_auth: ['john', 'doe']).
1993
- to_return(:status => 404, :body => "", :headers => {})
1993
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
1994
1994
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash-tag2").
1995
1995
  with(basic_auth: ['john', 'doe']).
1996
- to_return(status: 404, body: "", headers: {})
1996
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
1997
1997
  if use_legacy_template_flag
1998
1998
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash-tag2").
1999
1999
  with(basic_auth: ['john', 'doe'],
2000
2000
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash-tag2\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"logstash-tag2-*\",\"order\":52}").
2001
- to_return(status: 200, body: "", headers: {})
2001
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2002
2002
  else
2003
2003
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash-tag2").
2004
2004
  with(basic_auth: ['john', 'doe'],
2005
2005
  body: "{\"index_patterns\":\"logstash-tag2-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash-tag2\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":102}").
2006
- to_return(status: 200, body: "", headers: {})
2006
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2007
2007
  end # put the alias for the index
2008
2008
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-tag2-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
2009
2009
  with(basic_auth: ['john', 'doe']).
2010
- to_return(:status => 200, :body => "", :headers => {})
2010
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2011
2011
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash-tag2-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/logstash-tag2").
2012
2012
  with(basic_auth: ['john', 'doe'],
2013
2013
  :body => "{\"aliases\":{\"logstash-tag2\":{\"is_write_index\":true}}}").
2014
- to_return(:status => 200, :body => "", :headers => {})
2014
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2015
2015
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2016
2016
  with(basic_auth: ['john', 'doe']).
2017
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2017
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
2018
2018
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2019
2019
  with(basic_auth: ['john', 'doe']).
2020
- to_return(:status => 404, :body => "", :headers => {})
2020
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2021
2021
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2022
2022
  with(basic_auth: ['john', 'doe'],
2023
2023
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2024
- to_return(:status => 200, :body => "", :headers => {})
2024
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2025
2025
  stub_elastic_info("https://logs.google.com:777/es//")
2026
2026
 
2027
2027
  driver(config)
@@ -2074,51 +2074,51 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2074
2074
  # connection start
2075
2075
  stub_request(:head, "https://logs.google.com:777/es//").
2076
2076
  with(basic_auth: ['john', 'doe']).
2077
- to_return(:status => 200, :body => "", :headers => {})
2077
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2078
2078
  # check if template exists
2079
2079
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
2080
2080
  with(basic_auth: ['john', 'doe']).
2081
- to_return(:status => 404, :body => "", :headers => {})
2081
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2082
2082
  # creation
2083
2083
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
2084
2084
  with(basic_auth: ['john', 'doe']).
2085
- to_return(:status => 200, :body => "", :headers => {})
2085
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2086
2086
  # check if alias exists
2087
2087
  stub_request(:head, "https://logs.google.com:777/es//_alias/logstash.tag1").
2088
2088
  with(basic_auth: ['john', 'doe']).
2089
- to_return(:status => 404, :body => "", :headers => {})
2089
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2090
2090
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash.tag1").
2091
2091
  with(basic_auth: ['john', 'doe']).
2092
- to_return(status: 404, body: "", headers: {})
2092
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2093
2093
  if use_legacy_template_flag
2094
2094
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash.tag1").
2095
2095
  with(basic_auth: ['john', 'doe'],
2096
2096
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash.tag1\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"logstash.tag1.*\",\"order\":52}").
2097
- to_return(status: 200, body: "", headers: {})
2097
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2098
2098
  else
2099
2099
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash.tag1").
2100
2100
  with(basic_auth: ['john', 'doe'],
2101
2101
  body: "{\"index_patterns\":\"logstash.tag1.*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"logstash.tag1\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":102}").
2102
- to_return(status: 200, body: "", headers: {})
2102
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2103
2103
  end
2104
2104
  # put the alias for the index
2105
2105
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash.tag1.default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
2106
2106
  with(basic_auth: ['john', 'doe']).
2107
- to_return(:status => 200, :body => "", :headers => {})
2107
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2108
2108
  stub_request(:put, "https://logs.google.com:777/es//%3Clogstash.tag1.default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/logstash.tag1").
2109
2109
  with(basic_auth: ['john', 'doe'],
2110
2110
  :body => "{\"aliases\":{\"logstash.tag1\":{\"is_write_index\":true}}}").
2111
- to_return(:status => 200, :body => "", :headers => {})
2111
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2112
2112
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2113
2113
  with(basic_auth: ['john', 'doe']).
2114
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2114
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
2115
2115
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2116
2116
  with(basic_auth: ['john', 'doe']).
2117
- to_return(:status => 404, :body => "", :headers => {})
2117
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2118
2118
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2119
2119
  with(basic_auth: ['john', 'doe'],
2120
2120
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2121
- to_return(:status => 200, :body => "", :headers => {})
2121
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2122
2122
  stub_elastic_info("https://logs.google.com:777/es//")
2123
2123
 
2124
2124
  driver(config)
@@ -2177,45 +2177,45 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2177
2177
  # connection start
2178
2178
  stub_request(:head, "https://logs.google.com:777/es//").
2179
2179
  with(basic_auth: ['john', 'doe']).
2180
- to_return(:status => 200, :body => "", :headers => {})
2180
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2181
2181
  # check if template exists
2182
2182
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/#{task_def_value}-#{date_str}").
2183
2183
  with(basic_auth: ['john', 'doe']).
2184
- to_return(:status => 404, :body => "", :headers => {})
2184
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2185
2185
  # creation
2186
2186
  if use_legacy_template_flag
2187
2187
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/#{task_def_value}-#{date_str}").
2188
2188
  with(basic_auth: ['john', 'doe'],
2189
2189
  body: "{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"#{task_def_value}-#{date_str}\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}},\"index_patterns\":\"#{task_def_value}-#{date_str}-*\",\"order\":52}").
2190
- to_return(:status => 200, :body => "", :headers => {})
2190
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2191
2191
  else
2192
2192
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/#{task_def_value}-#{date_str}").
2193
2193
  with(basic_auth: ['john', 'doe'],
2194
2194
  body: "{\"index_patterns\":\"task_definition-#{date_str}-*\",\"template\":{\"settings\":{\"number_of_shards\":1,\"index.lifecycle.name\":\"logstash-policy\",\"index.lifecycle.rollover_alias\":\"task_definition-#{date_str}\"},\"mappings\":{\"type1\":{\"_source\":{\"enabled\":false},\"properties\":{\"host_name\":{\"type\":\"string\",\"index\":\"not_analyzed\"},\"created_at\":{\"type\":\"date\",\"format\":\"EEE MMM dd HH:mm:ss Z YYYY\"}}}}},\"priority\":102}").
2195
- to_return(:status => 200, :body => "", :headers => {})
2195
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2196
2196
  end
2197
2197
  # check if alias exists
2198
2198
  stub_request(:head, "https://logs.google.com:777/es//_alias/#{task_def_value}-#{date_str}").
2199
2199
  with(basic_auth: ['john', 'doe']).
2200
- to_return(:status => 404, :body => "", :headers => {})
2200
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2201
2201
  # put the alias for the index
2202
2202
  stub_request(:put, "https://logs.google.com:777/es//%3C#{task_def_value}-#{date_str}-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
2203
2203
  with(basic_auth: ['john', 'doe']).
2204
- to_return(:status => 200, :body => "", :headers => {})
2204
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2205
2205
  stub_request(:put, "https://logs.google.com:777/es//%3C#{task_def_value}-#{date_str}-default-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/#{task_def_value}-#{date_str}").
2206
2206
  with(basic_auth: ['john', 'doe'],
2207
2207
  :body => "{\"aliases\":{\"#{task_def_value}-#{date_str}\":{\"is_write_index\":true}}}").
2208
- to_return(:status => 200, :body => "", :headers => {})
2208
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2209
2209
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2210
2210
  with(basic_auth: ['john', 'doe']).
2211
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2211
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
2212
2212
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2213
2213
  with(basic_auth: ['john', 'doe']).
2214
- to_return(:status => 404, :body => "", :headers => {})
2214
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2215
2215
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2216
2216
  with(basic_auth: ['john', 'doe'],
2217
2217
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2218
- to_return(:status => 200, :body => "", :headers => {})
2218
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2219
2219
  stub_elastic_info("https://logs.google.com:777/es//")
2220
2220
 
2221
2221
  driver(config)
@@ -2263,15 +2263,15 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2263
2263
  # connection start
2264
2264
  stub_request(:head, "https://logs.google.com:777/es//").
2265
2265
  with(basic_auth: ['john', 'doe']).
2266
- to_return(:status => 200, :body => "", :headers => {})
2266
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2267
2267
  # check if template exists
2268
2268
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2269
2269
  with(basic_auth: ['john', 'doe']).
2270
- to_return(:status => 404, :body => "", :headers => {})
2270
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2271
2271
  # creation
2272
2272
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2273
2273
  with(basic_auth: ['john', 'doe']).
2274
- to_return(:status => 200, :body => "", :headers => {})
2274
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2275
2275
  stub_elastic_info("https://logs.google.com:777/es//")
2276
2276
 
2277
2277
  driver(config)
@@ -2309,18 +2309,18 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2309
2309
  # connection start
2310
2310
  stub_request(:head, "https://logs.google.com:777/es//").
2311
2311
  with(basic_auth: ['john', 'doe']).
2312
- to_return(:status => 200, :body => "", :headers => {})
2312
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2313
2313
  # check if template exists
2314
2314
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template-test.template").
2315
2315
  with(basic_auth: ['john', 'doe']).
2316
- to_return(:status => 404, :body => "", :headers => {})
2316
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2317
2317
  # creation
2318
2318
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template-test.template").
2319
2319
  with(basic_auth: ['john', 'doe']).
2320
- to_return(:status => 200, :body => "", :headers => {})
2320
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2321
2321
 
2322
2322
  stub_request(:put, "https://logs.google.com:777/es//%3Cfluentd-test-default-000001%3E").
2323
- to_return(status: 200, body: "", headers: {})
2323
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2324
2324
 
2325
2325
  driver(config)
2326
2326
 
@@ -2365,14 +2365,14 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2365
2365
  # connection start
2366
2366
  stub_request(:head, "https://logs-test.google.com:777/es//").
2367
2367
  with(basic_auth: ['john', 'doe']).
2368
- to_return(:status => 200, :body => "", :headers => {})
2368
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2369
2369
  # check if template exists
2370
2370
  stub_request(:get, "https://logs-test.google.com:777/es//#{endpoint}/logstash").
2371
2371
  with(basic_auth: ['john', 'doe']).
2372
- to_return(:status => 404, :body => "", :headers => {})
2372
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2373
2373
  stub_request(:put, "https://logs-test.google.com:777/es//#{endpoint}/logstash").
2374
2374
  with(basic_auth: ['john', 'doe']).
2375
- to_return(status: 200, body: "", headers: {})
2375
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2376
2376
 
2377
2377
  driver(config)
2378
2378
 
@@ -2417,27 +2417,27 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2417
2417
  # connection start
2418
2418
  stub_request(:head, "https://logs.google.com:777/es//").
2419
2419
  with(basic_auth: ['john', 'doe']).
2420
- to_return(:status => 200, :body => "", :headers => {})
2420
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2421
2421
  # check if template exists
2422
2422
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2423
2423
  with(basic_auth: ['john', 'doe']).
2424
- to_return(:status => 404, :body => "", :headers => {})
2424
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2425
2425
  # creation
2426
2426
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2427
2427
  with(basic_auth: ['john', 'doe']).
2428
- to_return(:status => 200, :body => "", :headers => {})
2428
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2429
2429
  # creation of index which can rollover
2430
2430
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
2431
2431
  with(basic_auth: ['john', 'doe']).
2432
- to_return(:status => 200, :body => "", :headers => {})
2432
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2433
2433
  # check if alias exists
2434
2434
  stub_request(:head, "https://logs.google.com:777/es//_alias/mylogs").
2435
2435
  with(basic_auth: ['john', 'doe']).
2436
- to_return(:status => 404, :body => "", :headers => {})
2436
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2437
2437
  # put the alias for the index
2438
2438
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/mylogs").
2439
2439
  with(basic_auth: ['john', 'doe']).
2440
- to_return(:status => 200, :body => "", :headers => {})
2440
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2441
2441
  stub_elastic_info("https://logs.google.com:777/es//")
2442
2442
 
2443
2443
  driver(config)
@@ -2480,27 +2480,27 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2480
2480
  # connection start
2481
2481
  stub_request(:head, "https://logs.google.com:777/es//").
2482
2482
  with(basic_auth: ['john', 'doe']).
2483
- to_return(:status => 200, :body => "", :headers => {})
2483
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2484
2484
  # check if template exists
2485
2485
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2486
2486
  with(basic_auth: ['john', 'doe']).
2487
- to_return(:status => 404, :body => "", :headers => {})
2487
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2488
2488
  # creation
2489
2489
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2490
2490
  with(basic_auth: ['john', 'doe']).
2491
- to_return(:status => 200, :body => "", :headers => {})
2491
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2492
2492
  # creation of index which can rollover
2493
2493
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
2494
2494
  with(basic_auth: ['john', 'doe']).
2495
- to_return(:status => 200, :body => "", :headers => {})
2495
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2496
2496
  # check if alias exists
2497
2497
  stub_request(:head, "https://logs.google.com:777/es//_alias/myapp_deflector").
2498
2498
  with(basic_auth: ['john', 'doe']).
2499
- to_return(:status => 404, :body => "", :headers => {})
2499
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2500
2500
  # put the alias for the index
2501
2501
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/myapp_deflector").
2502
2502
  with(basic_auth: ['john', 'doe']).
2503
- to_return(:status => 200, :body => "", :headers => {})
2503
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2504
2504
  stub_elastic_info("https://logs.google.com:777/es//")
2505
2505
 
2506
2506
  driver(config)
@@ -2544,28 +2544,28 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2544
2544
  # connection start
2545
2545
  stub_request(:head, "https://logs.google.com:777/es//").
2546
2546
  with(basic_auth: ['john', 'doe']).
2547
- to_return(:status => 200, :body => "", :headers => {})
2547
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2548
2548
  # check if template exists
2549
2549
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2550
2550
  with(basic_auth: ['john', 'doe']).
2551
- to_return(:status => 404, :body => "", :headers => {})
2551
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2552
2552
  # creation
2553
2553
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2554
2554
  with(basic_auth: ['john', 'doe']).
2555
- to_return(:status => 200, :body => "", :headers => {})
2555
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2556
2556
  # creation of index which can rollover
2557
2557
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-#{timestr}-000001%3E").
2558
2558
  with(basic_auth: ['john', 'doe']).
2559
- to_return(:status => 200, :body => "", :headers => {})
2559
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2560
2560
  # check if alias exists
2561
2561
  stub_request(:head, "https://logs.google.com:777/es//_alias/mylogs-#{timestr}").
2562
2562
  with(basic_auth: ['john', 'doe']).
2563
- to_return(:status => 404, :body => "", :headers => {})
2563
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2564
2564
  # put the alias for the index
2565
2565
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-#{timestr}-000001%3E/#{alias_endpoint}/mylogs-#{timestr}").
2566
2566
  with(basic_auth: ['john', 'doe'],
2567
2567
  body: "{\"aliases\":{\"mylogs-#{timestr}\":{\"is_write_index\":true}}}").
2568
- to_return(:status => 200, :body => "", :headers => {})
2568
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2569
2569
 
2570
2570
  driver(config)
2571
2571
 
@@ -2593,11 +2593,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2593
2593
 
2594
2594
 
2595
2595
  def ilm_endpoint
2596
- if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
2597
- '_enrich'.freeze
2598
- else
2599
- '_ilm'.freeze
2600
- end
2596
+ '_ilm'.freeze
2601
2597
  end
2602
2598
 
2603
2599
  data("legacy_template" => [true, "_template"],
@@ -2635,52 +2631,52 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2635
2631
  # connection start
2636
2632
  stub_request(:head, "https://logs.google.com:777/es//").
2637
2633
  with(basic_auth: ['john', 'doe']).
2638
- to_return(:status => 200, :body => "", :headers => {})
2634
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2639
2635
  # check if template exists
2640
2636
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2641
2637
  with(basic_auth: ['john', 'doe']).
2642
- to_return(:status => 404, :body => "", :headers => {})
2638
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2643
2639
  # creation
2644
2640
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2645
2641
  with(basic_auth: ['john', 'doe']).
2646
- to_return(:status => 200, :body => "", :headers => {})
2642
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2647
2643
  # creation of index which can rollover
2648
2644
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
2649
2645
  with(basic_auth: ['john', 'doe']).
2650
- to_return(:status => 200, :body => "", :headers => {})
2646
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2651
2647
  # check if alias exists
2652
2648
  stub_request(:head, "https://logs.google.com:777/es//_alias/mylogs").
2653
2649
  with(basic_auth: ['john', 'doe']).
2654
- to_return(:status => 404, :body => "", :headers => {})
2650
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2655
2651
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/mylogs").
2656
2652
  with(basic_auth: ['john', 'doe']).
2657
- to_return(status: 404, body: "", headers: {})
2653
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2658
2654
  if use_legacy_template_flag
2659
2655
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs").
2660
2656
  with(basic_auth: ['john', 'doe'],
2661
2657
  body: "{\"order\":6,\"settings\":{\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"mylogs\"},\"mappings\":{},\"aliases\":{\"myapp-logs-alias\":{}},\"index_patterns\":\"mylogs-*\"}").
2662
- to_return(status: 200, body: "", headers: {})
2658
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2663
2659
  else
2664
2660
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs").
2665
2661
  with(basic_auth: ['john', 'doe'],
2666
2662
  body: "{\"priority\":106,\"index_patterns\":\"mylogs-*\",\"template\":{\"settings\":{\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"mylogs\"},\"mappings\":{},\"aliases\":{\"myapp-logs-alias\":{}}}}").
2667
- to_return(status: 200, body: "", headers: {})
2663
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2668
2664
  end
2669
2665
  # put the alias for the index
2670
2666
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/mylogs").
2671
2667
  with(basic_auth: ['john', 'doe'],
2672
2668
  :body => "{\"aliases\":{\"mylogs\":{\"is_write_index\":true}}}").
2673
- to_return(:status => 200, :body => "", :headers => {})
2669
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2674
2670
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2675
2671
  with(basic_auth: ['john', 'doe']).
2676
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2672
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
2677
2673
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2678
2674
  with(basic_auth: ['john', 'doe']).
2679
- to_return(:status => 404, :body => "", :headers => {})
2675
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2680
2676
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2681
2677
  with(basic_auth: ['john', 'doe'],
2682
2678
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2683
- to_return(:status => 200, :body => "", :headers => {})
2679
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2684
2680
  stub_elastic_info("https://logs.google.com:777/es//")
2685
2681
  driver(config)
2686
2682
 
@@ -2724,52 +2720,52 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2724
2720
  # connection start
2725
2721
  stub_request(:head, "https://logs.google.com:777/es//").
2726
2722
  with(basic_auth: ['john', 'doe']).
2727
- to_return(:status => 200, :body => "", :headers => {})
2723
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2728
2724
  # check if template exists
2729
2725
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2730
2726
  with(basic_auth: ['john', 'doe']).
2731
- to_return(:status => 404, :body => "", :headers => {})
2727
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2732
2728
  # creation
2733
2729
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2734
2730
  with(basic_auth: ['john', 'doe']).
2735
- to_return(:status => 200, :body => "", :headers => {})
2731
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2736
2732
  # creation of index which can rollover
2737
2733
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
2738
2734
  with(basic_auth: ['john', 'doe']).
2739
- to_return(:status => 200, :body => "", :headers => {})
2735
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2740
2736
  # check if alias exists
2741
2737
  stub_request(:head, "https://logs.google.com:777/es//_alias/mylogs").
2742
2738
  with(basic_auth: ['john', 'doe']).
2743
- to_return(:status => 404, :body => "", :headers => {})
2739
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2744
2740
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/mylogs").
2745
2741
  with(basic_auth: ['john', 'doe']).
2746
- to_return(status: 404, body: "", headers: {})
2742
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2747
2743
  if use_legacy_template_flag
2748
2744
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs").
2749
2745
  with(basic_auth: ['john', 'doe'],
2750
2746
  body: "{\"order\":6,\"settings\":{\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"mylogs\"},\"mappings\":{},\"aliases\":{\"myapp-logs-alias\":{}},\"index_patterns\":\"mylogs-*\"}").
2751
- to_return(status: 200, body: "", headers: {})
2747
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2752
2748
  else
2753
2749
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs").
2754
2750
  with(basic_auth: ['john', 'doe'],
2755
2751
  body: "{\"priority\":106,\"index_patterns\":\"mylogs-*\",\"template\":{\"settings\":{\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"mylogs\"},\"mappings\":{},\"aliases\":{\"myapp-logs-alias\":{}}}}").
2756
- to_return(status: 200, body: "", headers: {})
2752
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2757
2753
  end
2758
2754
  # put the alias for the index
2759
2755
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/mylogs").
2760
2756
  with(basic_auth: ['john', 'doe'],
2761
2757
  :body => "{\"aliases\":{\"mylogs\":{\"is_write_index\":true}}}").
2762
- to_return(:status => 200, :body => "", :headers => {})
2758
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2763
2759
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2764
2760
  with(basic_auth: ['john', 'doe']).
2765
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2761
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
2766
2762
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2767
2763
  with(basic_auth: ['john', 'doe']).
2768
- to_return(:status => 200, :body => "", :headers => {})
2764
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2769
2765
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2770
2766
  with(basic_auth: ['john', 'doe'],
2771
2767
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"60gb\",\"max_age\":\"45d\"}}}}}}").
2772
- to_return(:status => 200, :body => "", :headers => {})
2768
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2773
2769
  stub_elastic_info("https://logs.google.com:777/es//")
2774
2770
 
2775
2771
  driver(config)
@@ -2841,101 +2837,101 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2841
2837
  # connection start
2842
2838
  stub_request(:head, "https://logs.google.com:777/es//").
2843
2839
  with(basic_auth: ['john', 'doe']).
2844
- to_return(:status => 200, :body => "", :headers => {})
2840
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2845
2841
 
2846
2842
  # test-tag1
2847
2843
  # check if template exists
2848
2844
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2849
2845
  with(basic_auth: ['john', 'doe']).
2850
- to_return(:status => 404, :body => "", :headers => {})
2846
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2851
2847
  # creation
2852
2848
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2853
2849
  with(basic_auth: ['john', 'doe']).
2854
- to_return(:status => 200, :body => "", :headers => {})
2850
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2855
2851
  # creation of index which can rollover
2856
2852
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-test-tag1-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
2857
2853
  with(basic_auth: ['john', 'doe']).
2858
- to_return(:status => 200, :body => "", :headers => {})
2854
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2859
2855
  # check if alias exists
2860
2856
  stub_request(:head, "https://logs.google.com:777/es//_alias/mylogs-test-tag1").
2861
2857
  with(basic_auth: ['john', 'doe']).
2862
- to_return(:status => 404, :body => "", :headers => {})
2858
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2863
2859
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/mylogs-test-tag1").
2864
2860
  with(basic_auth: ['john', 'doe']).
2865
- to_return(status: 404, body: "", headers: {})
2861
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2866
2862
  if use_legacy_template_flag
2867
2863
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs-test-tag1").
2868
2864
  with(basic_auth: ['john', 'doe'],
2869
2865
  body: "{\"order\":8,\"settings\":{\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"mylogs-test-tag1\"},\"mappings\":{},\"aliases\":{\"myapp-logs-alias\":{}},\"index_patterns\":\"mylogs-test-tag1-*\"}").
2870
- to_return(status: 200, body: "", headers: {})
2866
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2871
2867
  else
2872
2868
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs-test-tag1").
2873
2869
  with(basic_auth: ['john', 'doe'],
2874
2870
  body: "{\"priority\":108,\"index_patterns\":\"mylogs-test-tag1-*\",\"template\":{\"settings\":{\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"mylogs-test-tag1\"},\"mappings\":{},\"aliases\":{\"myapp-logs-alias\":{}}}}").
2875
- to_return(status: 200, body: "", headers: {})
2871
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2876
2872
  end
2877
2873
  # put the alias for the index
2878
2874
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-test-tag1-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/mylogs-test-tag1").
2879
2875
  with(basic_auth: ['john', 'doe'],
2880
2876
  :body => "{\"aliases\":{\"mylogs-test-tag1\":{\"is_write_index\":true}}}").
2881
- to_return(:status => 200, :body => "", :headers => {})
2877
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2882
2878
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2883
2879
  with(basic_auth: ['john', 'doe']).
2884
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2880
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
2885
2881
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2886
2882
  with(basic_auth: ['john', 'doe']).
2887
- to_return(:status => 404, :body => "", :headers => {})
2883
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2888
2884
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2889
2885
  with(basic_auth: ['john', 'doe'],
2890
2886
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2891
- to_return(:status => 200, :body => "", :headers => {})
2887
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2892
2888
 
2893
2889
  # test-tag2
2894
2890
  # check if template exists
2895
2891
  stub_request(:get, "https://logs.google.com:777/es//_template/myapp_alias_template").
2896
2892
  with(basic_auth: ['john', 'doe']).
2897
- to_return(:status => 404, :body => "", :headers => {})
2893
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2898
2894
  # creation
2899
2895
  stub_request(:put, "https://logs.google.com:777/es//_template/myapp_alias_template").
2900
2896
  with(basic_auth: ['john', 'doe']).
2901
- to_return(:status => 200, :body => "", :headers => {})
2897
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2902
2898
  # creation of index which can rollover
2903
2899
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-test-tag2-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
2904
2900
  with(basic_auth: ['john', 'doe']).
2905
- to_return(:status => 200, :body => "", :headers => {})
2901
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2906
2902
  # check if alias exists
2907
2903
  stub_request(:head, "https://logs.google.com:777/es//_alias/mylogs-test-tag2").
2908
2904
  with(basic_auth: ['john', 'doe']).
2909
- to_return(:status => 404, :body => "", :headers => {})
2905
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2910
2906
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/mylogs-test-tag2").
2911
2907
  with(basic_auth: ['john', 'doe']).
2912
- to_return(status: 404, body: "", headers: {})
2908
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2913
2909
  if use_legacy_template_flag
2914
2910
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs-test-tag2").
2915
2911
  with(basic_auth: ['john', 'doe'],
2916
2912
  body: "{\"order\":8,\"settings\":{\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"mylogs-test-tag2\"},\"mappings\":{},\"aliases\":{\"myapp-logs-alias\":{}},\"index_patterns\":\"mylogs-test-tag2-*\"}").
2917
- to_return(status: 200, body: "", headers: {})
2913
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2918
2914
  else
2919
2915
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs-test-tag2").
2920
2916
  with(basic_auth: ['john', 'doe'],
2921
2917
  body: "{\"priority\":108,\"index_patterns\":\"mylogs-test-tag2-*\",\"template\":{\"settings\":{\"index.lifecycle.name\":\"fluentd-policy\",\"index.lifecycle.rollover_alias\":\"mylogs-test-tag2\"},\"mappings\":{},\"aliases\":{\"myapp-logs-alias\":{}}}}").
2922
- to_return(status: 200, body: "", headers: {})
2918
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
2923
2919
  end
2924
2920
  # put the alias for the index
2925
2921
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-test-tag2-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/mylogs-test-tag2").
2926
2922
  with(basic_auth: ['john', 'doe'],
2927
2923
  :body => "{\"aliases\":{\"mylogs-test-tag2\":{\"is_write_index\":true}}}").
2928
- to_return(:status => 200, :body => "", :headers => {})
2924
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2929
2925
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2930
2926
  with(basic_auth: ['john', 'doe']).
2931
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2927
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
2932
2928
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2933
2929
  with(basic_auth: ['john', 'doe']).
2934
- to_return(:status => 404, :body => "", :headers => {})
2930
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2935
2931
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2936
2932
  with(basic_auth: ['john', 'doe'],
2937
2933
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2938
- to_return(:status => 200, :body => "", :headers => {})
2934
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2939
2935
  stub_elastic_info("https://logs.google.com:777/es//")
2940
2936
 
2941
2937
  driver(config)
@@ -2989,44 +2985,44 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2989
2985
  # connection start
2990
2986
  stub_request(:head, "https://logs.google.com:777/es//").
2991
2987
  with(basic_auth: ['john', 'doe']).
2992
- to_return(:status => 200, :body => "", :headers => {})
2988
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2993
2989
  # check if template exists
2994
2990
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2995
2991
  with(basic_auth: ['john', 'doe']).
2996
- to_return(:status => 404, :body => "", :headers => {})
2992
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
2997
2993
  # creation
2998
2994
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
2999
2995
  with(basic_auth: ['john', 'doe']).
3000
- to_return(:status => 200, :body => "", :headers => {})
2996
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3001
2997
  # creation of index which can rollover
3002
2998
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E").
3003
2999
  with(basic_auth: ['john', 'doe']).
3004
- to_return(:status => 200, :body => "", :headers => {})
3000
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3005
3001
  # check if alias exists
3006
3002
  stub_request(:head, "https://logs.google.com:777/es//_alias/mylogs").
3007
3003
  with(basic_auth: ['john', 'doe']).
3008
- to_return(:status => 404, :body => "", :headers => {})
3004
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3009
3005
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/mylogs").
3010
3006
  with(basic_auth: ['john', 'doe']).
3011
- to_return(status: 404, body: "", headers: {})
3007
+ to_return(status: 404, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
3012
3008
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs").
3013
3009
  with(basic_auth: ['john', 'doe']).
3014
- to_return(status: 200, body: "", headers: {})
3010
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
3015
3011
  # put the alias for the index
3016
3012
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/mylogs").
3017
3013
  with(basic_auth: ['john', 'doe'],
3018
3014
  :body => "{\"aliases\":{\"mylogs\":{\"is_write_index\":true}}}").
3019
- to_return(:status => 200, :body => "", :headers => {})
3015
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3020
3016
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
3021
3017
  with(basic_auth: ['john', 'doe']).
3022
- to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
3018
+ to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json", 'x-elastic-product' => 'Elasticsearch'})
3023
3019
  stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
3024
3020
  with(basic_auth: ['john', 'doe']).
3025
- to_return(:status => 404, :body => "", :headers => {})
3021
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3026
3022
  stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
3027
3023
  with(basic_auth: ['john', 'doe'],
3028
3024
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
3029
- to_return(:status => 200, :body => "", :headers => {})
3025
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3030
3026
  stub_elastic_info("https://logs.google.com:777/es//")
3031
3027
  driver(config)
3032
3028
 
@@ -3064,15 +3060,15 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3064
3060
  # connection start
3065
3061
  stub_request(:head, "https://logs.google.com:777/es//").
3066
3062
  with(basic_auth: ['john', 'doe']).
3067
- to_return(:status => 200, :body => "", :headers => {})
3063
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3068
3064
  # check if template exists
3069
3065
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
3070
3066
  with(basic_auth: ['john', 'doe']).
3071
- to_return(:status => 200, :body => "", :headers => {})
3067
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3072
3068
  # creation
3073
3069
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
3074
3070
  with(basic_auth: ['john', 'doe']).
3075
- to_return(:status => 200, :body => "", :headers => {})
3071
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3076
3072
  stub_elastic_info("https://logs.google.com:777/es//")
3077
3073
 
3078
3074
  driver(config)
@@ -3111,15 +3107,15 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3111
3107
  # connection start
3112
3108
  stub_request(:head, "https://logs.google.com:777/es//").
3113
3109
  with(basic_auth: ['john', 'doe']).
3114
- to_return(:status => 200, :body => "", :headers => {})
3110
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3115
3111
  # check if template exists
3116
3112
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
3117
3113
  with(basic_auth: ['john', 'doe']).
3118
- to_return(:status => 200, :body => "", :headers => {})
3114
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3119
3115
  # creation
3120
3116
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
3121
3117
  with(basic_auth: ['john', 'doe']).
3122
- to_return(:status => 200, :body => "", :headers => {})
3118
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3123
3119
  stub_elastic_info("https://logs.google.com:777/es//")
3124
3120
 
3125
3121
  driver(config)
@@ -3162,27 +3158,27 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3162
3158
  # connection start
3163
3159
  stub_request(:head, "https://logs.google.com:777/es//").
3164
3160
  with(basic_auth: ['john', 'doe']).
3165
- to_return(:status => 200, :body => "", :headers => {})
3161
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3166
3162
  # check if template exists
3167
3163
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
3168
3164
  with(basic_auth: ['john', 'doe']).
3169
- to_return(:status => 200, :body => "", :headers => {})
3165
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3170
3166
  # creation
3171
3167
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
3172
3168
  with(basic_auth: ['john', 'doe']).
3173
- to_return(:status => 200, :body => "", :headers => {})
3169
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3174
3170
  # creation of index which can rollover
3175
3171
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fd%7D-000001%3E").
3176
3172
  with(basic_auth: ['john', 'doe']).
3177
- to_return(:status => 200, :body => "", :headers => {})
3173
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3178
3174
  # check if alias exists
3179
3175
  stub_request(:head, "https://logs.google.com:777/es//_alias/myapp_deflector").
3180
3176
  with(basic_auth: ['john', 'doe']).
3181
- to_return(:status => 404, :body => "", :headers => {})
3177
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3182
3178
  # put the alias for the index
3183
3179
  stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fd%7D-000001%3E/#{alias_endpoint}/myapp_deflector").
3184
3180
  with(basic_auth: ['john', 'doe']).
3185
- to_return(:status => 200, :body => "", :headers => {})
3181
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3186
3182
  stub_elastic_info("https://logs.google.com:777/es//")
3187
3183
 
3188
3184
  driver(config)
@@ -3205,11 +3201,11 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3205
3201
  # connection start
3206
3202
  stub_request(:head, "https://logs.google.com:777/es//").
3207
3203
  with(basic_auth: ['john', 'doe']).
3208
- to_return(:status => 200, :body => "", :headers => {})
3204
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3209
3205
  # check if template exists
3210
3206
  stub_request(:get, "https://logs.google.com:777/es//_template/logstash").
3211
3207
  with(basic_auth: ['john', 'doe']).
3212
- to_return(:status => 404, :body => "", :headers => {})
3208
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3213
3209
  stub_elastic_info("https://logs.google.com:777/es//")
3214
3210
 
3215
3211
  assert_raise(RuntimeError) {
@@ -3248,17 +3244,17 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3248
3244
  # connection start
3249
3245
  stub_request(:head, "https://logs-test.google.com:777/es//").
3250
3246
  with(basic_auth: ['john', 'doe']).
3251
- to_return(:status => 200, :body => "", :headers => {})
3247
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3252
3248
  # check if template exists
3253
3249
  stub_request(:get, "https://logs-test.google.com:777/es//#{endpoint}/logstash").
3254
3250
  with(basic_auth: ['john', 'doe']).
3255
- to_return(:status => 404, :body => "", :headers => {})
3251
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3256
3252
  stub_request(:put, "https://logs-test.google.com:777/es//#{endpoint}/logstash").
3257
3253
  with(basic_auth: ['john', 'doe']).
3258
- to_return(status: 200, body: "", headers: {})
3254
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
3259
3255
  stub_request(:post, "https://logs-test.google.com:777/es//_bulk").
3260
3256
  with(basic_auth: ['john', 'doe']).
3261
- to_return(status: 200, body: "", headers: {})
3257
+ to_return(status: 200, body: "", headers: {'x-elastic-product' => 'Elasticsearch'})
3262
3258
 
3263
3259
  driver(config)
3264
3260
 
@@ -3339,28 +3335,28 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3339
3335
 
3340
3336
  stub_request(:head, "https://logs.google.com:777/es//").
3341
3337
  with(basic_auth: ['john', 'doe']).
3342
- to_return(:status => 200, :body => "", :headers => {})
3338
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3343
3339
  # check if template exists
3344
3340
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash1").
3345
3341
  with(basic_auth: ['john', 'doe']).
3346
- to_return(:status => 404, :body => "", :headers => {})
3342
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3347
3343
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash2").
3348
3344
  with(basic_auth: ['john', 'doe']).
3349
- to_return(:status => 404, :body => "", :headers => {})
3345
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3350
3346
 
3351
3347
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash3").
3352
3348
  with(basic_auth: ['john', 'doe']).
3353
- to_return(:status => 200, :body => "", :headers => {}) #exists
3349
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'}) #exists
3354
3350
 
3355
3351
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash1").
3356
3352
  with(basic_auth: ['john', 'doe']).
3357
- to_return(:status => 200, :body => "", :headers => {})
3353
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3358
3354
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash2").
3359
3355
  with(basic_auth: ['john', 'doe']).
3360
- to_return(:status => 200, :body => "", :headers => {})
3356
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3361
3357
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash3").
3362
3358
  with(basic_auth: ['john', 'doe']).
3363
- to_return(:status => 200, :body => "", :headers => {})
3359
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3364
3360
  stub_elastic_info("https://logs.google.com:777/es//")
3365
3361
 
3366
3362
  driver(config)
@@ -3398,27 +3394,27 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3398
3394
 
3399
3395
  stub_request(:head, "https://logs.google.com:777/es//").
3400
3396
  with(basic_auth: ['john', 'doe']).
3401
- to_return(:status => 200, :body => "", :headers => {})
3397
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3402
3398
  # check if template exists
3403
3399
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash1").
3404
3400
  with(basic_auth: ['john', 'doe']).
3405
- to_return(:status => 200, :body => "", :headers => {})
3401
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3406
3402
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash2").
3407
3403
  with(basic_auth: ['john', 'doe']).
3408
- to_return(:status => 200, :body => "", :headers => {})
3404
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3409
3405
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash3").
3410
3406
  with(basic_auth: ['john', 'doe']).
3411
- to_return(:status => 200, :body => "", :headers => {}) #exists
3407
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'}) #exists
3412
3408
 
3413
3409
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash1").
3414
3410
  with(basic_auth: ['john', 'doe']).
3415
- to_return(:status => 200, :body => "", :headers => {})
3411
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3416
3412
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash2").
3417
3413
  with(basic_auth: ['john', 'doe']).
3418
- to_return(:status => 200, :body => "", :headers => {})
3414
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3419
3415
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash3").
3420
3416
  with(basic_auth: ['john', 'doe']).
3421
- to_return(:status => 200, :body => "", :headers => {})
3417
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3422
3418
  stub_elastic_info("https://logs.google.com:777/es//")
3423
3419
 
3424
3420
  driver(config)
@@ -3457,27 +3453,27 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3457
3453
  # connection start
3458
3454
  stub_request(:head, "https://logs.google.com:777/es//").
3459
3455
  with(basic_auth: ['john', 'doe']).
3460
- to_return(:status => 200, :body => "", :headers => {})
3456
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3461
3457
  # check if template exists
3462
3458
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
3463
3459
  with(basic_auth: ['john', 'doe']).
3464
- to_return(:status => 404, :body => "", :headers => {})
3460
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3465
3461
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash1").
3466
3462
  with(basic_auth: ['john', 'doe']).
3467
- to_return(:status => 404, :body => "", :headers => {})
3463
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3468
3464
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash2").
3469
3465
  with(basic_auth: ['john', 'doe']).
3470
- to_return(:status => 404, :body => "", :headers => {})
3466
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3471
3467
  #creation
3472
3468
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
3473
3469
  with(basic_auth: ['john', 'doe']).
3474
- to_return(:status => 200, :body => "", :headers => {})
3470
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3475
3471
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash1").
3476
3472
  with(basic_auth: ['john', 'doe']).
3477
- to_return(:status => 200, :body => "", :headers => {})
3473
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3478
3474
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash2").
3479
3475
  with(basic_auth: ['john', 'doe']).
3480
- to_return(:status => 200, :body => "", :headers => {})
3476
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3481
3477
  stub_elastic_info("https://logs.google.com:777/es//")
3482
3478
 
3483
3479
  driver(config)
@@ -3514,21 +3510,21 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3514
3510
  }
3515
3511
  stub_request(:head, "https://logs.google.com:777/es//").
3516
3512
  with(basic_auth: ['john', 'doe']).
3517
- to_return(:status => 200, :body => "", :headers => {})
3513
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3518
3514
  # check if template exists
3519
3515
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash1").
3520
3516
  with(basic_auth: ['john', 'doe']).
3521
- to_return(:status => 404, :body => "", :headers => {})
3517
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3522
3518
  stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash2").
3523
3519
  with(basic_auth: ['john', 'doe']).
3524
- to_return(:status => 404, :body => "", :headers => {})
3520
+ to_return(:status => 404, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3525
3521
 
3526
3522
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash1").
3527
3523
  with(basic_auth: ['john', 'doe']).
3528
- to_return(:status => 200, :body => "", :headers => {})
3524
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3529
3525
  stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash2").
3530
3526
  with(basic_auth: ['john', 'doe']).
3531
- to_return(:status => 200, :body => "", :headers => {})
3527
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3532
3528
  stub_elastic_info("https://logs.google.com:777/es//")
3533
3529
 
3534
3530
  assert_raise(RuntimeError) {
@@ -3592,6 +3588,33 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3592
3588
  assert_equal '/default_path', host2[:path]
3593
3589
  end
3594
3590
 
3591
+ def test_hosts_list_with_existing_connection
3592
+ stub_elastic_info("https://john:password@host1:443/elastic/")
3593
+ stub_elastic_info("http://host2")
3594
+ config = %{
3595
+ path /default_path
3596
+ user default_user
3597
+ password default_password
3598
+ }
3599
+ instance = driver(config).instance
3600
+
3601
+ assert_equal 2, instance.get_connection_options("https://john:password@host1:443/elastic/,http://host2")[:hosts].length
3602
+ host1, host2 = instance.get_connection_options("https://john:password@host1:443/elastic/,http://host2")[:hosts]
3603
+
3604
+ assert_equal 'host1', host1[:host]
3605
+ assert_equal 443, host1[:port]
3606
+ assert_equal 'https', host1[:scheme]
3607
+ assert_equal 'john', host1[:user]
3608
+ assert_equal 'password', host1[:password]
3609
+ assert_equal '/elastic/', host1[:path]
3610
+
3611
+ assert_equal 'host2', host2[:host]
3612
+ assert_equal 'http', host2[:scheme]
3613
+ assert_equal 'default_user', host2[:user]
3614
+ assert_equal 'default_password', host2[:password]
3615
+ assert_equal '/default_path', host2[:path]
3616
+ end
3617
+
3595
3618
  def test_hosts_list_with_escape_placeholders
3596
3619
  config = %{
3597
3620
  hosts https://%{j+hn}:%{passw@rd}@host1:443/elastic/,http://host2
@@ -3662,6 +3685,31 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3662
3685
  assert_equal '/default_path', host2[:path]
3663
3686
  end
3664
3687
 
3688
+ def test_hosts_list_with_existing_connection
3689
+ config = %{
3690
+ path /default_path
3691
+ user default_user
3692
+ password default_password
3693
+ }
3694
+ instance = driver(config).instance
3695
+
3696
+ assert_equal 2, instance.get_connection_options("https://john:password@[2404:7a80:d440:3000:192a:a292:bd7f:ca19]:443/elastic/,http://host2")[:hosts].length
3697
+ host1, host2 = instance.get_connection_options("https://john:password@[2404:7a80:d440:3000:192a:a292:bd7f:ca19]:443/elastic/,http://host2")[:hosts]
3698
+
3699
+ assert_equal '[2404:7a80:d440:3000:192a:a292:bd7f:ca19]', host1[:host]
3700
+ assert_equal 443, host1[:port]
3701
+ assert_equal 'https', host1[:scheme]
3702
+ assert_equal 'john', host1[:user]
3703
+ assert_equal 'password', host1[:password]
3704
+ assert_equal '/elastic/', host1[:path]
3705
+
3706
+ assert_equal 'host2', host2[:host]
3707
+ assert_equal 'http', host2[:scheme]
3708
+ assert_equal 'default_user', host2[:user]
3709
+ assert_equal 'default_password', host2[:password]
3710
+ assert_equal '/default_path', host2[:path]
3711
+ end
3712
+
3665
3713
  def test_hosts_list_with_escape_placeholders
3666
3714
  config = %{
3667
3715
  hosts https://%{j+hn}:%{passw@rd}@[2404:7a80:d440:3000:192a:a292:bd7f:ca19]:443/elastic/,http://host2
@@ -3708,6 +3756,24 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3708
3756
  assert_equal nil, host1[:path]
3709
3757
  end
3710
3758
 
3759
+ def test_single_existing_connection
3760
+ config = %{
3761
+ user john
3762
+ password doe
3763
+ }
3764
+ instance = driver(config).instance
3765
+
3766
+ assert_equal 1, instance.get_connection_options("logs.google.com")[:hosts].length
3767
+ host1 = instance.get_connection_options("logs.google.com")[:hosts][0]
3768
+
3769
+ assert_equal 'logs.google.com', host1[:host]
3770
+ assert_equal 9200, host1[:port]
3771
+ assert_equal 'http', host1[:scheme]
3772
+ assert_equal 'john', host1[:user]
3773
+ assert_equal 'doe', host1[:password]
3774
+ assert_equal nil, host1[:path]
3775
+ end
3776
+
3711
3777
  def test_single_host_params_and_defaults_with_escape_placeholders
3712
3778
  config = %{
3713
3779
  host logs.google.com
@@ -3762,6 +3828,34 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3762
3828
  assert_equal nil, host1[:path]
3763
3829
  end
3764
3830
 
3831
+ def test_single_existing_connection
3832
+ config = %{
3833
+ user john
3834
+ password doe
3835
+ }
3836
+ instance = driver(config).instance
3837
+
3838
+ assert_equal 1, instance.get_connection_options("2404:7a80:d440:3000:192a:a292:bd7f:ca19")[:hosts].length
3839
+ host1 = instance.get_connection_options("2404:7a80:d440:3000:192a:a292:bd7f:ca19")[:hosts][0]
3840
+
3841
+ assert_equal 1, instance.get_connection_options("[2404:7a80:d440:3000:192a:a292:bd7f:ca19]")[:hosts].length
3842
+ host2 = instance.get_connection_options("[2404:7a80:d440:3000:192a:a292:bd7f:ca19]")[:hosts][0]
3843
+
3844
+ assert_equal '[2404:7a80:d440:3000:192a:a292:bd7f:ca19]', host1[:host]
3845
+ assert_equal 9200, host1[:port]
3846
+ assert_equal 'http', host1[:scheme]
3847
+ assert_equal 'john', host1[:user]
3848
+ assert_equal 'doe', host1[:password]
3849
+ assert_equal nil, host1[:path]
3850
+
3851
+ assert_equal '[2404:7a80:d440:3000:192a:a292:bd7f:ca19]', host2[:host]
3852
+ assert_equal 9200, host2[:port]
3853
+ assert_equal 'http', host2[:scheme]
3854
+ assert_equal 'john', host2[:user]
3855
+ assert_equal 'doe', host2[:password]
3856
+ assert_equal nil, host2[:path]
3857
+ end
3858
+
3765
3859
  def test_single_host_params_and_defaults_with_escape_placeholders
3766
3860
  config = %{
3767
3861
  host 2404:7a80:d440:3000:192a:a292:bd7f:ca19
@@ -3794,13 +3888,15 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3794
3888
 
3795
3889
  def test_content_type_header
3796
3890
  stub_request(:head, "http://localhost:9200/").
3797
- to_return(:status => 200, :body => "", :headers => {})
3891
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3798
3892
  if Elasticsearch::VERSION >= "6.0.2"
3799
3893
  elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
3800
- with(headers: { "Content-Type" => "application/x-ndjson" })
3894
+ with(headers: { "Content-Type" => "application/x-ndjson" }).
3895
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3801
3896
  else
3802
3897
  elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
3803
- with(headers: { "Content-Type" => "application/json" })
3898
+ with(headers: { "Content-Type" => "application/json" }).
3899
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3804
3900
  end
3805
3901
  stub_elastic_info
3806
3902
  driver.run(default_tag: 'test') do
@@ -3811,9 +3907,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3811
3907
 
3812
3908
  def test_custom_headers
3813
3909
  stub_request(:head, "http://localhost:9200/").
3814
- to_return(:status => 200, :body => "", :headers => {})
3910
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3815
3911
  elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
3816
- with(headers: {'custom' => 'header1','and_others' => 'header2' })
3912
+ with(headers: {'custom' => 'header1','and_others' => 'header2' }).
3913
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3817
3914
  stub_elastic_info
3818
3915
  driver.configure(%[custom_headers {"custom":"header1", "and_others":"header2"}])
3819
3916
  driver.run(default_tag: 'test') do
@@ -3824,9 +3921,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3824
3921
 
3825
3922
  def test_api_key_header
3826
3923
  stub_request(:head, "http://localhost:9200/").
3827
- to_return(:status => 200, :body => "", :headers => {})
3924
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3828
3925
  elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
3829
- with(headers: {'Authorization'=>'ApiKey dGVzdGF1dGhoZWFkZXI='})
3926
+ with(headers: {'Authorization'=>'ApiKey dGVzdGF1dGhoZWFkZXI='}).
3927
+ to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
3830
3928
  stub_elastic_info
3831
3929
  driver.configure(%[api_key testauthheader])
3832
3930
  driver.run(default_tag: 'test') do
@@ -3895,7 +3993,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3895
3993
  compressed_body = gzip(bodystr, Zlib::DEFAULT_COMPRESSION)
3896
3994
 
3897
3995
  elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
3898
- to_return(:status => 200, :headers => {'Content-Type' => 'Application/json'}, :body => compressed_body)
3996
+ to_return(:status => 200, :headers => {'Content-Type' => 'Application/json', 'x-elastic-product' => 'Elasticsearch'}, :body => compressed_body)
3899
3997
  stub_elastic_info("http://localhost:9200/")
3900
3998
 
3901
3999
  driver(config)
@@ -3975,7 +4073,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3975
4073
  with(
3976
4074
  body: /#{index_part}\n{"age":26,"request_id":"42","parent_id":"parent","routing_id":"routing","#{chunk_id_key}":".*"}\n/) do |req|
3977
4075
  @index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
3978
- end
4076
+ end.to_return({:status => 200, :body => "", :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' } })
3979
4077
  stub_elastic_info
3980
4078
  driver.run(default_tag: 'test', shutdown: false) do
3981
4079
  driver.feed(sample_record)
@@ -4137,7 +4235,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
4137
4235
  )
4138
4236
  .to_return(lambda do |req|
4139
4237
  { :status => 200,
4140
- :headers => { 'Content-Type' => 'json' },
4238
+ :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch'},
4141
4239
  :body => return_body_str
4142
4240
  }
4143
4241
  end)
@@ -5493,7 +5591,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5493
5591
  stub_request(:post, "http://localhost:9200/_bulk").with do |req|
5494
5592
  connection_resets += 1
5495
5593
  raise Faraday::ConnectionFailed, "Test message"
5496
- end
5594
+ end.to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
5497
5595
  stub_elastic_info
5498
5596
 
5499
5597
  assert_raise(Fluent::Plugin::ElasticsearchOutput::RecoverableRequestFailure) {
@@ -5510,7 +5608,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5510
5608
  stub_request(:post, "http://localhost:9200/_bulk").with do |req|
5511
5609
  connection_resets += 1
5512
5610
  raise ZeroDivisionError, "any not host_unreachable_exceptions exception"
5513
- end
5611
+ end.to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
5514
5612
  stub_elastic_info
5515
5613
 
5516
5614
  driver.configure("reconnect_on_error true\n")
@@ -5537,7 +5635,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5537
5635
  stub_request(:post, "http://localhost:9200/_bulk").with do |req|
5538
5636
  connection_resets += 1
5539
5637
  raise ZeroDivisionError, "any not host_unreachable_exceptions exception"
5540
- end
5638
+ end.to_return(:status => 200, :body => "", :headers => {'x-elastic-product' => 'Elasticsearch'})
5541
5639
  stub_elastic_info
5542
5640
 
5543
5641
  driver.configure("reconnect_on_error false\n")
@@ -5561,7 +5659,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5561
5659
  stub_request(:post, 'http://localhost:9200/_bulk')
5562
5660
  .to_return(lambda do |req|
5563
5661
  { :status => 200,
5564
- :headers => { 'Content-Type' => 'json' },
5662
+ :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch'},
5565
5663
  :body => %({
5566
5664
  "took" : 1,
5567
5665
  "errors" : true,
@@ -5621,7 +5719,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5621
5719
  stub_request(:post, 'http://localhost:9200/_bulk')
5622
5720
  .to_return(lambda do |req|
5623
5721
  { :status => 200,
5624
- :headers => { 'Content-Type' => 'json' },
5722
+ :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch'},
5625
5723
  :body => %({
5626
5724
  "took" : 1,
5627
5725
  "errors" : true,
@@ -5673,7 +5771,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5673
5771
  stub_request(:post, 'http://localhost:9200/_bulk')
5674
5772
  .to_return(lambda do |req|
5675
5773
  { :status => 200,
5676
- :headers => { 'Content-Type' => 'json' },
5774
+ :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' },
5677
5775
  :body => %({
5678
5776
  "took" : 1,
5679
5777
  "errors" : true,
@@ -5724,7 +5822,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5724
5822
  stub_request(:post, 'http://localhost:9200/_bulk')
5725
5823
  .to_return(lambda do |req|
5726
5824
  { :status => 200,
5727
- :headers => { 'Content-Type' => 'json' },
5825
+ :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch' },
5728
5826
  :body => %({
5729
5827
  "took" : 1,
5730
5828
  "errors" : true,
@@ -5774,7 +5872,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5774
5872
  stub_request(:post, 'http://localhost:9200/_bulk')
5775
5873
  .to_return(lambda do |req|
5776
5874
  { :status => 200,
5777
- :headers => { 'Content-Type' => 'json' },
5875
+ :headers => { 'Content-Type' => 'json', 'x-elastic-product' => 'Elasticsearch'},
5778
5876
  :body => %({
5779
5877
  "took" : 1,
5780
5878
  "errors" : true,