logstash-input-jdbc 4.2.1 → 4.2.2

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
  SHA1:
3
- metadata.gz: 092e53a0d727fc85cbcb20dc9cbbb6af813bb535
4
- data.tar.gz: 39aa1ec2ca42438a90a7cf3475c9eee6fe800622
3
+ metadata.gz: 06c6146d1a00d00d4bf3dec3d65795cfd1e5dc94
4
+ data.tar.gz: dd47271869a2a33e4bea9c92681a520c6b1cfce1
5
5
  SHA512:
6
- metadata.gz: db44c1a23b3590320c8ccdabd0118a7ed5df70cb4e124b0af089a7b0cad2b56a005c3e9609d4581685e1b01514257ef618c95103cb915616f3a01e72da864f79
7
- data.tar.gz: 4a1d088041137bc24e0c789424705d889eea7a0fcb367548e36807c8d1a29a3fa595e1cba7af5ce08afaa31eafcdae6e88e79b8709110ff8e9ec126ca3e687d6
6
+ metadata.gz: bbfbeb43d4a972d212d689a2bfb6d546fad9c672a9653c56546c559eacee386cc3d67e7b75bc769efc622f327dc1ed10b471a41ce6755cb722d2e60b3753b379
7
+ data.tar.gz: ae2c5aa96ccc1acc9d459a9e47014f3115a1cc1d49b835d97eb40a6a65605b5e6d9654d7b906d52abe88485104b41135af1762a8803531fecf9554e416dbe8c2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 4.2.1
2
+ - Fix bug where failed healthchecks would not call a non-existant method and suppress the real error
3
+
1
4
  ## 4.2.0
2
5
  - Automatically reconnect on connection issues
3
6
  - Fix test failures
data/docs/index.asciidoc CHANGED
@@ -12,7 +12,7 @@ START - GENERATED VARIABLES, DO NOT EDIT!
12
12
  END - GENERATED VARIABLES, DO NOT EDIT!
13
13
  ///////////////////////////////////////////
14
14
 
15
- [id="plugins-{type}-{plugin}"]
15
+ [id="plugins-{type}s-{plugin}"]
16
16
 
17
17
  === Jdbc input plugin
18
18
 
@@ -232,7 +232,7 @@ class LogStash::Inputs::Jdbc < LogStash::Inputs::Base
232
232
  raise(LogStash::ConfigurationError, "Only one of :jdbc_password, :jdbc_password_filepath may be set at a time.")
233
233
  end
234
234
 
235
- @jdbc_password = File.read(@jdbc_password_filepath).strip if @jdbc_password_filepath
235
+ @jdbc_password = LogStash::Util::Password.new(File.read(@jdbc_password_filepath).strip) if @jdbc_password_filepath
236
236
 
237
237
  if enable_encoding?
238
238
  @converters = {}
@@ -171,7 +171,7 @@ module LogStash::PluginMixins::Jdbc
171
171
  @database.test_connection
172
172
  rescue Sequel::DatabaseConnectionError => e
173
173
  @logger.warn("Failed test_connection.")
174
- @database.close_jdbc_connection
174
+ close_jdbc_connection
175
175
 
176
176
  #TODO return false and let the plugin raise a LogStash::ConfigurationError
177
177
  raise e
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-jdbc'
3
- s.version = '4.2.1'
3
+ s.version = '4.2.2'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = "This example input streams a string at a definable interval."
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"
@@ -28,4 +28,5 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'logstash-devutils'
29
29
  s.add_development_dependency 'timecop'
30
30
  s.add_development_dependency 'jdbc-derby'
31
+ s.add_development_dependency 'jdbc-mysql'
31
32
  end
@@ -2,6 +2,8 @@
2
2
  require "logstash/devutils/rspec/spec_helper"
3
3
  require "logstash/inputs/jdbc"
4
4
  require "jdbc/derby"
5
+ require "jdbc/mysql"
6
+ Jdbc::MySQL.load_driver
5
7
  require "sequel"
6
8
  require "sequel/adapters/jdbc"
7
9
  require "timecop"
@@ -26,19 +28,24 @@ describe LogStash::Inputs::Jdbc do
26
28
  end
27
29
 
28
30
  before :each do
29
- Jdbc::Derby.load_driver
30
- db.create_table :test_table do
31
- DateTime :created_at
32
- Integer :num
33
- String :string
34
- DateTime :custom_time
35
- end
36
- db << "CREATE TABLE types_table (num INTEGER, string VARCHAR(255), started_at DATE, custom_time TIMESTAMP, ranking DECIMAL(16,6))"
31
+ if !RSpec.current_example.metadata[:no_connection]
32
+ # before body
33
+ Jdbc::Derby.load_driver
34
+ db.create_table :test_table do
35
+ DateTime :created_at
36
+ Integer :num
37
+ String :string
38
+ DateTime :custom_time
39
+ end
40
+ db << "CREATE TABLE types_table (num INTEGER, string VARCHAR(255), started_at DATE, custom_time TIMESTAMP, ranking DECIMAL(16,6))"
41
+ end
37
42
  end
38
43
 
39
44
  after :each do
40
- db.drop_table(:test_table)
41
- db.drop_table(:types_table)
45
+ if !RSpec.current_example.metadata[:no_connection]
46
+ db.drop_table(:test_table)
47
+ db.drop_table(:types_table)
48
+ end
42
49
  end
43
50
 
44
51
  context "when registering and tearing down" do
@@ -87,6 +94,24 @@ describe LogStash::Inputs::Jdbc do
87
94
  end
88
95
  end
89
96
 
97
+ context "when connecting to a non-existent server", :no_connection => true do
98
+ let(:mixin_settings) do
99
+ super.merge(
100
+ "jdbc_driver_class" => "com.mysql.jdbc.Driver",
101
+ "jdbc_connection_string" => "jdbc:mysql://localhost:99999/somedb"
102
+ )
103
+ end
104
+ let(:settings) { super.merge("statement" => "SELECT 1 as col1 FROM test_table", "jdbc_user" => "foo", "jdbc_password" => "bar") }
105
+
106
+ it "should not register correctly" do
107
+ plugin.register
108
+ q = Queue.new
109
+ expect do
110
+ plugin.run(q)
111
+ end.to raise_error(::Sequel::DatabaseConnectionError)
112
+ end
113
+ end
114
+
90
115
  context "when both jdbc_password and jdbc_password_filepath arguments are passed" do
91
116
  let(:statement) { "SELECT * from test_table" }
92
117
  let(:jdbc_password) { "secret" }
@@ -117,7 +142,7 @@ describe LogStash::Inputs::Jdbc do
117
142
  end
118
143
 
119
144
  it "should read in jdbc_password from file" do
120
- expect(plugin.jdbc_password).to eq(jdbc_password)
145
+ expect(plugin.jdbc_password.value).to eq(jdbc_password)
121
146
  end
122
147
  end
123
148
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-jdbc
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.1
4
+ version: 4.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-23 00:00:00.000000000 Z
11
+ date: 2017-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +142,20 @@ dependencies:
142
142
  - - ">="
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
+ - !ruby/object:Gem::Dependency
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ name: jdbc-mysql
152
+ prerelease: false
153
+ type: :development
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
145
159
  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
146
160
  email: info@elastic.co
147
161
  executables: []