fluent-plugin-elasticsearch 5.1.5 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,7 +19,15 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
19
19
  log.out.logs.slice!(0, log.out.logs.length)
20
20
  end
21
21
 
22
- def driver(conf='', es_version=5, client_version="\"5.0\"")
22
+ def elasticsearch_version
23
+ if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("7.14.0")
24
+ TRANSPORT_CLASS::VERSION.split(".")[0..1].join(".")
25
+ else
26
+ "7.17".freeze
27
+ end
28
+ end
29
+
30
+ def driver(conf='', es_version=elasticsearch_version.to_i, client_version="\"#{elasticsearch_version}\"")
23
31
  # For request stub to detect compatibility.
24
32
  @es_version ||= es_version
25
33
  @client_version ||= client_version
@@ -46,7 +54,11 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
46
54
  end
47
55
 
48
56
  def elasticsearch_transport_layer_decoupling?
49
- Gem::Version.create(::Elasticsearch::Transport::VERSION) >= Gem::Version.new("7.14.0")
57
+ Gem::Version.create(::TRANSPORT_CLASS::VERSION) >= Gem::Version.new("7.14.0")
58
+ end
59
+
60
+ def elastic_transport_layer?
61
+ Gem::Version.create(::TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
50
62
  end
51
63
 
52
64
  def default_type_name
@@ -63,9 +75,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
63
75
  }
64
76
  end
65
77
 
66
- def stub_elastic_info(url="http://localhost:9200/", version="6.4.2")
78
+ def stub_elastic_info(url="http://localhost:9200/", version=elasticsearch_version)
67
79
  body ="{\"version\":{\"number\":\"#{version}\", \"build_flavor\":\"default\"},\"tagline\" : \"You Know, for Search\"}"
68
- stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'json' } })
80
+ stub_request(:get, url)
81
+ .to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'json', 'X-elastic-product' => 'Elasticsearch' } })
69
82
  end
70
83
 
71
84
  def stub_elastic(url="http://localhost:9200/_bulk")
@@ -273,7 +286,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
273
286
  end
274
287
 
275
288
  test 'configure compression' do
276
- omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.2.0")
289
+ omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.2.0")
277
290
 
278
291
  config = %{
279
292
  compression_level best_compression
@@ -284,7 +297,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
284
297
  end
285
298
 
286
299
  test 'check compression strategy' do
287
- omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.2.0")
300
+ omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.2.0")
288
301
 
289
302
  config = %{
290
303
  compression_level best_speed
@@ -295,14 +308,16 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
295
308
  end
296
309
 
297
310
  test 'check content-encoding header with compression' do
298
- omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.2.0")
311
+ omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.2.0")
299
312
 
300
313
  config = %{
301
314
  compression_level best_compression
302
315
  }
303
316
  instance = driver(config).instance
304
317
 
305
- if elasticsearch_transport_layer_decoupling?
318
+ if elastic_transport_layer?
319
+ assert_equal nil, instance.client.transport.options[:transport_options][:headers]["Content-Encoding"]
320
+ elsif elasticsearch_transport_layer_decoupling?
306
321
  assert_equal nil, instance.client.transport.transport.options[:transport_options][:headers]["Content-Encoding"]
307
322
  else
308
323
  assert_equal nil, instance.client.transport.options[:transport_options][:headers]["Content-Encoding"]
@@ -316,7 +331,9 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
316
331
  end
317
332
  compressable = instance.compressable_connection
318
333
 
319
- if elasticsearch_transport_layer_decoupling?
334
+ if elastic_transport_layer?
335
+ assert_equal "gzip", instance.client(nil, compressable).transport.options[:transport_options][:headers]["Content-Encoding"]
336
+ elsif elasticsearch_transport_layer_decoupling?
320
337
  assert_equal "gzip", instance.client(nil, compressable).transport.transport.options[:transport_options][:headers]["Content-Encoding"]
321
338
  else
322
339
  assert_equal "gzip", instance.client(nil, compressable).transport.options[:transport_options][:headers]["Content-Encoding"]
@@ -324,14 +341,16 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
324
341
  end
325
342
 
326
343
  test 'check compression option is passed to transport' do
327
- omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.2.0")
344
+ omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.2.0")
328
345
 
329
346
  config = %{
330
347
  compression_level best_compression
331
348
  }
332
349
  instance = driver(config).instance
333
350
 
334
- if elasticsearch_transport_layer_decoupling?
351
+ if elastic_transport_layer?
352
+ assert_equal false, instance.client.transport.options[:compression]
353
+ elsif elasticsearch_transport_layer_decoupling?
335
354
  assert_equal false, instance.client.transport.transport.options[:compression]
336
355
  else
337
356
  assert_equal false, instance.client.transport.options[:compression]
@@ -345,7 +364,9 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
345
364
  end
346
365
  compressable = instance.compressable_connection
347
366
 
348
- if elasticsearch_transport_layer_decoupling?
367
+ if elastic_transport_layer?
368
+ assert_equal true, instance.client(nil, compressable).transport.options[:compression]
369
+ elsif elasticsearch_transport_layer_decoupling?
349
370
  assert_equal true, instance.client(nil, compressable).transport.transport.options[:compression]
350
371
  else
351
372
  assert_equal true, instance.client(nil, compressable).transport.options[:compression]
@@ -441,7 +462,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
441
462
  end
442
463
 
443
464
  test 'handle invalid client.info' do
444
- stub_elastic_info_bad("https://logs.fluentd.com:24225/es//", "7.7.1")
465
+ stub_elastic_info_bad("https://logs.fluentd.com:24225/es//", elasticsearch_version)
445
466
  config = %{
446
467
  host logs.fluentd.com
447
468
  port 24225
@@ -453,7 +474,11 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
453
474
  scheme https
454
475
  @log_level info
455
476
  }
456
- if elasticsearch_transport_layer_decoupling?
477
+ if elastic_transport_layer?
478
+ assert_raise(NoMethodError) do
479
+ d = create_driver(config, 8, "\"8.0.0\"")
480
+ end
481
+ elsif elasticsearch_transport_layer_decoupling?
457
482
  assert_raise(NoMethodError) do
458
483
  d = create_driver(config, 7, "\"7.10.1\"")
459
484
  end
@@ -481,21 +506,31 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
481
506
 
482
507
  sub_test_case 'ILM default config' do
483
508
  setup do
484
- begin
485
- require "elasticsearch/xpack"
486
- rescue LoadError
487
- omit "ILM testcase needs elasticsearch-xpack gem."
509
+ if Gem::Version.new(TRANSPORT_CLASS::VERSION) < Gem::Version.new("8.0.0")
510
+ begin
511
+ require "elasticsearch/xpack"
512
+ rescue LoadError
513
+ omit "ILM testcase needs elasticsearch-xpack gem."
514
+ end
515
+ end
516
+ end
517
+
518
+ 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
488
523
  end
489
524
  end
490
525
 
491
526
  data("legacy_template" => [true, "_template"],
492
527
  "new_template" => [false, "_index_template"])
493
528
  test 'valid configuration of index lifecycle management' do |data|
494
- if Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.4.0")
529
+ if Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.4.0")
495
530
  omit "elastisearch-ruby v7.4.0 or later is needed for ILM."
496
531
  end
497
532
  use_legacy_template_flag, endpoint = data
498
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
533
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
499
534
  omit "elastisearch-ruby v7.8.0 or later is needed."
500
535
  end
501
536
  cwd = File.dirname(__FILE__)
@@ -519,9 +554,9 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
519
554
  stub_request(:get, "http://localhost:9200/_xpack").
520
555
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}',
521
556
  :headers => {"Content-Type"=> "application/json"})
