fluent-plugin-mongo 1.2.2 → 1.3.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
  SHA1:
3
- metadata.gz: eedc0d2a61f67e0ef0e8e4b36066e1e0491d263d
4
- data.tar.gz: d4bec2e33837adc3dda2a54cfe270ac82f6ad805
3
+ metadata.gz: fb5c56a40c5a058bd8b710af7fe2b065b96b2e0d
4
+ data.tar.gz: 761f54a14e8dde03a9c669ff89a0dda9d07b84ce
5
5
  SHA512:
6
- metadata.gz: f1b9d8b626bd916c3837465430535bb598487cf3742bb52da05b28ca13198d0b98591a1c399923426e59c15f35cb4b47c5a53e23630555c532854b827dbbb6e1
7
- data.tar.gz: '085554829eaa6becd079dafa4bbc61ad6f9122f93aba4c39e9f2eb0d8f186e37e0a2ae775cb32c71af4351ac24166eb5b4eec4ed764202fa8858e1183176cd05'
6
+ metadata.gz: b9b5368add232fe67d644a95d28e5adbe8f4584f63e67c347effb36b50188b1321f1628d16c4494c1aac404db120edc91ff09558f85ad3a7439310909fc4e4d9
7
+ data.tar.gz: cd1d6a83f39438d464829baab15d6e9e490fa1b693947111b9ffc7176ff2c8c73673f5c109a562a9d17be447b99cbf59fbb9ebf98ebc04f6ba39cdaafcdb4684
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ Release 1.3.0 - 2019/04/24
2
+
3
+ * out_mongo: Support auth_mech parameter to allow other authentication
4
+ * in_mongo_tail: Fix replicat set issue
5
+
1
6
  Release 1.2.2 - 2019/04/01
2
7
 
3
8
  * out_mongo: Don't handle database placholders when specifying connection_string parameter
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.2
1
+ 1.3.0
@@ -118,10 +118,10 @@ module Fluent::Plugin
118
118
  private
119
119
 
120
120
  def client
121
- @client_options[:database] = @database
121
+ @client_options[:database] = @database if @database
122
122
  @client_options[:user] = @user if @user
123
123
  @client_options[:password] = @password if @password
124
- Mongo::Client.new(["#{node_string}"], @client_options)
124
+ Mongo::Client.new(node_string, @client_options)
125
125
  end
126
126
 
127
127
  def get_collection
@@ -133,7 +133,7 @@ module Fluent::Plugin
133
133
  def node_string
134
134
  case
135
135
  when @database
136
- "#{@host}:#{@port}"
136
+ ["#{@host}:#{@port}"]
137
137
  when @url
138
138
  @url
139
139
  end
@@ -8,23 +8,25 @@ module Fluent
8
8
  config_param :password, :string, default: nil, secret: true
9
9
  desc "MongoDB authentication database"
10
10
  config_param :auth_source, :string, default: nil
11
+ desc "MongoDB authentication mechanism"
12
+ config_param :auth_mech, :string, default: nil
11
13
  }
12
14
  end
13
15
  end
14
16
 
15
17
  module MongoAuth
16
18
  def authenticate(client)
17
- unless @user.nil? || @password.nil?
18
- begin
19
- if @auth_source.nil?
20
- client = client.with(user: @user, password: @password)
21
- else
22
- client = client.with(user: @user, password: @password, auth_source: @auth_source)
23
- end
24
- rescue Mongo::Auth::Unauthorized => e
25
- log.fatal e
26
- exit!
19
+ begin
20
+ if [@user, @password, @auth_source].all?
21
+ client = client.with(user: @user, password: @password, auth_source: @auth_source)
22
+ elsif [@user, @password].all?
23
+ client = client.with(user: @user, password: @password)
24
+ elsif [@user, @auth_source, @auth_mech].all?
25
+ client = client.with(user: @user, auth_source: @auth_source, auth_mech: @auth_mech.to_sym)
27
26
  end
27
+ rescue Mongo::Auth::Unauthorized => e
28
+ log.fatal e
29
+ exit!
28
30
  end
29
31
  client
30
32
  end
@@ -108,6 +108,10 @@ module Fluent::Plugin
108
108
 
109
109
  super
110
110
 
111
+ if @auth_mech && !Mongo::Auth::SOURCES.has_key?(@auth_mech.to_sym)
112
+ raise Fluent::ConfigError, Mongo::Auth::InvalidMechanism.new(@auth_mech.to_sym)
113
+ end
114
+
111
115
  if @connection_string.nil? && @database.nil?
112
116
  raise Fluent::ConfigError, "connection_string or database parameter is required"
113
117
  end
@@ -92,6 +92,22 @@ class MongoOutputTest < ::Test::Unit::TestCase
92
92
  end
93
93
  end
94
94
 
95
+ def test_configure_auth_mechanism
96
+ Mongo::Auth::SOURCES.each do |key, value|
97
+ conf = default_config + %[
98
+ auth_mech #{key}
99
+ ]
100
+ d = create_driver(conf)
101
+ assert_equal(key.to_s, d.instance.auth_mech)
102
+ end
103
+ assert_raise Fluent::ConfigError do
104
+ conf = default_config + %[
105
+ auth_mech invalid
106
+ ]
107
+ d = create_driver(conf)
108
+ end
109
+ end
110
+
95
111
  def test_configure_with_ssl
96
112
  conf = default_config + %[
97
113
  ssl true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro Nakagawa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-02 00:00:00.000000000 Z
11
+ date: 2019-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd