logstash-filter-elasticsearch 3.15.1 → 3.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a80d8c888e4c85fad00861c48191031b12827b75d4f7adf2f82d3be8023ef4c
4
- data.tar.gz: ecf9e2cf9c3d020bc5ece06d2b430bef230f60f2505847a534556fd95d72094f
3
+ metadata.gz: 64700ddd93547ed4e08abfb73028ab17f7dc6bd6d591840c622b5f7e24b3d5c3
4
+ data.tar.gz: 9cdf64fc9afe9a2a66c453850d2b4c0d910af5251567799bfd6612737045ba50
5
5
  SHA512:
6
- metadata.gz: c02acdc7b189b40b9d53f32374c982a0239a2be8a5e6d10f4ec62ee99771822e3a8b0345e432f5fd488eaed02e8f9207b82b4226e29f310bbbfc2f786eafd6bc
7
- data.tar.gz: 25cfab8d4069d7e30c5f1dd113857c24ce8c43ef7ed566b66230c64ead218398e28f504b7c0f5d864a8a6174cbf817e1f76faa22d996f15cfa0e298d3ed6e334
6
+ metadata.gz: 54c710f94a363bb2f8c9b1ecf450ec3397b50792fb7d4c2035a2ee7c70b347c7a41a4c8d7959bcd0eb8403a5df786bdfbebb5bb600f54a4668d6f4905d429054
7
+ data.tar.gz: 4f788bb3592c42fc2003e22c94c49d53272063ec2fadbe85f49e3653ba7bdfbbf81024cb34d8e81cec7f7eaf9968fc2be8fd704da5678d34eae60a3fd47d184f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 3.15.2
2
+ - Added checking for `query` and `query_template`. [#171](https://github.com/logstash-plugins/logstash-filter-elasticsearch/pull/171)
3
+
1
4
  ## 3.15.1
2
5
  - Fixes a regression introduced in 3.15.0 which could prevent a connection from being established to Elasticsearch in some SSL configurations
3
6
 
data/docs/index.asciidoc CHANGED
@@ -320,6 +320,7 @@ environment variables e.g. `proxy => '${LS_PROXY:}'`.
320
320
  Elasticsearch query string. More information is available in the
321
321
  {ref}/query-dsl-query-string-query.html#query-string-syntax[Elasticsearch query
322
322
  string documentation].
323
+ Use either `query` or `query_template`.
323
324
 
324
325
 
325
326
  [id="plugins-{type}s-{plugin}-query_template"]
@@ -330,6 +331,7 @@ string documentation].
330
331
 
331
332
  File path to elasticsearch query in DSL format. More information is available in
332
333
  the {ref}/query-dsl.html[Elasticsearch query documentation].
334
+ Use either `query` or `query_template`.
333
335
 
334
336
  [id="plugins-{type}s-{plugin}-result_size"]
335
337
  ===== `result_size`
@@ -170,6 +170,7 @@ class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
170
170
  @query_dsl = file.read
171
171
  end
172
172
 
173
+ validate_query_settings
173
174
  fill_hosts_from_cloud_id
174
175
  setup_ssl_params!
175
176
  validate_authentication
@@ -391,6 +392,16 @@ class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
391
392
  hosts.is_a?(Array) && hosts.size == 1 && !original_params.key?('hosts')
392
393
  end
393
394
 
395
+ def validate_query_settings
396
+ unless @query || @query_template
397
+ raise LogStash::ConfigurationError, "Both `query` and `query_template` are empty. Require either `query` or `query_template`."
398
+ end
399
+
400
+ if @query && @query_template
401
+ raise LogStash::ConfigurationError, "Both `query` and `query_template` are set. Use either `query` or `query_template`."
402
+ end
403
+ end
404
+
394
405
  def validate_authentication
395
406
  authn_options = 0
396
407
  authn_options += 1 if @cloud_auth
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-elasticsearch'
4
- s.version = '3.15.1'
4
+ s.version = '3.15.2'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Copies fields from previous log events in Elasticsearch to current events "
7
7
  s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -15,9 +15,11 @@ describe LogStash::Filters::Elasticsearch do
15
15
 
16
16
  context "registration" do
17
17
 
18
- let(:plugin) { LogStash::Plugin.lookup("filter", "elasticsearch").new({}) }
18
+ let(:plugin) { LogStash::Plugin.lookup("filter", "elasticsearch").new(config) }
19
19
 
20
20
  context "against authentic Elasticsearch" do
21
+ let(:config) { { "query" => "*" } }
22
+
21
23
  before do
22
24
  allow(plugin).to receive(:test_connection!)
23
25
  end
@@ -28,6 +30,7 @@ describe LogStash::Filters::Elasticsearch do
28
30
  end
29
31
 
30
32
  context "against not authentic Elasticsearch" do
33
+ let(:config) { { "query" => "*" } }
31
34
  let(:failing_client) do
32
35
  client = double("client")
33
36
  allow(client).to receive(:ping).and_raise Elasticsearch::UnsupportedProductError
@@ -45,6 +48,19 @@ describe LogStash::Filters::Elasticsearch do
45
48
  expect {plugin.register}.to raise_error(LogStash::ConfigurationError)
46
49
  end
47
50
  end
51
+
52
+ context "query settings" do
53
+ it "raise an exception when query and query_template are empty" do
54
+ plugin = described_class.new({})
55
+ expect {plugin.register}.to raise_error(LogStash::ConfigurationError)
56
+ end
57
+
58
+ it "raise an exception when query and query_template are set" do
59
+ config = { "query" => "*", "query_template" => File.join(File.dirname(__FILE__), "fixtures", "query_template_unicode.json") }
60
+ plugin = described_class.new(config)
61
+ expect {plugin.register}.to raise_error(LogStash::ConfigurationError)
62
+ end
63
+ end
48
64
  end
49
65
 
50
66
  describe "data fetch" do
@@ -594,7 +610,7 @@ describe LogStash::Filters::Elasticsearch do
594
610
 
595
611
  describe "ca_trusted_fingerprint" do
596
612
  let(:ca_trusted_fingerprint) { SecureRandom.hex(32) }
597
- let(:config) { {"ssl_enabled" => true, "ca_trusted_fingerprint" => ca_trusted_fingerprint}}
613
+ let(:config) { {"ssl_enabled" => true, "ca_trusted_fingerprint" => ca_trusted_fingerprint, "query" => "*"}}
598
614
 
599
615
  subject(:plugin) { described_class.new(config) }
600
616
 
@@ -633,6 +649,7 @@ describe LogStash::Filters::Elasticsearch do
633
649
  'hosts' => 'https://localhost:9200',
634
650
  'ssl_keystore_path' => keystore_path,
635
651
  'ssl_keystore_password' => keystore_password,
652
+ 'query' => '*'
636
653
  }
637
654
  end
638
655
 
@@ -663,7 +680,7 @@ describe LogStash::Filters::Elasticsearch do
663
680
 
664
681
  describe "defaults" do
665
682
 
666
- let(:config) { Hash.new }
683
+ let(:config) { {"query" => "*"} }
667
684
  let(:plugin) { described_class.new(config) }
668
685
 
669
686
  before { allow(plugin).to receive(:test_connection!) }
@@ -5,7 +5,7 @@ require "logstash/codecs/base"
5
5
  describe "SSL options" do
6
6
  let(:es_client_double) { double("Elasticsearch::Client #{self.inspect}") }
7
7
  let(:hosts) {["localhost"]}
8
- let(:settings) { { "ssl_enabled" => true, "hosts" => hosts } }
8
+ let(:settings) { { "ssl_enabled" => true, "hosts" => hosts, "query" => "*" } }
9
9
 
10
10
  subject do
11
11
  require "logstash/filters/elasticsearch"
@@ -36,7 +36,8 @@ describe "SSL options" do
36
36
  context "false and cloud_id resolved host is https" do
37
37
  let(:settings) {{
38
38
  "ssl_enabled" => false,
39
- "cloud_id" => "sample:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvJGFjMzFlYmI5MDI0MTc3MzE1NzA0M2MzNGZkMjZmZDQ2OjkyNDMkYTRjMDYyMzBlNDhjOGZjZTdiZTg4YTA3NGEzYmIzZTA6OTI0NA=="
39
+ "cloud_id" => "sample:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvJGFjMzFlYmI5MDI0MTc3MzE1NzA0M2MzNGZkMjZmZDQ2OjkyNDMkYTRjMDYyMzBlNDhjOGZjZTdiZTg4YTA3NGEzYmIzZTA6OTI0NA==",
40
+ "query" => "*"
40
41
  }}
41
42
 
42
43
  it "should not infer the ssl_enabled value" do
@@ -82,7 +83,8 @@ describe "SSL options" do
82
83
 
83
84
  context "and cloud_id resolved host is https" do
84
85
  let(:settings) {{
85
- "cloud_id" => "sample:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvJGFjMzFlYmI5MDI0MTc3MzE1NzA0M2MzNGZkMjZmZDQ2OjkyNDMkYTRjMDYyMzBlNDhjOGZjZTdiZTg4YTA3NGEzYmIzZTA6OTI0NA=="
86
+ "cloud_id" => "sample:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvJGFjMzFlYmI5MDI0MTc3MzE1NzA0M2MzNGZkMjZmZDQ2OjkyNDMkYTRjMDYyMzBlNDhjOGZjZTdiZTg4YTA3NGEzYmIzZTA6OTI0NA==",
87
+ "query" => "*"
86
88
  }}
87
89
 
88
90
  it "should infer the ssl_enabled value to false" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.15.1
4
+ version: 3.15.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-02 00:00:00.000000000 Z
11
+ date: 2023-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement