fluent-plugin-elasticsearch 5.1.4 → 5.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9cbe785cfd5534abf0b55d8207eae176d1dd02d5ef7a3092e9f0ef3c6d588e7f
4
- data.tar.gz: c12b413d1415ac38a6d119ff1f0ca106b1d4f1017f206ce72d97a74abe819551
3
+ metadata.gz: 0ae6214f54783c402097e26276b9247f1d58866b08cdc80be47d3b4638516d54
4
+ data.tar.gz: b69af374d04f84b2b1137189916c2b78f25eae71c2294d9a0cc196c30c09db29
5
5
  SHA512:
6
- metadata.gz: d30472143db2451da2eca168b22086d157abb7e62c26f1df5afa2ab4ed23a250a2b81fd04424f260dbfe996cc0a4794504e0c4262efc7969db363be02c79bcf9
7
- data.tar.gz: 9fd7a57fe732f18b6f568a96052ba7a5bf51423e93072ba230c7a57866b828dfe07e16b11f937c5d84d0cb01619fe027ccd80c0a0a4fb939d94a41f127ff5e3c
6
+ metadata.gz: 29173c2331bc0e533aa1d3aa66aa555bad7802e5fbb4207641b11aebc0a18c0d4e44ebed0b167c8fe4bddf403d2dd5a61349afeffecfc28a65359c3bb4cce26b
7
+ data.tar.gz: 7fdf58624182bdd4e354cad2d4f9ba001cff5a8c8c0ba02ac043607a87e2372311deb85bc0306d3aa167e98170a6049f33f3203b202ebcf25eac75e65dc23a17
data/History.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ### [Unreleased]
4
4
 