522
- stub_request(:get, "http://localhost:9200/_ilm/policy/logstash-policy").
557
+ stub_request(:get, "http://localhost:9200/#{ilm_endpoint}/policy/logstash-policy").
523
558
  to_return(status: 404, body: "", headers: {})
524
- stub_request(:put, "http://localhost:9200/_ilm/policy/logstash-policy").
559
+ stub_request(:put, "http://localhost:9200/#{ilm_endpoint}/policy/logstash-policy").
525
560
  with(body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
526
561
  to_return(status: 200, body: "", headers: {})
527
562
  stub_elastic_info
@@ -534,11 +569,11 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
534
569
  data("legacy_template" => [true, "_template"],
535
570
  "new_template" => [false, "_index_template"])
536
571
  test 'valid configuration of overwriting ilm_policy' do |data|
537
- if Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.4.0")
572
+ if Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.4.0")
538
573
  omit "elastisearch-ruby v7.4.0 or later is needed for ILM."
539
574
  end
540
575
  use_legacy_template_flag, endpoint = data
541
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
576
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
542
577
  omit "elastisearch-ruby v7.8.0 or later is needed."
543
578
  end
544
579
  cwd = File.dirname(__FILE__)
@@ -564,9 +599,9 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
564
599
  stub_request(:get, "http://localhost:9200/_xpack").
565
600
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}',
566
601
  :headers => {"Content-Type"=> "application/json"})
567
- stub_request(:get, "http://localhost:9200/_ilm/policy/logstash-policy").
602
+ stub_request(:get, "http://localhost:9200/#{ilm_endpoint}/policy/logstash-policy").
568
603
  to_return(status: 200, body: "", headers: {})
569
- stub_request(:put, "http://localhost:9200/_ilm/policy/logstash-policy").
604
+ stub_request(:put, "http://localhost:9200/#{ilm_endpoint}/policy/logstash-policy").
570
605
  with(body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"75gb\",\"max_age\":\"50d\"}}}}}}").
571
606
  to_return(status: 200, body: "", headers: {})
572
607
  stub_elastic_info
@@ -946,7 +981,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
946
981
  "new_template" => [false, "_index_template"])
947
982
  def test_template_already_present(data)
948
983
  use_legacy_template_flag, endpoint = data
949
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
984
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
950
985
  omit "elastisearch-ruby v7.8.0 or later is needed."
951
986
  end
952
987
  config = %{
@@ -980,7 +1015,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
980
1015
  "new_template" => [false, "_index_template"])
981
1016
  def test_template_create(data)
982
1017
  use_legacy_template_flag, endpoint = data
983
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1018
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
984
1019
  omit "elastisearch-ruby v7.8.0 or later is needed."
985
1020
  end
986
1021
  cwd = File.dirname(__FILE__)
@@ -1025,7 +1060,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1025
1060
  "new_template" => [false, "_index_template"])
1026
1061
  def test_template_create_with_rollover_index_and_template_related_placeholders(data)
1027
1062
  use_legacy_template_flag, endpoint = data
1028
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1063
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1029
1064
  omit "elastisearch-ruby v7.8.0 or later is needed."
1030
1065
  end
1031
1066
  cwd = File.dirname(__FILE__)
@@ -1094,7 +1129,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1094
1129
  "new_template" => [false, "_index_template"])
1095
1130
  def test_template_create_with_rollover_index_and_template_related_placeholders_with_truncating_caches(data)
1096
1131
  use_legacy_template_flag, endpoint = data
1097
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1132
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1098
1133
  omit "elastisearch-ruby v7.8.0 or later is needed."
1099
1134
  end
1100
1135
  cwd = File.dirname(__FILE__)
@@ -1168,21 +1203,31 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1168
1203
 
