fluent-plugin-opensearch 1.0.10 → 1.1.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: c8fec7ab831f92c422c3982f9e3986e7737138ac8c2d03c27e91248c222388e2
4
- data.tar.gz: 7a285e493ce2248453902cab4f4b2838d5cea49362bf93f03f314dc2fdc3a373
3
+ metadata.gz: 4c4ad0e88f3c4bb0497f3af7d1fa669bc0a9e0820fd7ccbe32713fa86f9fdc69
4
+ data.tar.gz: 56626ed3aadd52c4b560fb6eb8d9a0c0070ac68178ce789a63db19c404ab39e7
5
5
  SHA512:
6
- metadata.gz: 1c43d875fb76266ccdf2901ae25ecba1e9298263d03b0f11560936e1097a8edb306dbb70d564107ce3508f462f07ff3be0d6795e3ddfc951d3c8e764d217487c
7
- data.tar.gz: a8733006a11d8548dd41eab5dd8a626122d9c7044f73cc3ec18b2e18d916e47a898f8780556299e07c5d541aa24aba877f4733402051610a9a77c54bf8899136
6
+ metadata.gz: 620d0a42bb7b4db1bdd32bf863697644a5afc499a4d9b071a99192cfb8c621dd863e8f35f30ae6eab6ab90e982ed5a68a2dbab83de6f7b526e44ebe419fd6c5b
7
+ data.tar.gz: ca2cdd6fa2a704423e7cee2c065e72075b6e0d564414d5dcc1feb08608aa303fa93b9bf57afde32ed8a6e90c707bbe2c89bcdfcf8af84aabec904d1d52222dfd
@@ -8,7 +8,7 @@ jobs:
8
8
  strategy:
9
9
  fail-fast: false
10
10
  matrix:
11
- ruby: [ '2.7', '3.0', '3.1', '3.2' ]
11
+ ruby: [ '3.0', '3.1', '3.2' ]
12
12
  os:
13
13
  - ubuntu-latest
14
14
  name: Ruby ${{ matrix.ruby }} unit testing on ${{ matrix.os }}
@@ -8,7 +8,7 @@ jobs:
8
8
  strategy:
9
9
  fail-fast: false
10
10
  matrix:
11
- ruby: [ '2.7', '3.0', '3.1', '3.2' ]
11
+ ruby: [ '3.0', '3.1', '3.2' ]
12
12
  os:
13
13
  - macOS-latest
14
14
  name: Ruby ${{ matrix.ruby }} unit testing on ${{ matrix.os }}
@@ -8,7 +8,7 @@ jobs:
8
8
  strategy:
9
9
  fail-fast: false
10
10
  matrix:
11
- ruby: [ '2.7', '3.0', '3.1', '3.2' ]
11
+ ruby: [ '3.0', '3.1', '3.2' ]
12
12
  os:
13
13
  - windows-latest
14
14
  name: Ruby ${{ matrix.ruby }} unit testing on ${{ matrix.os }}
data/History.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ### [Unreleased]
4
4
 