5
+ ### 5.1.5
6
+ - Make retryable DataStreams creation at configure phase (#943)
7
+ - Handle @hosts parameter on data_stream plugin (#942)
8
+ - allow specifying custom ILM policies for data streams (#933)
9
+
5
10
  ### 5.1.4
6
11
  - Handle ES8 or above more strictly (#931)
7
12
  - fixing double "\_policy" in index lifecycle management policy for elasticsearch\_data\_stream output (#930)
data/README.md CHANGED
@@ -1521,7 +1521,7 @@ You can enable this feature by specifying `@type elasticsearch_data_stream`.
1521
1521
  data_stream_name test
1522
1522
  ```
1523
1523
 
1524
- When `@type elasticsearch_data_stream` is used, unless specified with `data_stream_ilm_name` and `data_stream_template_name`, ILM default policy is set to the specified data stream.
1524
+ When `@type elasticsearch_data_stream` is used, unless specified with `data_stream_ilm_name` and `data_stream_template_name` or `data_stream_ilm_policy`, ILM default policy is set to the specified data stream.
1525
1525
  Then, the matching index template is also created automatically.
1526
1526
 
1527
1527
  ### data_stream_name
@@ -1545,6 +1545,21 @@ There are some limitations about naming rule.
1545
1545
 
1546
1546
  In more detail, please refer to the [Path parameters](https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-create-data-stream.html#indices-create-data-stream-api-path-params).
1547
1547
 
1548
+
1549
+ ### data_stream_ilm_policy
1550
+
1551
+ You can specify the ILM policy contents as hash. If not present, it will apply the ILM default policy.
1552
+
1553
+ **NOTE:** This parameter requests to install elasticsearch-xpack gem.
1554
+
1555
+ ### data_stream_ilm_policy_overwrite
1556
+
1557
+ Specify whether the data stream ILM policy should be overwritten.
1558
+
1559
+ Default value is `false`.
1560
+
1561
+ **NOTE:** This parameter requests to install elasticsearch-xpack gem.
1562
+
1548
1563
  ## Troubleshooting
1549
1564
 
1550
1565
  See [Troubleshooting document](README.Troubleshooting.md)
@@ -3,7 +3,7 @@ $:.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'fluent-plugin-elasticsearch'
6
- s.version = '5.1.4'
6
+ s.version = '5.1.5'
7
7
  s.authors = ['diogo', 'pitr', 'Hiroshi Hatake']
8
8
  s.email = ['pitr.vern@gmail.com', 'me@diogoterror.com', 'cosmo0920.wp@gmail.com']
9
9
  s.description = %q{Elasticsearch output plugin for Fluent event collector}
@@ -11,6 +11,9 @@ module Fluent::Plugin
11
11
  config_param :data_stream_name, :string
12
12
  config_param :data_stream_ilm_name, :string, :default => nil
13
13
  config_param :data_stream_template_name, :string, :default => nil
14
+ config_param :data_stream_ilm_policy, :string, :default => nil
15
+ config_param :data_stream_ilm_policy_overwrite, :bool, :default => false
16
+
14
17
  # Elasticsearch 7.9 or later always support new style of index template.
15
18
  config_set_default :use_legacy_template, false
16
19
 
@@ -29,6 +32,7 @@ module Fluent::Plugin
29
32
 
30
33
  @data_stream_ilm_name = "#{@data_stream_name}_policy" if @data_stream_ilm_name.nil?
31
34
  @data_stream_template_name = "#{@data_stream_name}_template" if @data_stream_template_name.nil?
35
+ @data_stream_ilm_policy = File.read(File.join(File.dirname(__FILE__), "default-ilm-policy.json")) if @data_stream_ilm_policy.nil?
32
36
 
33
37
  # ref. https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-create-data-stream.html
34
38
  unless placeholder?(:data_stream_name_placeholder, @data_stream_name)
@@ -38,13 +42,16 @@ module Fluent::Plugin
38
42
  @data_stream_names = []
39
43
  end
40
44
 
41
- @client = client
42
45
  unless @use_placeholder
43
46
  begin
44
47
  @data_stream_names = [@data_stream_name]
45
- create_ilm_policy(@data_stream_name, @data_stream_template_name, @data_stream_ilm_name, @host)
46
- create_index_template(@data_stream_name, @data_stream_template_name, @data_stream_ilm_name, @host)
47
- create_data_stream(@data_stream_name)
48
+ retry_operate(@max_retry_putting_template,
49
+ @fail_on_putting_template_retry_exceed,
50
+ @catch_transport_exception_on_retry) do
51
+ create_ilm_policy(@data_stream_name, @data_stream_template_name, @data_stream_ilm_name)
52
+ create_index_template(@data_stream_name, @data_stream_template_name, @data_stream_ilm_name)
53
+ create_data_stream(@data_stream_name)
54
+ end
48
55
  rescue => e
49
56
  raise Fluent::ConfigError, "Failed to create data stream: <#{@data_stream_name}> #{e.message}"
50
57
  end
@@ -76,21 +83,24 @@ module Fluent::Plugin
76
83
  end
77
84
  end
78
85
 
79
- def create_ilm_policy(datastream_name, template_name, ilm_name, host)
80
- return if data_stream_exist?(datastream_name) or template_exists?(template_name, host) or ilm_policy_exists?(ilm_name)
86
+ def create_ilm_policy(datastream_name, template_name, ilm_name, host = nil)
87
+ unless @data_stream_ilm_policy_overwrite
88
+ return if data_stream_exist?(datastream_name, host) or template_exists?(template_name, host) or ilm_policy_exists?(ilm_name, host)
89
+ end
90
+
81
91
  params = {
82
92
  policy_id: ilm_name,
83
- body: File.read(File.join(File.dirname(__FILE__), "default-ilm-policy.json"))
93
+ body: @data_stream_ilm_policy
84
94
  }
85
95
  retry_operate(@max_retry_putting_template,
86
96
  @fail_on_putting_template_retry_exceed,
87
97
  @catch_transport_exception_on_retry) do
88
- @client.xpack.ilm.put_policy(params)
98
+ client(host).xpack.ilm.put_policy(params)
89
99
  end
90
100
  end
91
101
 
92
- def create_index_template(datastream_name, template_name, ilm_name, host)
93
- return if data_stream_exist?(datastream_name) or template_exists?(template_name, host)
102
+ def create_index_template(datastream_name, template_name, ilm_name, host = nil)
103
+ return if data_stream_exist?(datastream_name, host) or template_exists?(template_name, host)
94
104
  body = {
95
105
  "index_patterns" => ["#{datastream_name}*"],
96
106
  "data_stream" => {},
@@ -107,16 +117,16 @@ module Fluent::Plugin
107
117
  retry_operate(@max_retry_putting_template,
108
118
  @fail_on_putting_template_retry_exceed,
109
119
  @catch_transport_exception_on_retry) do
110
- @client.indices.put_index_template(params)
120
+ client(host).indices.put_index_template(params)
111
121
  end
112
122
  end
113
123
 
114
- def data_stream_exist?(datastream_name)
124
+ def data_stream_exist?(datastream_name, host = nil)
115
125
  params = {
116
126
  name: datastream_name
117
127
  }
118
128
  begin
119
- response = @client.indices.get_data_stream(params)
129
+ response = client(host).indices.get_data_stream(params)
120
130
  return (not response.is_a?(Elasticsearch::Transport::Transport::Errors::NotFound))
121
131
  rescue Elasticsearch::Transport::Transport::Errors::NotFound => e
122
132
  log.info "Specified data stream does not exist. Will be created: <#{e}>"
@@ -124,21 +134,21 @@ module Fluent::Plugin
124
134
  end
125
135
  end
126
136
 
127
- def create_data_stream(datastream_name)
128
- return if data_stream_exist?(datastream_name)
137
+ def create_data_stream(datastream_name, host = nil)
138
+ return if data_stream_exist?(datastream_name, host)
129
139
  params = {
130
140
  name: datastream_name
131
141
  }
132
142
  retry_operate(@max_retry_putting_template,
133
143
  @fail_on_putting_template_retry_exceed,
134
144
  @catch_transport_exception_on_retry) do
135
- @client.indices.create_data_stream(params)
145
+ client(host).indices.create_data_stream(params)
136
146
  end
137
147
  end
138
148
 
139
- def ilm_policy_exists?(policy_id)
149
+ def ilm_policy_exists?(policy_id, host = nil)
140
150
  begin
141
- @client.ilm.get_policy(policy_id: policy_id)
151
+ client(host).ilm.get_policy(policy_id: policy_id)
142
152
  true
143
153
  rescue
144
154
  false
@@ -192,8 +202,9 @@ module Fluent::Plugin
192
202
  data_stream_name = @data_stream_name
193
203
  data_stream_template_name = @data_stream_template_name
194
204
  data_stream_ilm_name = @data_stream_ilm_name
195
- host = @host
205
+ host = nil
196
206
  if @use_placeholder
207
+ host = extract_placeholders(@host, chunk)
197
208
  data_stream_name = extract_placeholders(@data_stream_name, chunk)
198
209
  data_stream_template_name = extract_placeholders(@data_stream_template_name, chunk)
199
210
  data_stream_ilm_name = extract_placeholders(@data_stream_ilm_name, chunk)
@@ -230,7 +241,7 @@ module Fluent::Plugin
230
241
  body: bulk_message
231
242
  }
232
243
  begin
233
- response = @client.bulk(params)
244
+ response = client(host).bulk(params)
234
245
  if response['errors']
235
246
  log.error "Could not bulk insert to Data Stream: #{data_stream_name} #{response}"
236
247
  end
@@ -62,56 +62,61 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
62
62
  DUPLICATED_DATA_STREAM_EXCEPTION = {"error": {}, "status": 400}
63
63
  NONEXISTENT_DATA_STREAM_EXCEPTION = {"error": {}, "status": 404}
64
64
 
65
- def stub_ilm_policy(name="foo_ilm_policy")
66
- stub_request(:put, "http://localhost:9200/_ilm/policy/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
65
+ def stub_ilm_policy(name="foo_ilm_policy", url="http://localhost:9200")
66
+ stub_request(:put, "#{url}/_ilm/policy/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
67
67
  end
68
68
 
69
- def stub_index_template(name="foo_tpl")
70
- stub_request(:put, "http://localhost:9200/_index_template/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
69
+ def stub_index_template(name="foo_tpl", url="http://localhost:9200")
70
+ stub_request(:put, "#{url}/_index_template/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
71
71
  end
72
72
 
73
- def stub_data_stream(name="foo")
74
- stub_request(:put, "http://localhost:9200/_data_stream/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
73
+ def stub_data_stream(name="foo", url="http://localhost:9200")
74
+ stub_request(:put, "#{url}/_data_stream/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
75
75
  end
76
76
 
77
- def stub_existent_data_stream?(name="foo")
78
- stub_request(:get, "http://localhost:9200/_data_stream/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
77
+ def stub_existent_data_stream?(name="foo", url="http://localhost:9200")
78
+ stub_request(:get, "#{url}/_data_stream/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
79
79
  end
80
80
 
81
- def stub_existent_ilm?(name="foo_ilm_policy")
82
- stub_request(:get, "http://localhost:9200/_ilm/policy/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
81
+ def stub_existent_ilm?(name="foo_ilm_policy", url="http://localhost:9200")
82
+ stub_request(:get, "#{url}/_ilm/policy/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
83
83
  end
84
84
 
85
- def stub_existent_template?(name="foo_tpl")
86
- stub_request(:get, "http://localhost:9200/_index_template/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
85
+ def stub_existent_template?(name="foo_tpl", url="http://localhost:9200")
86
+ stub_request(:get, "#{url}/_index_template/#{name}").to_return(:status => [200, RESPONSE_ACKNOWLEDGED])
87
87
  end
88
88
 
89
- def stub_nonexistent_data_stream?(name="foo")
90
- stub_request(:get, "http://localhost:9200/_data_stream/#{name}").to_return(:status => [404, Elasticsearch::Transport::Transport::Errors::NotFound])
89
+ def stub_nonexistent_data_stream?(name="foo", url="http://localhost:9200")
90
+ stub_request(:get, "#{url}/_data_stream/#{name}").to_return(:status => [404, Elasticsearch::Transport::Transport::Errors::NotFound])
91
91
  end
92
92
 
93
- def stub_nonexistent_ilm?(name="foo_ilm_policy")
94
- stub_request(:get, "http://localhost:9200/_ilm/policy/#{name}").to_return(:status => [404, Elasticsearch::Transport::Transport::Errors::NotFound])
93
+ def stub_nonexistent_ilm?(name="foo_ilm_policy", url="http://localhost:9200")
94
+ stub_request(:get, "#{url}/_ilm/policy/#{name}").to_return(:status => [404, Elasticsearch::Transport::Transport::Errors::NotFound])
95
95
  end
96
96
 
97
- def stub_nonexistent_template?(name="foo_tpl")
98
- stub_request(:get, "http://localhost:9200/_index_template/#{name}").to_return(:status => [404, Elasticsearch::Transport::Transport::Errors::NotFound])
97
+ def stub_nonexistent_template?(name="foo_tpl", url="http://localhost:9200")
98
+ stub_request(:get, "#{url}/_index_template/#{name}").to_return(:status => [404, Elasticsearch::Transport::Transport::Errors::NotFound])
99
99
  end
100
100
 
101
- def stub_bulk_feed(datastream_name="foo", ilm_name="foo_ilm_policy", template_name="foo_tpl")
102
- stub_request(:post, "http://localhost:9200/#{datastream_name}/_bulk").with do |req|
101
+ def stub_nonexistent_template_retry?(name="foo_tpl", url="http://localhost:9200")
102
+ stub_request(:get, "#{url}/_index_template/#{name}").
103
+ to_return({ status: 500, body: 'Internal Server Error' }, { status: 404, body: '{}' })
104
+ end
105
+
106
+ def stub_bulk_feed(datastream_name="foo", ilm_name="foo_ilm_policy", template_name="foo_tpl", url="http://localhost:9200")
107
+ stub_request(:post, "#{url}/#{datastream_name}/_bulk").with do |req|
103
108
  # bulk data must be pair of OP and records
104
109
  # {"create": {}}\nhttp://localhost:9200/_ilm/policy/foo_ilm_bar
105
110
  # {"@timestamp": ...}
106
111
  @bulk_records += req.body.split("\n").size / 2
107
112
  end
108
- stub_request(:post, "http://localhost:9200/#{ilm_name}/_bulk").with do |req|
113
+ stub_request(:post, "#{url}/#{ilm_name}/_bulk").with do |req|
109
114
  # bulk data must be pair of OP and records
110
115
  # {"create": {}}\nhttp://localhost:9200/_ilm/policy/foo_ilm_bar
111
116
  # {"@timestamp": ...}
112
117
  @bulk_records += req.body.split("\n").size / 2
113
118
  end
114
- stub_request(:post, "http://localhost:9200/#{template_name}/_bulk").with do |req|
119
+ stub_request(:post, "#{url}/#{template_name}/_bulk").with do |req|
115
120
  # bulk data must be pair of OP and records
116
121
  # {"create": {}}\nhttp://localhost:9200/_ilm/policy/foo_ilm_bar
117
122
  # {"@timestamp": ...}
@@ -119,9 +124,9 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
119
124
  end
120
125
  end
121
126
 
122
- def stub_elastic_info(url="http://localhost:9200/", version="7.9.0")
127
+ def stub_elastic_info(url="http://localhost:9200/", version="7.9.0", headers={})
123
128
  body ="{\"version\":{\"number\":\"#{version}\", \"build_flavor\":\"default\"},\"tagline\" : \"You Know, for Search\"}"
124
- stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'json' } })
129
+ stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'json' }.merge(headers) })
125
130
  end
126
131
 
127
132
  def stub_default(datastream_name="foo", ilm_name="foo_ilm_policy", template_name="foo_tpl", host="http://localhost:9200")
@@ -437,6 +442,56 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
437
442
  assert_equal "foo", driver(conf).instance.data_stream_name
438
443
  end
439
444
 
445
+ def test_datastream_configure_retry
446
+ stub_elastic_info
447
+ stub_nonexistent_ilm?
448
+ stub_ilm_policy
449
+ stub_nonexistent_template_retry?
450
+ stub_index_template
451
+ stub_nonexistent_data_stream?
452
+ stub_data_stream
453
+ conf = config_element(
454
+ 'ROOT', '', {
455
+ '@type' => ELASTIC_DATA_STREAM_TYPE,
456
+ 'data_stream_name' => 'foo',
457
+ 'data_stream_ilm_name' => "foo_ilm_policy",
458
+ 'data_stream_template_name' => "foo_tpl"
459
+ })
460
+ assert_equal "foo", driver(conf).instance.data_stream_name
461
+ end
462
+
463
+ def test_hosts_list_configure
464
+ config = %{
465
+ hosts https://john:password@host1:443/elastic/,http://host2
466
+ path /default_path
467
+ user default_user
468
+ password default_password
469
+ data_stream_name default
470
+ }
471
+ stub_elastic_info("https://host1:443/elastic//", "7.9.0",
472
+ {'Authorization'=>"Basic #{Base64.encode64('john:password').split.first}"})
473
+ stub_elastic_info("http://host2/default_path/_data_stream/default", "7.9.0",
474
+ {'Authorization'=>"Basic #{Base64.encode64('john:password').split.first}"})
475
+ stub_existent_data_stream?("default", "https://host1/elastic/")
476
+ instance = driver(config).instance
477
+
478
+ assert_equal 2, instance.get_connection_options[:hosts].length
479
+ host1, host2 = instance.get_connection_options[:hosts]
480
+
481
+ assert_equal 'host1', host1[:host]
482
+ assert_equal 443, host1[:port]
483
+ assert_equal 'https', host1[:scheme]
484
+ assert_equal 'john', host1[:user]
485
+ assert_equal 'password', host1[:password]
486
+ assert_equal '/elastic/', host1[:path]
487
+
488
+ assert_equal 'host2', host2[:host]
489
+ assert_equal 'http', host2[:scheme]
490
+ assert_equal 'default_user', host2[:user]
491
+ assert_equal 'default_password', host2[:password]
492
+ assert_equal '/default_path', host2[:path]
493
+ end
494
+
440
495
  def test_existent_data_stream
441
496
  omit REQUIRED_ELASTIC_MESSAGE unless data_stream_supported?
442
497
 
@@ -659,4 +714,86 @@ class ElasticsearchOutputDataStreamTest < Test::Unit::TestCase
659
714
 
660
715
  assert_equal(4, connection_resets)
661
716
  end
717
+
718
+ def test_doesnt_update_ilm_policy_if_overwrite_unset
719
+ omit REQUIRED_ELASTIC_MESSAGE unless data_stream_supported?
720
+
721
+ config = %{
722
+ data_stream_name foo
723
+ data_stream_ilm_name foo_ilm_policy
724
+ data_stream_ilm_policy {"policy":{"phases":{"hot":{"actions":{"rollover":{"max_age":"15d"}}}}}}
725
+ }
726
+
727
+ stub_elastic_info
728
+ stub_index_template
729
+ stub_existent_data_stream?
730
+ stub_existent_ilm?
731
+ stub_data_stream
732
+
733
+ stub_request(:put, "http://localhost:9200/_ilm/policy/foo_ilm_policy").
734
+ to_return(:status => 200, :body => "", :headers => {})
735
+
736
+ assert_nothing_raised {
737
+ driver(config)
738
+ }
739
+ assert_requested(:put, "http://localhost:9200/_ilm/policy/foo_ilm_policy", times: 0)
740
+ end
741
+
742
+ def test_updates_ilm_policy_if_overwrite_set
743
+ omit REQUIRED_ELASTIC_MESSAGE unless data_stream_supported?
744
+
745
+ config = %{
746
+ data_stream_name foo
747
+ data_stream_ilm_name foo_ilm_policy
748
+ data_stream_ilm_policy {"policy":{"phases":{"hot":{"actions":{"rollover":{"max_age":"15d"}}}}}}
749
+ data_stream_ilm_policy_overwrite true
750
+ }
751
+
752
+ stub_elastic_info
753
+ stub_index_template
754
+ stub_existent_data_stream?
755
+ stub_existent_ilm?
756
+ stub_data_stream
757
+
758
+ stub_request(:put, "http://localhost:9200/_ilm/policy/foo_ilm_policy").
759
+ to_return(:status => 200, :body => "", :headers => {})
760
+
761
+ assert_nothing_raised {
762
+ driver(config)
763
+ }
764
+
765
+ assert_requested(:put, "http://localhost:9200/_ilm/policy/foo_ilm_policy", times: 1)
766
+ assert_requested(:put, "http://localhost:9200/_ilm/policy/foo_ilm_policy",
767
+ body: '{"policy":{"phases":{"hot":{"actions":{"rollover":{"max_age":"15d"}}}}}}',
768
+ times: 1)
769
+ end
770
+
771
+ def test_creates_custom_ilm_policy_if_none_exists
772
+ omit REQUIRED_ELASTIC_MESSAGE unless data_stream_supported?
773
+
774
+ config = %{
775
+ data_stream_name foo
776
+ data_stream_ilm_name foo_ilm_policy
777
+ data_stream_ilm_policy {"policy":{"phases":{"hot":{"actions":{"rollover":{"max_age":"15d"}}}}}}
778
+ }
779
+
780
+ stub_elastic_info
781
+ stub_index_template("foo_template")
782
+ stub_data_stream
783
+ stub_nonexistent_data_stream?
784
+ stub_nonexistent_ilm?
785
+ stub_nonexistent_template?("foo_template")
786
+
787
+ stub_request(:put, "http://localhost:9200/_ilm/policy/foo_ilm_policy").
788
+ to_return(:status => 200, :body => "", :headers => {})
789
+
790
+ assert_nothing_raised {
791
+ driver(config)
792
+ }
793
+
794
+ assert_requested(:put, "http://localhost:9200/_ilm/policy/foo_ilm_policy", times: 1)
795
+ assert_requested(:put, "http://localhost:9200/_ilm/policy/foo_ilm_policy",
796
+ body: '{"policy":{"phases":{"hot":{"actions":{"rollover":{"max_age":"15d"}}}}}}',
797
+ times: 1)
798
+ end
662
799
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.4
4
+ version: 5.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - diogo
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-11-22 00:00:00.000000000 Z
13
+ date: 2022-02-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: fluentd