logstash-output-elastic_app_search 1.0.0.beta1 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb1acf9ad9a881367b8cd24db3559ba90655a5dc698b83d974c3ec0f417bcd02
4
- data.tar.gz: 55dd2c778cfcdb2757f80515adfdeb4c1d0024d3e3972e9c241d91e739a6c2a9
3
+ metadata.gz: bbb2ae52ad36bc6b5ebb7234c062f49aaf31f55e9be0da33b3c653307dd385cb
4
+ data.tar.gz: 6bb21f904b708bb76b52ffb9cb857655e149b78db2f6057aea18dcab062fcb33
5
5
  SHA512:
6
- metadata.gz: 46ec4250f8a07bee23b0eb2cd3318f1f39111cd6e9c96fb2bd16527532b19269b56edf0179b3079b5692e668f3b92d49320b4f96015852e2fae58b8cfe499e87
7
- data.tar.gz: f622ab874a8ff5f981225c80c50ba85d7424e92301a9f5974c478eda7543e288acdc9b3d2e263062ce746023356efce87125756aec83ff6b38b4b39670bec0a3
6
+ metadata.gz: 498ee5a0621c2b42b5fb781daf75561f5c289333092c64f9a6563f8e419c9ce6143ff737b9bd3143923946c73e164b9192b338bc4f5bcdd30ff9ef2bb5666957
7
+ data.tar.gz: ef8154b9cf148657a72f8baaad838bb66bf56c89cc5ef369ea3b7ceffdd3a7da18768ccdbeea4a90b5f0f597af178731c59920373ba96292e7808111811e929d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 1.0.0
2
+ - Added support for On Premise installations of Elastic App Search
3
+ - Updated java client to 0.4.1
4
+
1
5
  ## 1.0.0.beta1