5
+ ### 1.1.1
6
+ - Pass a value of refresh\_credentials\_interval as duration\_seconds (#78)
7
+
8
+ ### 1.1.0
9
+ - Unpin `faraday` from v1, upgrade to v2.
10
+ Note that if you can't migrate other plugins from `faraday` v1 yet, need to keep
11
+ fluent-plugin-opensearch v1.0.10.
12
+
5
13
  ### 1.0.10
6
14
  - Replace File.exists? with File.exist? to work with Ruby 3.2 (#93)
7
15
  - Add a constraint for dependent gem to stay on Faraday v1 (#90)
data/README.md CHANGED
@@ -111,6 +111,8 @@ Send your logs to OpenSearch (and search them with OpenSearch Dashboards maybe?)
111
111
  |:----------------------------:|:-----------:|:------:|
112
112
  | >= 1.0.0 | >= v1.x | >= 2.4 |
113
113
 
114
+ NOTE: Since fluent-plugin-opensearch 1.1.0, it requires faraday 2.0 or later.
115
+
114
116
  NOTE: This documentation is for fluent-plugin-opensearch 1.x or later.
115
117
 
116
118
  ## Installation
@@ -3,7 +3,7 @@ $:.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'fluent-plugin-opensearch'
6
- s.version = '1.0.10'
6
+ s.version = '1.1.1'
7
7
  s.authors = ['Hiroshi Hatake']
8
8
  s.email = ['cosmo0920.wp@gmail.com']
9
9
  s.description = %q{Opensearch output plugin for Fluent event collector}
@@ -23,11 +23,12 @@ Gem::Specification.new do |s|
23
23
  s.required_ruby_version = Gem::Requirement.new(">= 2.3".freeze)
24
24
 
25
25
  s.add_runtime_dependency 'fluentd', '>= 0.14.22'
26
- s.add_runtime_dependency 'excon', '>= 0'
27
26
  s.add_runtime_dependency 'opensearch-ruby'
28
27
  s.add_runtime_dependency "aws-sdk-core", "~> 3"
29
- s.add_runtime_dependency "faraday", "~> 1.10"
30
- s.add_runtime_dependency "faraday_middleware-aws-sigv4", "~> 0.6.1"
28
+ s.add_runtime_dependency 'excon', '>= 0'
29
+ s.add_runtime_dependency 'faraday', '>= 2.0.0'
30
+ s.add_runtime_dependency 'faraday-excon', '>= 2.0.0'
31
+ s.add_runtime_dependency "faraday_middleware-aws-sigv4", "~> 1.0.1"
31
32
 
32
33
  s.add_development_dependency 'rake', '>= 0'
33
34
  s.add_development_dependency 'webrick', '~> 1.7.0'
@@ -26,6 +26,7 @@
26
26
 
27
27
  require 'opensearch'
28
28
 
29
+ require 'faraday/excon'
29
30
  require 'fluent/log-ext'
30
31
  require 'fluent/plugin/input'
31
32
  require_relative 'opensearch_constants'
@@ -56,6 +56,7 @@ rescue LoadError
56
56
  end
57
57
  require 'aws-sdk-core'
58
58
  require 'faraday_middleware/aws_sigv4'
59
+ require 'faraday/excon'
59
60
 
60
61
  module Fluent::Plugin
61
62
  class OpenSearchOutput < Output
@@ -82,6 +83,7 @@ module Fluent::Plugin
82
83
  attr_reader :template_names
83
84
  attr_reader :ssl_version_options
84
85
  attr_reader :compressable_connection
86
+ attr_reader :duration_seconds
85
87
 
86
88
  helpers :event_emitter, :compat_parameters, :record_accessor, :timer
87
89
 
@@ -93,6 +95,7 @@ module Fluent::Plugin
93
95
  DEFAULT_RELOAD_AFTER = -1
94
96
  DEFAULT_TARGET_BULK_BYTES = -1
95
97
  DEFAULT_POLICY_ID = "logstash-policy"
98
+ DEFAULT_DURATION = "5h"
96
99
 
97
100
  config_param :host, :string, :default => 'localhost'
98
101
  config_param :port, :integer, :default => 9200
@@ -194,7 +197,7 @@ module Fluent::Plugin
194
197
  config_param :assume_role_session_name, :string, :default => "fluentd"
195
198
  config_param :assume_role_web_identity_token_file, :string, :default => nil
196
199
  config_param :sts_credentials_region, :string, :default => nil
197
- config_param :refresh_credentials_interval, :time, :default => "5h"
200
+ config_param :refresh_credentials_interval, :time, :default => DEFAULT_DURATION
198
201
  config_param :aws_service_name, :enum, list: [:es, :aoss], :default => :es
199
202
  end
200
203
 
@@ -210,6 +213,8 @@ module Fluent::Plugin
210
213
 
211
214
  def initialize
212
215
  super
216
+
217
+ @duration_seconds = Fluent::Config.time_value(DEFAULT_DURATION)
213
218
  end
214
219
 
215
220
  ######################################################################################################
@@ -237,13 +242,15 @@ module Fluent::Plugin
237
242
  credentials = Aws::AssumeRoleCredentials.new({
238
243
  role_arn: conf[:assume_role_arn],
239
244
  role_session_name: conf[:assume_role_session_name],
240
- region: sts_creds_region(conf)
245
+ region: sts_creds_region(conf),
246
+ duration_seconds: @duration_seconds
241
247
  }).credentials
242
248
  else
243
249
  credentials = Aws::AssumeRoleWebIdentityCredentials.new({
244
250
  role_arn: conf[:assume_role_arn],
245
251
  web_identity_token_file: conf[:assume_role_web_identity_token_file],
246
- region: sts_creds_region(conf)
252
+ region: sts_creds_region(conf),
253
+ duration_seconds: @duration_seconds
247
254
  }).credentials
248
255
  end
249
256
  end
@@ -344,7 +351,18 @@ module Fluent::Plugin
344
351
  @_aws_credentials = aws_credentials(@endpoint)
345
352
 
346
353
  if @endpoint.refresh_credentials_interval
347
- timer_execute(:out_opensearch_expire_credentials, @endpoint.refresh_credentials_interval) do
354
+ @duration_seconds = Fluent::Config.time_value(@endpoint.refresh_credentials_interval)
355
+ # 60 * 60 * 12 = 12 hours
356
+ if @duration_seconds > 43200
357
+ raise Fluent::ConfigError, "Maximum duration is 12 hours."
358
+ end
359
+
360
+ # 60 * 15 = 15 minutes
361
+ if @duration_seconds < 900
362
+ raise Fluent::ConfigError, "Minimum duration is 15 minutes."
363
+ end
364
+
365
+ timer_execute(:out_opensearch_expire_credentials, @duration_seconds) do
348
366
  log.debug('Recreate the AWS credentials')
349
367
 
350
368
  @credential_mutex.synchronize do
@@ -509,7 +527,7 @@ module Fluent::Plugin
509
527
  when :excon
510
528
  { client_key: @client_key, client_cert: @client_cert, client_key_pass: @client_key_pass, nonblock: @http_backend_excon_nonblock }
511
529
  when :typhoeus
512
- require 'typhoeus'
530
+ require 'faraday/typhoeus'
513
531
  { sslkey: @client_key, sslcert: @client_cert, keypasswd: @client_key_pass }
514
532
  end
515
533
  rescue LoadError => ex
@@ -300,6 +300,7 @@ class OpenSearchOutputTest < Test::Unit::TestCase
300
300
  'region' => "local",
301
301
  'access_key_id' => 'YOUR_AWESOME_KEY',
302
302
  'secret_access_key' => 'YOUR_AWESOME_SECRET',
303
+ 'refresh_credentials_interval' => '10h'
303
304
  }, []),
304
305
  Fluent::Config::Element.new('buffer', 'tag', {}, [])
305
306
 
@@ -316,6 +317,8 @@ class OpenSearchOutputTest < Test::Unit::TestCase
316
317
  assert_nil instance.endpoint.assume_role_web_identity_token_file
317
318
  assert_nil instance.endpoint.sts_credentials_region
318
319
  assert_equal :es, instance.endpoint.aws_service_name
320
+ assert_equal 36000, instance.endpoint.refresh_credentials_interval
321
+ assert_equal 36000, instance.duration_seconds
319
322
  end
320
323
 
321
324
  data("OpenSearch Service" => [:es, 'es'],
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-opensearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroshi Hatake
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-07 00:00:00.000000000 Z
11
+ date: 2023-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.14.22
27
27
  - !ruby/object:Gem::Dependency
28
- name: excon
28
+ name: opensearch-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: opensearch-ruby
42
+ name: aws-sdk-core
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: excon
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - ">="
@@ -53,47 +67,47 @@ dependencies:
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: aws-sdk-core
70
+ name: faraday
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - "~>"
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
- version: '3'
75
+ version: 2.0.0
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - "~>"
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
- version: '3'
82
+ version: 2.0.0
69
83
  - !ruby/object:Gem::Dependency
70
- name: faraday
84
+ name: faraday-excon
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "~>"
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
- version: '1.10'
89
+ version: 2.0.0
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "~>"
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
- version: '1.10'
96
+ version: 2.0.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: faraday_middleware-aws-sigv4
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 0.6.1
103
+ version: 1.0.1
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 0.6.1
110
+ version: 1.0.1
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rake
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -241,7 +255,7 @@ licenses:
241
255
  - Apache-2.0
242
256
  metadata:
243
257
  changelog_uri: https://github.com/fluent/fluent-plugin-opensearch/blob/master/History.md
244
- post_install_message:
258
+ post_install_message:
245
259
  rdoc_options: []
246
260
  require_paths:
247
261
  - lib
@@ -256,8 +270,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
256
270
  - !ruby/object:Gem::Version
257
271
  version: '0'
258
272
  requirements: []
259
- rubygems_version: 3.3.5
260
- signing_key:
273
+ rubygems_version: 3.2.32
274
+ signing_key:
261
275
  specification_version: 4
262
276
  summary: Opensearch output plugin for Fluent event collector
263
277
  test_files: