logstash-input-s3-sns-sqs 2.1.3 → 2.2.1.pre

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: c42ccc1885923bc79a1f546a7be3b4ef2b1840c301905f0219e1cddf89266b9c
4
- data.tar.gz: 755b037e0a94be66863bf05f6ee6ea20816663de671de879c1642c7ba4a4cec0
3
+ metadata.gz: 045e651e9ce6ed3e99a4f06b52be476e30ef7501b5e53a5bf97bcf0118c463d6
4
+ data.tar.gz: 25b9a355da317dec8b235fd84ce0cb04aec7fec9843edbbd418aa7f0cb570237
5
5
  SHA512:
6
- metadata.gz: 982cd8b60721b89f56e9e013126ce39fc95c5d0747ab73d98224af2626182f789a6dcde8317e3539612dfac7824d75ab149bda75e0cf75435a06bdd2291e7a0a
7
- data.tar.gz: fbd220e56e392510d2bbe44b413afe458e7f0a8eb82c32cfa5024b8fc56629c61315e83ed31bb0ae581afe212a92f0cd4ccc6fd16bb32a27a996b09efd64bdd6
6
+ metadata.gz: 51a683ac50b21cd5e27c7dbcf73a494adeb3c5f04c7f590b38e3cb3730c308d331a8ab475a06e0df92204172841c62563ea29f92a1304932e15e3fe828c6ea0b
7
+ data.tar.gz: a8957a59f15f3d134f8c1fb7e60f1bbfa0461ceca58ec4569d58419634309bef27e780f6b43a084533690ccde3c040ec7549286aef49ecfc9bdee71da83c4bfa
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
+ ##2.2.0
2
+ -AWS-SDK-3 update
1
3
  ##2.1.3
2
4
  -SECURITY: Raise MIXIN to a newer Version
5
+ -fix: runs now on logstash 7.16
3
6
  ##2.1.2
4
7
  - FEATURE: Now it´s possible to use queue urls and names.
5
8
  - FEATURE: Add sqs long polling config parameter: sqs_wait_time_seconds
@@ -9,6 +9,7 @@ class S3Downloader
9
9
  @stopped = stop_semaphore
10
10
  @factory = options[:s3_client_factory]
11
11
  @delete_on_success = options[:delete_on_success]
12
+ @move_to_bucket = options[:move_to_bucket]
12
13
  @include_object_properties = options[:include_object_properties]
13
14
  end
14
15
 
@@ -40,7 +41,7 @@ class S3Downloader
40
41
  end
41
42
 
42
43
  def cleanup_s3object(record)
43
- return unless @delete_on_success
44
+ return unless @delete_on_success || @move_to_bucket
44
45
  begin
45
46
  @factory.get_s3_client(record[:bucket]) do |s3|
46
47
  s3.delete_object(bucket: record[:bucket], key: record[:key])
@@ -50,6 +51,17 @@ class S3Downloader
50
51
  end
51
52
  end
52
53
 
54
+ def move_s3object(record)
55
+ return unless @move_to_bucket
56
+ begin
57
+ @factory.get_s3_client(@move_to_bucket) do |s3|
58
+ s3.copy_object(bucket: @move_to_bucket, copy_source: "/#{record[:bucket]}/#{record[:key]}", key: record[:key])
59
+ end
60
+ rescue Exception => e
61
+ @logger.warn("Failed to move s3 object", :record => record, :error => e)
62
+ end
63
+ end
64
+
53
65
  def stop?
54
66
  @stopped.value
55
67
  end
@@ -77,8 +77,7 @@ module LogProcessor
77
77
  end
78
78
 
79
79
  def gzip?(filename)
80
- return true if filename.end_with?('.gz','.gzip')
81
- MagicGzipValidator.new(File.new(filename, 'rb')).valid?
80
+ filename.end_with?('.gz','.gzip') && MagicGzipValidator.new(File.new(filename, 'rb')).valid?
82
81
  rescue Exception => e
83
82
  @logger.warn("Problem while gzip detection", :error => e)
84
83
  end
@@ -5,8 +5,9 @@ require "logstash/timestamp"
5
5
  require "logstash/plugin_mixins/aws_config"
6
6
  require "logstash/shutdown_watcher"
7
7
  require "logstash/errors"
8
- require 'logstash/inputs/s3sqs/patch'
9
- require "aws-sdk"
8
+ require "aws-sdk-s3"
9
+ require "aws-sdk-sns"
10
+ require "aws-sdk-sqs"
10
11
 
11
12
  # "object-oriented interfaces on top of API clients"...
12
13
  # => Overhead. FIXME: needed?
@@ -25,7 +26,7 @@ java_import java.io.FileInputStream
25
26
  java_import java.io.BufferedReader
26
27
  java_import java.util.zip.GZIPInputStream
27
28
  java_import java.util.zip.ZipException
28
- import java.lang.StringBuilder
29
+ java_import java.lang.StringBuilder
29
30
 
30
31
  # our helper classes
31
32
  # these may go into this file for brevity...
@@ -35,8 +36,6 @@ require_relative 's3/downloader'
35
36
  require_relative 'codec_factory'
36
37
  require_relative 's3snssqs/log_processor'
37
38
 
38
- Aws.eager_autoload!
39
-
40
39
  # Get logs from AWS s3 buckets as issued by an object-created event via sqs.
41
40
  #
42
41
  # This plugin is based on the logstash-input-sqs plugin but doesn't log the sqs event itself.
@@ -161,6 +160,7 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable
161
160
  # Session name to use when assuming an IAM role
162
161
  config :s3_role_session_name, :validate => :string, :default => "logstash"
163
162
  config :delete_on_success, :validate => :boolean, :default => false
163
+ config :move_to_bucket, :validate => :string, :default => nil
164
164
  # Whether or not to include the S3 object's properties (last_modified, content_type, metadata)
165
165
  # into each Event at [@metadata][s3]. Regardless of this setting, [@metdata][s3][key] will always
166
166
  # be present.
@@ -273,6 +273,7 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable
273
273
  @s3_downloader = S3Downloader.new(@logger, @received_stop, {
274
274
  s3_client_factory: @s3_client_factory,
275
275
  delete_on_success: @delete_on_success,
276
+ move_to_bucket: @move_to_bucket,
276
277
  include_object_properties: @include_object_properties
277
278
  })
278
279
  @codec_factory = CodecFactory.new(@logger, {
@@ -344,6 +345,7 @@ class LogStash::Inputs::S3SNSSQS < LogStash::Inputs::Threadable
344
345
  @s3_downloader.cleanup_local_object(record)
345
346
  # re-throw if necessary:
346
347
  throw :skip_delete unless completed
348
+ @s3_downloader.move_s3object(record)
347
349
  @s3_downloader.cleanup_s3object(record)
348
350
  end
349
351
  end
@@ -0,0 +1,61 @@
1
+ module LogStash::PluginMixins::AwsConfig::Generic
2
+ def self.included(base)
3
+ base.extend(self)
4
+ base.generic_aws_config
5
+ end
6
+
7
+ def generic_aws_config
8
+ # The AWS Region
9
+ config :region, :validate => :string, :default => LogStash::PluginMixins::AwsConfig::US_EAST_1
10
+
11
+ # This plugin uses the AWS SDK and supports several ways to get credentials, which will be tried in this order:
12
+ #
13
+ # 1. Static configuration, using `access_key_id` and `secret_access_key` params in the logstash plugin config
14
+ # 2. External credentials file specified by `aws_credentials_file`
15
+ # 3. Environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`
16
+ # 4. Environment variables `AMAZON_ACCESS_KEY_ID` and `AMAZON_SECRET_ACCESS_KEY`
17
+ # 5. IAM Instance Profile (available when running inside EC2)
18
+ config :access_key_id, :validate => :string
19
+
20
+ # The AWS Secret Access Key
21
+ config :secret_access_key, :validate => :password
22
+
23
+ # The AWS Session token for temporary credential
24
+ config :session_token, :validate => :password
25
+
26
+ # URI to proxy server if required
27
+ config :proxy_uri, :validate => :string
28
+
29
+ # Custom endpoint to connect to s3
30
+ config :endpoint, :validate => :string
31
+
32
+ # The AWS IAM Role to assume, if any.
33
+ # This is used to generate temporary credentials typically for cross-account access.
34
+ # See https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html for more information.
35
+ # When `role_arn` is set, AWS (`access_key_id`/`secret_access_key`) credentials still get used if they're configured.
36
+ config :role_arn, :validate => :string
37
+
38
+ # Session name to use when assuming an IAM role
39
+ config :role_session_name, :validate => :string, :default => "logstash"
40
+
41
+ # Path to YAML file containing a hash of AWS credentials.
42
+ # This file will only be loaded if `access_key_id` and
43
+ # `secret_access_key` aren't set. The contents of the
44
+ # file should look like this:
45
+ #
46
+ # [source,ruby]
47
+ # ----------------------------------
48
+ # :access_key_id: "12345"
49
+ # :secret_access_key: "54321"
50
+ # ----------------------------------
51
+ #
52
+ config :aws_credentials_file, :validate => :string
53
+
54
+ # By default, this plugin uses cert available to OpenSSL provided by OS
55
+ # when verifying SSL peer certificates.
56
+ # For cases where the default cert is unavailable, e.g. Windows,
57
+ # you can use the bundled ca certificate provided by AWS SDK
58
+ # by setting `use_aws_bundled_ca` to true
59
+ config :use_aws_bundled_ca, :validate => :boolean, :default => false
60
+ end
61
+ end
@@ -0,0 +1,100 @@
1
+ # encoding: utf-8
2
+ require "logstash/plugin_mixins/aws_config/generic"
3
+
4
+ module LogStash::PluginMixins::AwsConfig::V2
5
+ def self.included(base)
6
+ base.extend(self)
7
+ base.send(:include, LogStash::PluginMixins::AwsConfig::Generic)
8
+ end
9
+
10
+ public
11
+ def aws_options_hash
12
+ opts = {}
13
+
14
+ opts[:http_proxy] = @proxy_uri if @proxy_uri
15
+
16
+ if @role_arn
17
+ credentials = assume_role(opts.dup)
18
+ opts[:credentials] = credentials
19
+ else
20
+ credentials = aws_credentials
21
+ opts[:credentials] = credentials if credentials
22
+ end
23
+
24
+ if self.respond_to?(:aws_service_endpoint)
25
+ # used by CloudWatch to basically do the same as bellow (returns { region: region })
26
+ opts.merge!(self.aws_service_endpoint(@region))
27
+ else
28
+ # NOTE: setting :region works with the aws sdk (resolves correct endpoint)
29
+ opts[:region] = @region
30
+ end
31
+
32
+ opts[:endpoint] = @endpoint unless @endpoint.nil?
33
+
34
+ if respond_to?(:additional_settings)
35
+ opts = symbolize_keys_and_cast_true_false(additional_settings).merge(opts)
36
+ end
37
+
38
+ if @use_aws_bundled_ca
39
+ aws_core_library = Gem.loaded_specs['aws-sdk-core']&.full_gem_path or fail("AWS Core library not available")
40
+ opts[:ssl_ca_bundle] = File.expand_path('ca-bundle.crt', aws_core_library).tap do |aws_core_ca_bundle|
41
+ fail("AWS Core CA bundle not found") unless File.exists?(aws_core_ca_bundle)
42
+ end
43
+ end
44
+
45
+ return opts
46
+ end
47
+
48
+ private
49
+
50
+ def aws_credentials
51
+ if @access_key_id && @secret_access_key
52
+ Aws::Credentials.new(@access_key_id, @secret_access_key.value, @session_token ? @session_token.value : nil)
53
+ elsif @access_key_id.nil? ^ @secret_access_key.nil?
54
+ @logger.warn("Likely config error: Only one of access_key_id or secret_access_key was provided but not both.")
55
+ secret_access_key = @secret_access_key ? @secret_access_key.value : nil
56
+ Aws::Credentials.new(@access_key_id, secret_access_key, @session_token ? @session_token.value : nil)
57
+ elsif @aws_credentials_file
58
+ credentials_opts = YAML.load_file(@aws_credentials_file)
59
+ credentials_opts.default_proc = lambda { |hash, key| hash.fetch(key.to_s, nil) }
60
+ Aws::Credentials.new(credentials_opts[:access_key_id],
61
+ credentials_opts[:secret_access_key],
62
+ credentials_opts[:session_token])
63
+ else
64
+ nil # AWS client will read ENV or ~/.aws/credentials
65
+ end
66
+ end
67
+ alias credentials aws_credentials
68
+
69
+ def assume_role(opts = {})
70
+ unless opts.key?(:credentials)
71
+ credentials = aws_credentials
72
+ opts[:credentials] = credentials if credentials
73
+ end
74
+
75
+ # for a regional endpoint :region is always required by AWS
76
+ opts[:region] = @region
77
+
78
+ Aws::AssumeRoleCredentials.new(
79
+ :client => Aws::STS::Client.new(opts),
80
+ :role_arn => @role_arn,
81
+ :role_session_name => @role_session_name
82
+ )
83
+ end
84
+
85
+ def symbolize_keys_and_cast_true_false(hash)
86
+ case hash
87
+ when Hash
88
+ symbolized = {}
89
+ hash.each { |key, value| symbolized[key.to_sym] = symbolize_keys_and_cast_true_false(value) }
90
+ symbolized
91
+ when 'true'
92
+ true
93
+ when 'false'
94
+ false
95
+ else
96
+ hash
97
+ end
98
+ end
99
+
100
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+ require "logstash/config/mixin"
3
+
4
+ module LogStash::PluginMixins::AwsConfig
5
+ require "logstash/plugin_mixins/aws_config/v2"
6
+
7
+ US_EAST_1 = "us-east-1"
8
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-s3-sns-sqs'
3
- s.version = '2.1.3'
3
+ s.version = '2.2.1.pre'
4
4
  s.licenses = ['Apache-2.0']
5
5
  s.summary = "Get logs from AWS s3 buckets as issued by an object-created event via sns -> sqs."
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/plugin install gemname. This gem is not a stand-alone program"
@@ -19,10 +19,22 @@ Gem::Specification.new do |s|
19
19
  s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input" }
20
20
 
21
21
  # Gem dependencies
22
- s.add_runtime_dependency "logstash-core-plugin-api", ">= 2.1.12", "<= 2.99"
22
+ s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
23
+ s.add_runtime_dependency "concurrent-ruby"
24
+ s.add_runtime_dependency 'stud', '>= 0.0.22'
25
+ s.add_runtime_dependency "logstash-codec-json"
26
+ s.add_runtime_dependency "logstash-codec-plain"
27
+ s.add_runtime_dependency "aws-sdk-core", "~> 3"
28
+ s.add_runtime_dependency "aws-sdk-s3"
29
+ s.add_runtime_dependency "aws-sdk-sqs"
30
+ s.add_runtime_dependency "aws-sdk-sns"
31
+ s.add_runtime_dependency "aws-sdk-resourcegroups"
32
+
33
+ s.add_development_dependency "logstash-codec-json_lines"
34
+ s.add_development_dependency "logstash-codec-multiline"
35
+ s.add_development_dependency "logstash-codec-line"
36
+ s.add_development_dependency 'logstash-devutils', '>= 0.0.16'
37
+ s.add_development_dependency "logstash-input-generator"
38
+ s.add_development_dependency "timecop"
23
39
 
24
- s.add_runtime_dependency 'logstash-codec-json', '~> 3.0'
25
- s.add_runtime_dependency 'logstash-mixin-aws', '>= 4.3'
26
- s.add_development_dependency 'logstash-codec-json_stream', '~> 1.0'
27
- s.add_development_dependency 'logstash-devutils', '~> 1.3'
28
40
  end
metadata CHANGED
@@ -1,91 +1,239 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-s3-sns-sqs
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.2.1.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Herweg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-20 00:00:00.000000000 Z
11
+ date: 2023-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.0'
19
+ name: logstash-core-plugin-api
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ name: concurrent-ruby
34
+ prerelease: false
35
+ type: :runtime
36
+ version_requirements: !ruby/object:Gem::Requirement
15
37
  requirements:
16
38
  - - ">="
17
39
  - !ruby/object:Gem::Version
18
- version: 2.1.12
19
- - - "<="
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
20
45
  - !ruby/object:Gem::Version
21
- version: '2.99'
22
- name: logstash-core-plugin-api
46
+ version: 0.0.22
47
+ name: stud
23
48
  prerelease: false
24
49
  type: :runtime
25
50
  version_requirements: !ruby/object:Gem::Requirement
26
51
  requirements:
27
52
  - - ">="
28
53
  - !ruby/object:Gem::Version
29
- version: 2.1.12
30
- - - "<="
54
+ version: 0.0.22
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ name: logstash-codec-json
62
+ prerelease: false
63
+ type: :runtime
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
31
67
  - !ruby/object:Gem::Version
32
- version: '2.99'
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ name: logstash-codec-plain
76
+ prerelease: false
77
+ type: :runtime
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
33
83
  - !ruby/object:Gem::Dependency
34
84
  requirement: !ruby/object:Gem::Requirement
35
85
  requirements:
36
86
  - - "~>"
37
87
  - !ruby/object:Gem::Version
38
- version: '3.0'
39
- name: logstash-codec-json
88
+ version: '3'
89
+ name: aws-sdk-core
40
90
  prerelease: false
41
91
  type: :runtime
42
92
  version_requirements: !ruby/object:Gem::Requirement
43
93
  requirements:
44
94
  - - "~>"
45
95
  - !ruby/object:Gem::Version
46
- version: '3.0'
96
+ version: '3'
47
97
  - !ruby/object:Gem::Dependency
48
98
  requirement: !ruby/object:Gem::Requirement
49
99
  requirements:
50
100
  - - ">="
51
101
  - !ruby/object:Gem::Version
52
- version: '4.3'
53
- name: logstash-mixin-aws
102
+ version: '0'
103
+ name: aws-sdk-s3
54
104
  prerelease: false
55
105
  type: :runtime
56
106
  version_requirements: !ruby/object:Gem::Requirement
57
107
  requirements:
58
108
  - - ">="
59
109
  - !ruby/object:Gem::Version
60
- version: '4.3'
110
+ version: '0'
61
111
  - !ruby/object:Gem::Dependency
62
112
  requirement: !ruby/object:Gem::Requirement
63
113
  requirements:
64
- - - "~>"
114
+ - - ">="
65
115
  - !ruby/object:Gem::Version
66
- version: '1.0'
67
- name: logstash-codec-json_stream
116
+ version: '0'
117
+ name: aws-sdk-sqs
118
+ prerelease: false
119
+ type: :runtime
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ name: aws-sdk-sns
132
+ prerelease: false
133
+ type: :runtime
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ name: aws-sdk-resourcegroups
146
+ prerelease: false
147
+ type: :runtime
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ name: logstash-codec-json_lines
68
160
  prerelease: false
69
161
  type: :development
70
162
  version_requirements: !ruby/object:Gem::Requirement
71
163
  requirements:
72
- - - "~>"
164
+ - - ">="
73
165
  - !ruby/object:Gem::Version
74
- version: '1.0'
166
+ version: '0'
75
167
  - !ruby/object:Gem::Dependency
76
168
  requirement: !ruby/object:Gem::Requirement
77
169
  requirements:
78
- - - "~>"
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ name: logstash-codec-multiline
174
+ prerelease: false
175
+ type: :development
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ name: logstash-codec-line
188
+ prerelease: false
189
+ type: :development
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
79
193
  - !ruby/object:Gem::Version
80
- version: '1.3'
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: 0.0.16
81
201
  name: logstash-devutils
82
202
  prerelease: false
83
203
  type: :development
84
204
  version_requirements: !ruby/object:Gem::Requirement
85
205
  requirements:
86
- - - "~>"
206
+ - - ">="
87
207
  - !ruby/object:Gem::Version
88
- version: '1.3'
208
+ version: 0.0.16
209
+ - !ruby/object:Gem::Dependency
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ name: logstash-input-generator
216
+ prerelease: false
217
+ type: :development
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ name: timecop
230
+ prerelease: false
231
+ type: :development
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
89
237
  description: This gem is a logstash plugin required to be installed on top of the
90
238
  Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not
91
239
  a stand-alone program
@@ -106,8 +254,10 @@ files:
106
254
  - lib/logstash/inputs/s3/downloader.rb
107
255
  - lib/logstash/inputs/s3snssqs.rb
108
256
  - lib/logstash/inputs/s3snssqs/log_processor.rb
109
- - lib/logstash/inputs/s3sqs/patch.rb
110
257
  - lib/logstash/inputs/sqs/poller.rb
258
+ - lib/logstash/plugin_mixins/aws_config.rb
259
+ - lib/logstash/plugin_mixins/aws_config/generic.rb
260
+ - lib/logstash/plugin_mixins/aws_config/v2.rb
111
261
  - logstash-input-s3-sns-sqs.gemspec
112
262
  - spec/inputs/s3sqs_spec.rb
113
263
  homepage: https://github.com/cherweg/logstash-input-s3-sns-sqs
@@ -127,12 +277,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
277
  version: '0'
128
278
  required_rubygems_version: !ruby/object:Gem::Requirement
129
279
  requirements:
130
- - - ">="
280
+ - - ">"
131
281
  - !ruby/object:Gem::Version
132
- version: '0'
282
+ version: 1.3.1
133
283
  requirements: []
134
- rubyforge_project:
135
- rubygems_version: 2.6.13
284
+ rubygems_version: 3.2.29
136
285
  signing_key:
137
286
  specification_version: 4
138
287
  summary: Get logs from AWS s3 buckets as issued by an object-created event via sns
@@ -1,22 +0,0 @@
1
- # This patch was stolen from logstash-plugins/logstash-output-s3#102.
2
- #
3
- # This patch is a workaround for a JRuby issue which has been fixed in JRuby
4
- # 9000, but not in JRuby 1.7. See https://github.com/jruby/jruby/issues/3645
5
- # and https://github.com/jruby/jruby/issues/3920. This is necessary because the
6
- # `aws-sdk` is doing tricky name discovery to generate the correct error class.
7
- #
8
- # As per https://github.com/aws/aws-sdk-ruby/issues/1301#issuecomment-261115960,
9
- # this patch may be short-lived anyway.
10
- require 'aws-sdk'
11
-
12
- begin
13
- old_stderr = $stderr
14
- $stderr = StringIO.new
15
-
16
- module Aws
17
- const_set(:S3, Aws::S3)
18
- const_set(:SQS, Aws::SQS)
19
- end
20
- ensure
21
- $stderr = old_stderr
22
- end