2
6
  - Changed documentation to correct required fields and other information [#2](https://github.com/logstash-plugins/logstash-output-elastic_app_search/pull/2)
3
7
  - Added check for correct host, engine and api_key during register [#2](https://github.com/logstash-plugins/logstash-output-elastic_app_search/pull/2)
data/CONTRIBUTORS CHANGED
@@ -3,6 +3,7 @@ reports, or in general have helped logstash along its way.
3
3
 
4
4
  Contributors:
5
5
  * Joao Duarte - jsvduarte@gmail.com
6
+ * Peter Kim - petedogg@gmail.com
6
7
 
7
8
  Note: If you've sent us patches, bug reports, or otherwise contributed to
8
9
  Logstash, and you aren't on the list above and want to be, please let us know
@@ -1 +1 @@
1
- require_relative '../vendor/swiftype-app-search-0.3.0-all.jar'
1
+ require_relative '../vendor/swiftype-app-search-0.4.1-all.jar'
@@ -7,15 +7,27 @@ class LogStash::Outputs::ElasticAppSearch < LogStash::Outputs::Base
7
7
  config_name "elastic_app_search"
8
8
 
9
9
  config :engine, :validate => :string, :required => true
10
- config :host, :validate => :string, :required => true
10
+ config :host, :validate => :string
11
+ config :url, :validate => :string
11
12
  config :api_key, :validate => :password, :required => true
12
13
  config :timestamp_destination, :validate => :string
13
14
  config :document_id, :validate => :string
15
+ config :path, :validate => :string, :default => "/api/as/v1/"
14
16
 
15
17
  public
16
18
  def register
17
- @client = Client.new(@host, @api_key.value)
18
- @client.get_engine(@engine)
19
+ if @host.nil? && @url.nil?
20
+ raise ::LogStash::ConfigurationError.new("Please specify either \"url\" (for self-managed) or \"host\" (for SaaS).")
21
+ elsif @host && @url
22
+ raise ::LogStash::ConfigurationError.new("Both \"url\" or \"host\" can't be set simultaneously. Please specify either \"url\" (for self-managed) or \"host\" (for SaaS).")
23
+ elsif @host && path_is_set? # because path has a default value we need extra work to if the user set it
24
+ raise ::LogStash::ConfigurationError.new("The setting \"path\" is not compatible with \"host\". Use \"path\" only with \"url\".")
25
+ elsif @host
26
+ @client = Client.new(@host, @api_key.value)
27
+ elsif @url
28
+ @client = Client.new(nil, @api_key.value, @url + @path)
29
+ end
30
+ check_connection!
19
31
  rescue => e
20
32
  if e.message =~ /401/
21
33
  raise ::LogStash::ConfigurationError.new("Failed to connect to App Search. Error: 401. Please check your credentials")
@@ -76,4 +88,12 @@ class LogStash::Outputs::ElasticAppSearch < LogStash::Outputs::Base
76
88
  end
77
89
  end
78
90
  end
91
+
92
+ def check_connection!
93
+ @client.get_engine(@engine)
94
+ end
95
+
96
+ def path_is_set?
97
+ original_params.key?("path")
98
+ end
79
99
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-elastic_app_search'
3
- s.version = '1.0.0.beta1'
3
+ s.version = '1.0.0'
4
4
  s.licenses = ['Apache-2.0']
5
5
  s.summary = 'Index data to Elastic App Search'
6
6
  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'
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  # Special flag to let us know this is actually a logstash plugin
18
18
  s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
19
19
 
20
- s.add_development_dependency 'jar-dependencies', '~> 0.3.2'
20
+ s.add_development_dependency 'jar-dependencies', '~> 0.4'
21
21
 
22
22
  # Gem dependencies
23
23
  s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
@@ -9,5 +9,35 @@ describe LogStash::Outputs::ElasticAppSearch do
9
9
  let(:host) { "test-host" }
10
10
  let(:api_key) { "my_key" }
11
11
  let(:engine) { "test-engine" }
12
- let(:output) { described_class.new("host" => host, "api_key" => api_key, "engine" => engine) }
12
+ subject { described_class.new(config) }
13
+
14
+ describe "#register" do
15
+ before(:each) do
16
+ allow(subject).to receive(:check_connection!)
17
+ end
18
+ context "when host is configured" do
19
+ let(:config) { { "host" => host, "api_key" => api_key, "engine" => engine } }
20
+ it "does not raise an error" do
21
+ expect { subject.register }.to_not raise_error
22
+ end
23
+ end
24
+ context "when host and path is configured" do
25
+ let(:config) { { "host" => host, "api_key" => api_key, "engine" => engine, "path" => "/v1" } }
26
+ it "raises an error" do
27
+ expect { subject.register }.to raise_error(LogStash::ConfigurationError)
28
+ end
29
+ end
30
+ context "when host and url is configured" do
31
+ let(:config) { { "host" => host, "api_key" => api_key, "engine" => engine, "url" => "http://localhost:9300" } }
32
+ it "raises an error" do
33
+ expect { subject.register }.to raise_error(LogStash::ConfigurationError)
34
+ end
35
+ end
36
+ context "when neither host nor url is configured" do
37
+ let(:config) { { "api_key" => api_key, "engine" => engine } }
38
+ it "raises an error" do
39
+ expect { subject.register }.to raise_error(LogStash::ConfigurationError)
40
+ end
41
+ end
42
+ end
13
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-elastic_app_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joao Duarte
@@ -9,14 +9,14 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-11-06 00:00:00.000000000 Z
12
+ date: 2019-06-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.2
19
+ version: '0.4'
20
20
  name: jar-dependencies
21
21
  prerelease: false
22
22
  type: :development
@@ -24,7 +24,7 @@ dependencies:
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 0.3.2
27
+ version: '0.4'
28
28
  - !ruby/object:Gem::Dependency
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
@@ -85,7 +85,7 @@ files:
85
85
  - lib/logstash/outputs/elastic_app_search.rb
86
86
  - logstash-output-elastic_app_search.gemspec
87
87
  - spec/outputs/appsearch_spec.rb
88
- - vendor/swiftype-app-search-0.3.0-all.jar
88
+ - vendor/swiftype-app-search-0.4.1-all.jar
89
89
  homepage: https://elastic.co
90
90
  licenses:
91
91
  - Apache-2.0
@@ -103,9 +103,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
103
  version: '0'
104
104
  required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - - ">"
106
+ - - ">="
107
107
  - !ruby/object:Gem::Version
108
- version: 1.3.1
108
+ version: '0'
109
109
  requirements: []
110
110
  rubyforge_project:
111
111
  rubygems_version: 2.6.13