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

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: 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