logstash-filter-elasticsearch 3.6.0 → 3.6.1

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: d8d5c99d58129ffad85468e4bab7c64f184a0bdc2aa8b8a11c8f52353c8e4876
4
- data.tar.gz: 30b1a189484e118138d6f7607be7319e035696464e8682b59122f830063b0c8d
3
+ metadata.gz: 54415da2d9bc4aa6d1d90ea0b65937aa4782c9a9614cafd2ac583d94c0780913
4
+ data.tar.gz: 44eea0bc6efd2a0a2a5415320a872e03cd3883e122e8d7627c3873241d47720c
5
5
  SHA512:
6
- metadata.gz: 6ef80c1576cf3d84f3da23bc23ecf7931812675d3566d46a074f6c8901dc182a34a67da8c17f7a6beafd33407c81d4a392c8d604b54abbaad3e542dd2260b987
7
- data.tar.gz: 7b754511d4a252de292646d67929b067d4fc44d7eabad53fb300098320592292fc0afac1d200737e6203fe7bd7422a9a1ea7b43e028d1d194879adb7a39788fb
6
+ metadata.gz: f148fcacc216cbbfca630e858ec93d85329487738dda440200ac2ea4f85253f2f4b6dc4a55cb859781be372a7ef15c727b5ded25015de1988302cd04e64de98e
7
+ data.tar.gz: '003910ce329cf1945fb3f92c2aef9f096588eb33c85e8716dbba0b65dd770e168e3960b1751553c2d251bc43b2a36dbc3eef339720acc9d40a08e1d1d36db402'
@@ -1,3 +1,6 @@
1
+ ## 3.6.1
2
+ - Loosen restrictions on Elasticsearch gem ([#120](https://github.com/logstash-plugins/logstash-filter-elasticsearch/pull/120))
3
+
1
4
  ## 3.6.0
2
5
  - Add support for extracting hits total from Elasticsearch 7.x responses
3
6
 
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-elasticsearch'
4
- s.version = '3.6.0'
4
+ s.version = '3.6.1'
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"
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
21
21
 
22
22
  # Gem dependencies
23
23
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
24
- s.add_runtime_dependency 'elasticsearch', ">= 5.0.3", " <6.0.0"
24
+ s.add_runtime_dependency 'elasticsearch', ">= 5.0.3"
25
25
  s.add_runtime_dependency 'manticore', "~> 0.6"
26
26
 
27
27
  s.add_development_dependency 'logstash-devutils'
@@ -0,0 +1,43 @@
1
+ module ESHelper
2
+ def self.get_host_port
3
+ if ENV["INTEGRATION"] == "true"
4
+ "elasticsearch:9200"
5
+ else
6
+ "localhost:9200"
7
+ end
8
+ end
9
+
10
+ def self.get_client
11
+ Elasticsearch::Client.new(:hosts => [get_host_port])
12
+ end
13
+
14
+ def self.doc_type
15
+ if ESHelper.es_version_satisfies?(">=8")
16
+ nil
17
+ elsif ESHelper.es_version_satisfies?(">=7")
18
+ "_doc"
19
+ else
20
+ "doc"
21
+ end
22
+ end
23
+
24
+ def self.index_doc(es, params)
25
+ type = doc_type
26
+ params[:type] = doc_type unless type.nil?
27
+ es.index(params)
28
+ end
29
+
30
+ def self.es_version
31
+ ENV['ES_VERSION'] || ENV['ELASTIC_STACK_VERSION']
32
+ end
33
+
34
+ def self.es_version_satisfies?(*requirement)
35
+ es_version = RSpec.configuration.filter[:es_version] || ENV['ES_VERSION'] || ENV['ELASTIC_STACK_VERSION']
36
+ if es_version.nil?
37
+ puts "Info: ES_VERSION, ELASTIC_STACK_VERSION or 'es_version' tag wasn't set. Returning false to all `es_version_satisfies?` call."
38
+ return false
39
+ end
40
+ es_release_version = Gem::Version.new(es_version).release
41
+ Gem::Requirement.new(requirement).satisfied_by?(es_release_version)
42
+ end
43
+ end
@@ -2,13 +2,17 @@
2
2
  require "logstash/devutils/rspec/spec_helper"
3
3
  require "logstash/plugin"
4
4
  require "logstash/filters/elasticsearch"
5
+ require_relative "../../../spec/es_helper"
5
6
 
6
7
  describe LogStash::Filters::Elasticsearch, :integration => true do
7
8
 
9
+
8
10
  let(:config) do
9
11
  {
10
- "hosts" => ["localhost:9200"],
12
+ "index" => 'logs',
13
+ "hosts" => [ESHelper.get_host_port],
11
14
  "query" => "response: 404",
15
+ "sort" => "response",
12
16
  "fields" => [ ["response", "code"] ],
13
17
  }
14
18
  end
@@ -16,21 +20,34 @@ describe LogStash::Filters::Elasticsearch, :integration => true do
16
20
  let(:event) { LogStash::Event.new({}) }
17
21
 
18
22
  before(:each) do
23
+ @es = ESHelper.get_client
24
+ # Delete all templates first.
25
+ # Clean ES of data before we start.
26
+ @es.indices.delete_template(:name => "*")
27
+ # This can fail if there are no indexes, ignore failure.
28
+ @es.indices.delete(:index => "*") rescue nil
29
+ 10.times do
30
+ ESHelper.index_doc(@es, :index => 'logs', :body => { :response => 404, :this => 'that'})
31
+ end
32
+ @es.indices.refresh
33
+
19
34
  plugin.register
20
35
  end
21
36
 
22
37
  it "should enhance the current event with new data" do
23
38
  plugin.filter(event)
24
- expect(event.get("code")).to eq(404)
39
+ expect(event.get('code')).to eq(404)
25
40
  end
26
41
 
27
42
  context "when retrieving a list of elements" do
28
43
 
29
44
  let(:config) do
30
45
  {
31
- "hosts" => ["localhost:9200"],
46
+ "index" => 'logs',
47
+ "hosts" => [ESHelper.get_host_port],
32
48
  "query" => "response: 404",
33
49
  "fields" => [ ["response", "code"] ],
50
+ "sort" => "response",
34
51
  "result_size" => 10
35
52
  }
36
53
  end
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.6.0
4
+ version: 3.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-30 00:00:00.000000000 Z
11
+ date: 2019-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -36,9 +36,6 @@ dependencies:
36
36
  - - ">="
37
37
  - !ruby/object:Gem::Version
38
38
  version: 5.0.3
39
- - - "<"
40
- - !ruby/object:Gem::Version
41
- version: 6.0.0
42
39
  name: elasticsearch
43
40
  prerelease: false
44
41
  type: :runtime
@@ -47,9 +44,6 @@ dependencies:
47
44
  - - ">="
48
45
  - !ruby/object:Gem::Version
49
46
  version: 5.0.3
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: 6.0.0
53
47
  - !ruby/object:Gem::Dependency
54
48
  requirement: !ruby/object:Gem::Requirement
55
49
  requirements:
@@ -96,6 +90,7 @@ files:
96
90
  - lib/logstash/filters/elasticsearch.rb
97
91
  - lib/logstash/filters/elasticsearch/client.rb
98
92
  - logstash-filter-elasticsearch.gemspec
93
+ - spec/es_helper.rb
99
94
  - spec/filters/elasticsearch_spec.rb
100
95
  - spec/filters/fixtures/elasticsearch_7.x_hits_total_as_object.json
101
96
  - spec/filters/fixtures/query_template.json
@@ -131,6 +126,7 @@ signing_key:
131
126
  specification_version: 4
132
127
  summary: Copies fields from previous log events in Elasticsearch to current events
133
128
  test_files:
129
+ - spec/es_helper.rb
134
130
  - spec/filters/elasticsearch_spec.rb
135
131
  - spec/filters/fixtures/elasticsearch_7.x_hits_total_as_object.json
136
132
  - spec/filters/fixtures/query_template.json