1169
1204
  class TemplateIndexLifecycleManagementTest < self
1170
1205
  def setup
1171
- begin
1172
- require "elasticsearch/xpack"
1173
- rescue LoadError
1174
- omit "ILM testcase needs elasticsearch-xpack gem."
1206
+ if Gem::Version.new(Elasticsearch::VERSION) < Gem::Version.new("8.0.0")
1207
+ begin
1208
+ require "elasticsearch/xpack"
1209
+ rescue LoadError
1210
+ omit "ILM testcase needs elasticsearch-xpack gem."
1211
+ end
1175
1212
  end
1176
- if Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.4.0")
1213
+ if Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.4.0")
1177
1214
  omit "elastisearch-ruby v7.4.0 or later is needed for ILM."
1178
1215
  end
1179
1216
  end
1180
1217
 
1218
+ def ilm_endpoint
1219
+ if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
1220
+ '_enrich'.freeze
1221
+ else
1222
+ '_ilm'.freeze
1223
+ end
1224
+ end
1225
+
1181
1226
  data("legacy_template" => [true, "_template"],
1182
1227
  "new_template" => [false, "_index_template"])
1183
1228
  def test_template_create_with_rollover_index_and_default_ilm(data)
1184
1229
  use_legacy_template_flag, endpoint = data
1185
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1230
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1186
1231
  omit "elastisearch-ruby v7.8.0 or later is needed."
1187
1232
  end
1188
1233
  cwd = File.dirname(__FILE__)
@@ -1248,10 +1293,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1248
1293
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1249
1294
  with(basic_auth: ['john', 'doe']).
1250
1295
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1251
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
1296
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1252
1297
  with(basic_auth: ['john', 'doe']).
1253
1298
  to_return(:status => 404, :body => "", :headers => {})
1254
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
1299
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1255
1300
  with(basic_auth: ['john', 'doe'],
1256
1301
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
1257
1302
  to_return(:status => 200, :body => "", :headers => {})
@@ -1266,7 +1311,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1266
1311
  "new_template" => [false, "_index_template"])
1267
1312
  def test_template_create_with_rollover_index_and_default_ilm_on_logstash_format(data)
1268
1313
  use_legacy_template_flag, endpoint = data
1269
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1314
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1270
1315
  omit "elastisearch-ruby v7.8.0 or later is needed."
1271
1316
  end
1272
1317
  cwd = File.dirname(__FILE__)
@@ -1335,10 +1380,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1335
1380
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1336
1381
  with(basic_auth: ['john', 'doe']).
1337
1382
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1338
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
1383
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1339
1384
  with(basic_auth: ['john', 'doe']).
1340
1385
  to_return(:status => 404, :body => "", :headers => {})
1341
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
1386
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1342
1387
  with(basic_auth: ['john', 'doe'],
1343
1388
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
1344
1389
  to_return(:status => 200, :body => "", :headers => {})
@@ -1359,7 +1404,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1359
1404
  "new_template" => [false, "_index_template"])
1360
1405
  def test_template_create_with_rollover_index_and_default_ilm_and_ilm_policy_overwrite(data)
1361
1406
  use_legacy_template_flag, endpoint = data
1362
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1407
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1363
1408
  omit "elastisearch-ruby v7.8.0 or later is needed."
1364
1409
  end
1365
1410
  cwd = File.dirname(__FILE__)
@@ -1427,10 +1472,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1427
1472
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1428
1473
  with(basic_auth: ['john', 'doe']).
1429
1474
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1430
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
1475
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1431
1476
  with(basic_auth: ['john', 'doe']).
1432
1477
  to_return(:status => 200, :body => "", :headers => {})
1433
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
1478
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1434
1479
  with(basic_auth: ['john', 'doe'],
1435
1480
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"60gb\",\"max_age\":\"45d\"}}}}}}").
1436
1481
  to_return(:status => 200, :body => "", :headers => {})
@@ -1470,7 +1515,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1470
1515
  "new_template" => [false, "_index_template"])
1471
1516
  def test_template_create_with_rollover_index_and_default_ilm_with_empty_index_date_pattern(data)
1472
1517
  use_legacy_template_flag, endpoint = data
1473
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1518
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1474
1519
  omit "elastisearch-ruby v7.8.0 or later is needed."
1475
1520
  end
1476
1521
  cwd = File.dirname(__FILE__)
@@ -1536,10 +1581,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1536
1581
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1537
1582
  with(basic_auth: ['john', 'doe']).
1538
1583
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1539
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
1584
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1540
1585
  with(basic_auth: ['john', 'doe']).
1541
1586
  to_return(:status => 404, :body => "", :headers => {})
1542
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
1587
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1543
1588
  with(basic_auth: ['john', 'doe'],
1544
1589
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
1545
1590
  to_return(:status => 200, :body => "", :headers => {})
@@ -1554,7 +1599,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1554
1599
  "new_template" => [false, "_index_template"])
1555
1600
  def test_template_create_with_rollover_index_and_custom_ilm(data)
1556
1601
  use_legacy_template_flag, endpoint = data
1557
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1602
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1558
1603
  omit "elastisearch-ruby v7.8.0 or later is needed."
1559
1604
  end
1560
1605
  cwd = File.dirname(__FILE__)
@@ -1621,10 +1666,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1621
1666
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1622
1667
  with(basic_auth: ['john', 'doe']).
1623
1668
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1624
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
1669
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1625
1670
  with(basic_auth: ['john', 'doe']).
1626
1671
  to_return(:status => 404, :body => "", :headers => {})
1627
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
1672
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1628
1673
  with(basic_auth: ['john', 'doe'],
1629
1674
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
1630
1675
  to_return(:status => 200, :body => "", :headers => {})
@@ -1639,7 +1684,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1639
1684
  "new_template" => [false, "_index_template"])
1640
1685
  def test_template_create_with_rollover_index_and_ilm_policies_and_placeholderstest_template_create_with_rollover_index_and_ilm_policies_and_placeholders(data)
1641
1686
  use_legacy_template_flag, endpoint = data
1642
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1687
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1643
1688
  omit "elastisearch-ruby v7.8.0 or later is needed."
1644
1689
  end
1645
1690
  cwd = File.dirname(__FILE__)
@@ -1706,10 +1751,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1706
1751
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1707
1752
  with(basic_auth: ['john', 'doe']).
1708
1753
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1709
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
1754
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1710
1755
  with(basic_auth: ['john', 'doe']).
1711
1756
  to_return(:status => 404, :body => "", :headers => {})
1712
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
1757
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1713
1758
  with(basic_auth: ['john', 'doe'],
1714
1759
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
1715
1760
  to_return(:status => 200, :body => "", :headers => {})
@@ -1731,7 +1776,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1731
1776
  "new_template" => [false, "_index_template"])
1732
1777
  def test_tag_placeholder(data)
1733
1778
  use_legacy_template_flag, endpoint = data
1734
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1779
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1735
1780
  omit "elastisearch-ruby v7.8.0 or later is needed."
1736
1781
  end
1737
1782
  cwd = File.dirname(__FILE__)
@@ -1798,10 +1843,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1798
1843
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1799
1844
  with(basic_auth: ['john', 'doe']).
1800
1845
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1801
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
1846
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1802
1847
  with(basic_auth: ['john', 'doe']).
1803
1848
  to_return(:status => 404, :body => "", :headers => {})
1804
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
1849
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
1805
1850
  with(basic_auth: ['john', 'doe'],
1806
1851
  body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
1807
1852
  to_return(:status => 200, :body => "", :headers => {})
@@ -1822,7 +1867,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1822
1867
  "new_template" => [false, "_index_template"])
1823
1868
  def test_tag_placeholder_with_multiple_policies(data)
1824
1869
  use_legacy_template_flag, endpoint = data
1825
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1870
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1826
1871
  omit "elastisearch-ruby v7.8.0 or later is needed."
1827
1872
  end
1828
1873
  cwd = File.dirname(__FILE__)
@@ -1889,10 +1934,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1889
1934
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1890
1935
  with(basic_auth: ['john', 'doe']).
1891
1936
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1892
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy2").
1937
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy2").
1893
1938
  with(basic_auth: ['john', 'doe']).
1894
1939
  to_return(:status => 404, :body => "", :headers => {})
1895
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy2").
1940
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy2").
1896
1941
  with(basic_auth: ['john', 'doe'],
1897
1942
  body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"80gb\",\"max_age\":\"20d\"}}}}}}").
1898
1943
  to_return(:status => 200, :body => "", :headers => {})
@@ -1914,7 +1959,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1914
1959
  "new_template" => [false, "_index_template"])
1915
1960
  def test_template_create_with_rollover_index_and_default_ilm_and_placeholders(data)
1916
1961
  use_legacy_template_flag, endpoint = data
1917
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
1962
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
1918
1963
  omit "elastisearch-ruby v7.8.0 or later is needed."
1919
1964
  end
1920
1965
  cwd = File.dirname(__FILE__)
@@ -1980,10 +2025,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
1980
2025
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
1981
2026
  with(basic_auth: ['john', 'doe']).
1982
2027
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
1983
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
2028
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1984
2029
  with(basic_auth: ['john', 'doe']).
1985
2030
  to_return(:status => 404, :body => "", :headers => {})
1986
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
2031
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
1987
2032
  with(basic_auth: ['john', 'doe'],
1988
2033
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
1989
2034
  to_return(:status => 200, :body => "", :headers => {})
@@ -2015,10 +2060,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2015
2060
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2016
2061
  with(basic_auth: ['john', 'doe']).
2017
2062
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2018
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
2063
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2019
2064
  with(basic_auth: ['john', 'doe']).
2020
2065
  to_return(:status => 404, :body => "", :headers => {})
2021
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
2066
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2022
2067
  with(basic_auth: ['john', 'doe'],
2023
2068
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2024
2069
  to_return(:status => 200, :body => "", :headers => {})
@@ -2045,7 +2090,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2045
2090
  "new_template" => [false, "_index_template"])
2046
2091
  def test_template_create_with_rollover_index_and_default_ilm_and_placeholders_and_index_separator(data)
2047
2092
  use_legacy_template_flag, endpoint = data
2048
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2093
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2049
2094
  omit "elastisearch-ruby v7.8.0 or later is needed."
2050
2095
  end
2051
2096
  cwd = File.dirname(__FILE__)
@@ -2112,10 +2157,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2112
2157
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2113
2158
  with(basic_auth: ['john', 'doe']).
2114
2159
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2115
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
2160
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2116
2161
  with(basic_auth: ['john', 'doe']).
2117
2162
  to_return(:status => 404, :body => "", :headers => {})
2118
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
2163
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2119
2164
  with(basic_auth: ['john', 'doe'],
2120
2165
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2121
2166
  to_return(:status => 200, :body => "", :headers => {})
@@ -2138,7 +2183,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2138
2183
  "new_template" => [false, "_index_template"])
2139
2184
  def test_template_create_with_rollover_index_and_default_ilm_and_custom_and_time_placeholders(data)
2140
2185
  use_legacy_template_flag, endpoint = data
2141
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2186
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2142
2187
  omit "elastisearch-ruby v7.8.0 or later is needed."
2143
2188
  end
2144
2189
  cwd = File.dirname(__FILE__)
@@ -2209,10 +2254,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2209
2254
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2210
2255
  with(basic_auth: ['john', 'doe']).
2211
2256
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2212
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
2257
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2213
2258
  with(basic_auth: ['john', 'doe']).
2214
2259
  to_return(:status => 404, :body => "", :headers => {})
2215
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/logstash-policy").
2260
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/logstash-policy").
2216
2261
  with(basic_auth: ['john', 'doe'],
2217
2262
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2218
2263
  to_return(:status => 200, :body => "", :headers => {})
@@ -2237,7 +2282,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2237
2282
  def test_custom_template_create(data)
2238
2283
  use_legacy_template_flag, endpoint = data
2239
2284
 
2240
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2285
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2241
2286
  omit "elastisearch-ruby v7.8.0 or later is needed."
2242
2287
  end
2243
2288
  cwd = File.dirname(__FILE__)
@@ -2283,7 +2328,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2283
2328
  "new_template" => [false, "_index_template"])
2284
2329
  def test_custom_template_create_with_customize_template_related_placeholders(data)
2285
2330
  use_legacy_template_flag, endpoint = data
2286
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2331
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2287
2332
  omit "elastisearch-ruby v7.8.0 or later is needed."
2288
2333
  end
2289
2334
  cwd = File.dirname(__FILE__)
@@ -2337,7 +2382,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2337
2382
  "new_template" => [false, "_index_template"])
2338
2383
  def test_custom_template_installation_for_host_placeholder(data)
2339
2384
  use_legacy_template_flag, endpoint = data
2340
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2385
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2341
2386
  omit "elastisearch-ruby v7.8.0 or later is needed."
2342
2387
  end
2343
2388
  cwd = File.dirname(__FILE__)
@@ -2387,7 +2432,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2387
2432
  "new_template" => [false, "_index_template"])
2388
2433
  def test_custom_template_with_rollover_index_create(data)
2389
2434
  use_legacy_template_flag, endpoint = data
2390
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2435
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2391
2436
  omit "elastisearch-ruby v7.8.0 or later is needed."
2392
2437
  end
2393
2438
  cwd = File.dirname(__FILE__)
@@ -2449,7 +2494,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2449
2494
  "new_template" => [false, "_index_template"])
2450
2495
  def test_custom_template_with_rollover_index_create_and_deflector_alias(data)
2451
2496
  use_legacy_template_flag, endpoint = data
2452
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2497
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2453
2498
  omit "elastisearch-ruby v7.8.0 or later is needed."
2454
2499
  end
2455
2500
  cwd = File.dirname(__FILE__)
@@ -2512,7 +2557,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2512
2557
  "new_template" => [false, "_index_template"])
2513
2558
  def test_custom_template_with_rollover_index_create_with_logstash_format(data)
2514
2559
  use_legacy_template_flag, endpoint = data
2515
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2560
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2516
2561
  omit "elastisearch-ruby v7.8.0 or later is needed."
2517
2562
  end
2518
2563
  cwd = File.dirname(__FILE__)
@@ -2579,21 +2624,32 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2579
2624
 
2580
2625
  class CustomTemplateIndexLifecycleManagementTest < self
2581
2626
  def setup
2582
- begin
2583
- require "elasticsearch/xpack"
2584
- rescue LoadError
2585
- omit "ILM testcase needs elasticsearch-xpack gem."
2627
+ if Gem::Version.new(TRANSPORT_CLASS::VERSION) < Gem::Version.new("8.0.0")
2628
+ begin
2629
+ require "elasticsearch/xpack"
2630
+ rescue LoadError
2631
+ omit "ILM testcase needs elasticsearch-xpack gem."
2632
+ end
2586
2633
  end
2587
- if Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.4.0")
2634
+ if Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.4.0")
2588
2635
  omit "elastisearch-ruby v7.4.0 or later is needed."
2589
2636
  end
2590
2637
  end
2591
2638
 
2639
+
2640
+ def ilm_endpoint
2641
+ if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
2642
+ '_enrich'.freeze
2643
+ else
2644
+ '_ilm'.freeze
2645
+ end
2646
+ end
2647
+
2592
2648
  data("legacy_template" => [true, "_template"],
2593
2649
  "new_template" => [false, "_index_template"])
2594
2650
  def test_custom_template_with_rollover_index_create_and_default_ilm(data)
2595
2651
  use_legacy_template_flag, endpoint = data
2596
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2652
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2597
2653
  omit "elastisearch-ruby v7.8.0 or later is needed."
2598
2654
  end
2599
2655
  cwd = File.dirname(__FILE__)
@@ -2663,10 +2719,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2663
2719
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2664
2720
  with(basic_auth: ['john', 'doe']).
2665
2721
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2666
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
2722
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2667
2723
  with(basic_auth: ['john', 'doe']).
2668
2724
  to_return(:status => 404, :body => "", :headers => {})
2669
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
2725
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2670
2726
  with(basic_auth: ['john', 'doe'],
2671
2727
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2672
2728
  to_return(:status => 200, :body => "", :headers => {})
@@ -2680,7 +2736,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2680
2736
  "new_template" => [false, "_index_template"])
2681
2737
  def test_custom_template_with_rollover_index_create_and_default_ilm_and_ilm_policy_overwrite(data)
2682
2738
  use_legacy_template_flag, endpoint = data
2683
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2739
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2684
2740
  omit "elastisearch-ruby v7.8.0 or later is needed."
2685
2741
  end
2686
2742
  cwd = File.dirname(__FILE__)
@@ -2752,10 +2808,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2752
2808
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2753
2809
  with(basic_auth: ['john', 'doe']).
2754
2810
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2755
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
2811
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2756
2812
  with(basic_auth: ['john', 'doe']).
2757
2813
  to_return(:status => 200, :body => "", :headers => {})
2758
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
2814
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2759
2815
  with(basic_auth: ['john', 'doe'],
2760
2816
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"60gb\",\"max_age\":\"45d\"}}}}}}").
2761
2817
  to_return(:status => 200, :body => "", :headers => {})
@@ -2799,7 +2855,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2799
2855
  "new_template" => [false, "_index_template"])
2800
2856
  def test_custom_template_with_rollover_index_create_and_default_ilm_and_placeholders(data)
2801
2857
  use_legacy_template_flag, endpoint = data
2802
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
2858
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2803
2859
  omit "elastisearch-ruby v7.8.0 or later is needed."
2804
2860
  end
2805
2861
  cwd = File.dirname(__FILE__)
@@ -2871,10 +2927,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2871
2927
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2872
2928
  with(basic_auth: ['john', 'doe']).
2873
2929
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2874
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
2930
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2875
2931
  with(basic_auth: ['john', 'doe']).
2876
2932
  to_return(:status => 404, :body => "", :headers => {})
2877
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
2933
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2878
2934
  with(basic_auth: ['john', 'doe'],
2879
2935
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2880
2936
  to_return(:status => 200, :body => "", :headers => {})
@@ -2918,10 +2974,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2918
2974
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
2919
2975
  with(basic_auth: ['john', 'doe']).
2920
2976
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
2921
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
2977
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2922
2978
  with(basic_auth: ['john', 'doe']).
2923
2979
  to_return(:status => 404, :body => "", :headers => {})
2924
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
2980
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
2925
2981
  with(basic_auth: ['john', 'doe'],
2926
2982
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
2927
2983
  to_return(:status => 200, :body => "", :headers => {})
@@ -2946,7 +3002,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
2946
3002
  "new_template" => [false, "_index_template"])
2947
3003
  def test_custom_template_with_rollover_index_create_and_custom_ilm(data)
2948
3004
  use_legacy_template_flag, endpoint = data
2949
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3005
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
2950
3006
  omit "elastisearch-ruby v7.8.0 or later is needed."
2951
3007
  end
2952
3008
  cwd = File.dirname(__FILE__)
@@ -3009,10 +3065,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3009
3065
  stub_request(:get, "https://logs.google.com:777/es//_xpack").
3010
3066
  with(basic_auth: ['john', 'doe']).
3011
3067
  to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
3012
- stub_request(:get, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
3068
+ stub_request(:get, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
3013
3069
  with(basic_auth: ['john', 'doe']).
3014
3070
  to_return(:status => 404, :body => "", :headers => {})
3015
- stub_request(:put, "https://logs.google.com:777/es//_ilm/policy/fluentd-policy").
3071
+ stub_request(:put, "https://logs.google.com:777/es//#{ilm_endpoint}/policy/fluentd-policy").
3016
3072
  with(basic_auth: ['john', 'doe'],
3017
3073
  :body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
3018
3074
  to_return(:status => 200, :body => "", :headers => {})
@@ -3027,7 +3083,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3027
3083
  "new_template" => [false, "_index_template"])
3028
3084
  def test_template_overwrite(data)
3029
3085
  use_legacy_template_flag, endpoint = data
3030
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3086
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3031
3087
  omit "elastisearch-ruby v7.8.0 or later is needed."
3032
3088
  end
3033
3089
  cwd = File.dirname(__FILE__)
@@ -3073,7 +3129,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3073
3129
  "new_template" => [false, "_index_template"])
3074
3130
  def test_custom_template_overwrite(data)
3075
3131
  use_legacy_template_flag, endpoint = data
3076
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3132
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3077
3133
  omit "elastisearch-ruby v7.8.0 or later is needed."
3078
3134
  end
3079
3135
  cwd = File.dirname(__FILE__)
@@ -3120,7 +3176,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3120
3176
  "new_template" => [false, "_index_template"])
3121
3177
  def test_custom_template_with_rollover_index_overwrite(data)
3122
3178
  use_legacy_template_flag, endpoint = data
3123
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3179
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3124
3180
  omit "elastisearch-ruby v7.8.0 or later is needed."
3125
3181
  end
3126
3182
  cwd = File.dirname(__FILE__)
@@ -3210,7 +3266,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3210
3266
  "new_template" => [false, "_index_template"])
3211
3267
  def test_template_create_for_host_placeholder(data)
3212
3268
  use_legacy_template_flag, endpoint = data
3213
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3269
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3214
3270
  omit "elastisearch-ruby v7.8.0 or later is needed."
3215
3271
  end
3216
3272
  cwd = File.dirname(__FILE__)
@@ -3262,7 +3318,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3262
3318
  "new_template" => [false, "_index_template"])
3263
3319
  def test_template_retry_install_fails(data)
3264
3320
  use_legacy_template_flag, endpoint = data
3265
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3321
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3266
3322
  omit "elastisearch-ruby v7.8.0 or later is needed."
3267
3323
  end
3268
3324
  cwd = File.dirname(__FILE__)
@@ -3301,13 +3357,13 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3301
3357
  assert_equal(4, connection_resets)
3302
3358
  end
3303
3359
 
3304
- transport_errors_handled_separately = [Elasticsearch::Transport::Transport::Errors::NotFound]
3305
- transport_errors = Elasticsearch::Transport::Transport::Errors.constants.map { |err| [err, Elasticsearch::Transport::Transport::Errors.const_get(err)] }
3360
+ transport_errors_handled_separately = [TRANSPORT_CLASS::Transport::Errors::NotFound]
3361
+ transport_errors = TRANSPORT_CLASS::Transport::Errors.constants.map { |err| [err, TRANSPORT_CLASS::Transport::Errors.const_get(err)] }
3306
3362
  transport_errors_hash = Hash[transport_errors.select { |err| !transport_errors_handled_separately.include?(err[1]) } ]
3307
3363
 
3308
3364
  data(transport_errors_hash)
3309
3365
  def test_template_retry_transport_errors(error)
3310
- endpoint, use_legacy_template_flag = if Gem::Version.create(::Elasticsearch::Transport::VERSION) >= Gem::Version.create("7.8.0")
3366
+ endpoint, use_legacy_template_flag = if Gem::Version.create(::TRANSPORT_CLASS::VERSION) >= Gem::Version.create("7.8.0")
3311
3367
  ["_index_template".freeze, false]
3312
3368
  else
3313
3369
  ["_template".freeze, true]
@@ -3347,7 +3403,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3347
3403
  "new_template" => [false, "_index_template"])
3348
3404
  def test_template_retry_install_does_not_fail(data)
3349
3405
  use_legacy_template_flag, endpoint = data
3350
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3406
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3351
3407
  omit "elastisearch-ruby v7.8.0 or later is needed."
3352
3408
  end
3353
3409
  cwd = File.dirname(__FILE__)
@@ -3389,7 +3445,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3389
3445
  "new_template" => [false, "_index_template"])
3390
3446
  def test_templates_create(data)
3391
3447
  use_legacy_template_flag, endpoint = data
3392
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3448
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3393
3449
  omit "elastisearch-ruby v7.8.0 or later is needed."
3394
3450
  end
3395
3451
  cwd = File.dirname(__FILE__)
@@ -3447,7 +3503,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3447
3503
  "new_template" => [false, "_index_template"])
3448
3504
  def test_templates_overwrite(data)
3449
3505
  use_legacy_template_flag, endpoint = data
3450
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3506
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3451
3507
  omit "elastisearch-ruby v7.8.0 or later is needed."
3452
3508
  end
3453
3509
  cwd = File.dirname(__FILE__)
@@ -3505,7 +3561,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3505
3561
  "new_template" => [false, "_index_template"])
3506
3562
  def test_templates_are_also_used(data)
3507
3563
  use_legacy_template_flag, endpoint = data
3508
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3564
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3509
3565
  omit "elastisearch-ruby v7.8.0 or later is needed."
3510
3566
  end
3511
3567
  cwd = File.dirname(__FILE__)
@@ -3565,7 +3621,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3565
3621
  "new_template" => [false, "_index_template"])
3566
3622
  def test_templates_can_be_partially_created_if_error_occurs(data)
3567
3623
  use_legacy_template_flag, endpoint = data
3568
- if !use_legacy_template_flag && Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.8.0")
3624
+ if !use_legacy_template_flag && Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.8.0")
3569
3625
  omit "elastisearch-ruby v7.8.0 or later is needed."
3570
3626
  end
3571
3627
  cwd = File.dirname(__FILE__)
@@ -3946,7 +4002,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
3946
4002
 
3947
4003
 
3948
4004
  def test_writes_to_default_index_with_compression
3949
- omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::Elasticsearch::Transport::VERSION) < Gem::Version.create("7.2.0")
4005
+ omit "elastisearch-ruby v7.2.0 or later is needed." if Gem::Version.create(::TRANSPORT_CLASS::VERSION) < Gem::Version.create("7.2.0")
3950
4006
 
3951
4007
  config = %[
3952
4008
  compression_level default_compression
@@ -4037,9 +4093,16 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
4037
4093
  }, [])
4038
4094
  ]
4039
4095
  ))
4096
+ index_part = if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
4097
+ '{"index":{"_index":"fluentd"}}'
4098
+ elsif Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("7.0.0")
4099
+ '{"index":{"_index":"fluentd","_type":"_doc"}}'
4100
+ else
4101
+ '{"index":{"_index":"fluentd","_type":"fluentd"}}'
4102
+ end
4040
4103
  stub_request(:post, "http://localhost:9200/_bulk").
4041
4104
  with(
4042
- body: /{"index":{"_index":"fluentd","_type":"fluentd"}}\n{"age":26,"request_id":"42","parent_id":"parent","routing_id":"routing","#{chunk_id_key}":".*"}\n/) do |req|
4105
+ body: /#{index_part}\n{"age":26,"request_id":"42","parent_id":"parent","routing_id":"routing","#{chunk_id_key}":".*"}\n/) do |req|
4043
4106
  @index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
4044
4107
  end
4045
4108
  stub_elastic_info
@@ -4524,7 +4587,13 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
4524
4587
  driver.run(default_tag: 'test') do
4525
4588
  driver.feed(sample_record)
4526
4589
  end
4527
- assert_equal(default_type_name, index_cmds.first['index']['_type'])
4590
+ if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
4591
+ assert_nil(index_cmds.first['index']['_type'])
4592
+ elsif Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("7.0.0")
4593
+ assert_equal("_doc", index_cmds.first['index']['_type'])
4594
+ else
4595
+ assert_equal("fluentd", index_cmds.first['index']['_type'])
4596
+ end
4528
4597
  end
4529
4598
 
4530
4599
  def test_writes_to_target_type_key_fallack_to_type_name
@@ -4535,7 +4604,13 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
4535
4604
  driver.run(default_tag: 'test') do
4536
4605
  driver.feed(sample_record)
4537
4606
  end
4538
- assert_equal('mytype', index_cmds.first['index']['_type'])
4607
+ if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
4608
+ assert_nil(index_cmds.first['index']['_type'])
4609
+ elsif Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("7.0.0")
4610
+ assert_equal("_doc", index_cmds.first['index']['_type'])
4611
+ else
4612
+ assert_equal("fluentd", index_cmds.first['index']['_type'])
4613
+ end
4539
4614
  end
4540
4615
 
4541
4616
  data("old" => {"es_version" => 2, "_type" => "local-override"},
@@ -4569,7 +4644,13 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
4569
4644
  }
4570
4645
  }))
4571
4646
  end
4572
- assert_equal(default_type_name, index_cmds.first['index']['_type'])
4647
+ if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
4648
+ assert_nil(index_cmds.first['index']['_type'])
4649
+ elsif Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("7.0.0")
4650
+ assert_equal("_doc", index_cmds.first['index']['_type'])
4651
+ else
4652
+ assert_equal("fluentd", index_cmds.first['index']['_type'])
4653
+ end
4573
4654
  end
4574
4655
 
4575
4656
  def test_writes_to_speficied_host
@@ -5410,7 +5491,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5410
5491
  driver.run(default_tag: 'test') do
5411
5492
  driver.feed(sample_record)
5412
5493
  end
5413
- assert_equal('routing', index_cmds[0]['index']['_routing'])
5494
+ routing_key = driver.instance.instance_variable_get(:@routing_key_name)
5495
+ assert_equal('routing', index_cmds[0]['index'][routing_key])
5414
5496
  end
5415
5497
 
5416
5498
  def test_es7
@@ -5420,7 +5502,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5420
5502
  driver.run(default_tag: 'test') do
5421
5503
  driver.feed(sample_record)
5422
5504
  end
5423
- assert_equal('routing', index_cmds[0]['index']['routing'])
5505
+ routing_key = driver.instance.instance_variable_get(:@routing_key_name)
5506
+ assert_equal('routing', index_cmds[0]['index'][routing_key])
5424
5507
  end
5425
5508
  end
5426
5509
 
@@ -5432,7 +5515,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5432
5515
  driver.run(default_tag: 'test') do
5433
5516
  driver.feed(nested_sample_record)
5434
5517
  end
5435
- assert_equal('routing', index_cmds[0]['index']['_routing'])
5518
+ routing_key = driver.instance.instance_variable_get(:@routing_key_name)
5519
+ assert_equal('routing', index_cmds[0]['index'][routing_key])
5436
5520
  end
5437
5521
 
5438
5522
  def test_adds_nested_routing_key_with_dollar_dot
@@ -5442,7 +5526,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5442
5526
  driver.run(default_tag: 'test') do
5443
5527
  driver.feed(nested_sample_record)
5444
5528
  end
5445
- assert_equal('routing', index_cmds[0]['index']['_routing'])
5529
+ routing_key = driver.instance.instance_variable_get(:@routing_key_name)
5530
+ assert_equal('routing', index_cmds[0]['index'][routing_key])
5446
5531
  end
5447
5532
 
5448
5533
  def test_adds_nested_routing_key_with_bracket
@@ -5452,7 +5537,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5452
5537
  driver.run(default_tag: 'test') do
5453
5538
  driver.feed(nested_sample_record)
5454
5539
  end
5455
- assert_equal('routing', index_cmds[0]['index']['_routing'])
5540
+ routing_key = driver.instance.instance_variable_get(:@routing_key_name)
5541
+ assert_equal('routing', index_cmds[0]['index'][routing_key])
5456
5542
  end
5457
5543
  end
5458
5544
 
@@ -5463,7 +5549,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5463
5549
  driver.run(default_tag: 'test') do
5464
5550
  driver.feed(sample_record)
5465
5551
  end
5466
- assert(!index_cmds[0]['index'].has_key?('_routing'))
5552
+ routing_key = driver.instance.instance_variable_get(:@routing_key_name)
5553
+ assert(!index_cmds[0]['index'].has_key?(routing_key))
5467
5554
  end
5468
5555
 
5469
5556
  def test_adds_routing_key_when_not_configured
@@ -5472,7 +5559,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
5472
5559
  driver.run(default_tag: 'test') do
5473
5560
  driver.feed(sample_record)
5474
5561
  end
5475
- assert(!index_cmds[0]['index'].has_key?('_routing'))
5562
+ routing_key = driver.instance.instance_variable_get(:@routing_key_name)
5563
+ assert(!index_cmds[0]['index'].has_key?(routing_key))
5476
5564
  end
5477
5565
 
5478
5566
  def test_remove_one_key
@@ -6157,7 +6245,12 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
6157
6245
  end
6158
6246
 
6159
6247
  def test_ignore_exception
6160
- driver.configure('ignore_exceptions ["Elasticsearch::Transport::Transport::Errors::ServiceUnavailable"]')
6248
+ ignore_classes = if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
6249
+ ["Elastic::Transport::Transport::Errors::ServiceUnavailable"]
6250
+ else
6251
+ ["Elasticsearch::Transport::Transport::Errors::ServiceUnavailable"]
6252
+ end
6253
+ driver.configure("ignore_exceptions #{ignore_classes}")
6161
6254
  stub_elastic_unavailable
6162
6255
  stub_elastic_info
6163
6256
 
@@ -6167,7 +6260,12 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
6167
6260
  end
6168
6261
 
6169
6262
  def test_ignore_exception_with_superclass
6170
- driver.configure('ignore_exceptions ["Elasticsearch::Transport::Transport::ServerError"]')
6263
+ ignore_classes = if Gem::Version.new(TRANSPORT_CLASS::VERSION) >= Gem::Version.new("8.0.0")
6264
+ ["Elastic::Transport::Transport::Errors::ServiceUnavailable"]
6265
+ else
6266
+ ["Elasticsearch::Transport::Transport::Errors::ServiceUnavailable"]
6267
+ end
6268
+ driver.configure("ignore_exceptions #{ignore_classes}")
6171
6269
  stub_elastic_unavailable
6172
6270
  stub_elastic_info
6173
6271