logstash-integration-aws 7.1.4-java → 7.1.6-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/VERSION +1 -1
- data/docs/input-s3.asciidoc +1 -1
- data/docs/input-sqs.asciidoc +1 -1
- data/docs/output-s3.asciidoc +1 -1
- data/lib/logstash/outputs/s3.rb +19 -2
- data/lib/logstash-integration-aws_jars.rb +1 -1
- data/spec/outputs/s3_spec.rb +29 -0
- data/vendor/jar-dependencies/org/logstash/plugins/integration/aws/logstash-integration-aws/{7.1.4/logstash-integration-aws-7.1.4.jar → 7.1.6/logstash-integration-aws-7.1.6.jar} +0 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 163e3851149d6d1e0be9602a1298359cc355f57177bad417429a5c39840ca768
|
4
|
+
data.tar.gz: deadfc6ba818c8081ad796fc2180e80c189da9842b97e1cace008bb2fab44432
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21eaa2c5146017e907a18f7e1b1f479ecf708fd6a89fc771c1283a85a919545e02c064d5944ea29ee5d52bb562079816e8365a1063e810e22c5c6ab7a4b6a6b0
|
7
|
+
data.tar.gz: b65ae6b87d7340c8494877f4be303b83042a93769d99ade69c9d7bc27eced6bf3286fbfd30812cf299495ae0d920e124dbce27153c15bcac313d375bb69aaf6c
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 7.1.6
|
2
|
+
- Clean up plugin created temporary dirs at startup [#39](https://github.com/logstash-plugins/logstash-integration-aws/pull/39)
|
3
|
+
|
4
|
+
## 7.1.5
|
5
|
+
- Fix external documentation links [#35](https://github.com/logstash-plugins/logstash-integration-aws/pull/35)
|
6
|
+
|
1
7
|
## 7.1.4
|
2
8
|
- Fix `use_aws_bundled_ca` to use bundled ca certs per plugin level instead of global [#33](https://github.com/logstash-plugins/logstash-integration-aws/pull/33)
|
3
9
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
7.1.
|
1
|
+
7.1.6
|
data/docs/input-s3.asciidoc
CHANGED
@@ -109,7 +109,7 @@ This plugin uses the AWS SDK and supports several ways to get credentials, which
|
|
109
109
|
* Default value is `{}`
|
110
110
|
|
111
111
|
Key-value pairs of settings and corresponding values used to parametrize
|
112
|
-
the connection to s3. See full list in https://docs.aws.amazon.com/
|
112
|
+
the connection to s3. See full list in https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Client.html[the AWS SDK documentation]. Example:
|
113
113
|
|
114
114
|
[source,ruby]
|
115
115
|
input {
|
data/docs/input-sqs.asciidoc
CHANGED
@@ -131,7 +131,7 @@ This plugin uses the AWS SDK and supports several ways to get credentials, which
|
|
131
131
|
* Default value is `{}`
|
132
132
|
|
133
133
|
Key-value pairs of settings and corresponding values used to parametrize
|
134
|
-
the connection to SQS. See full list in https://docs.aws.amazon.com/sdk-for-ruby/
|
134
|
+
the connection to SQS. See full list in https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SQS/Client.html[the AWS SDK documentation]. Example:
|
135
135
|
|
136
136
|
[source,ruby]
|
137
137
|
input {
|
data/docs/output-s3.asciidoc
CHANGED
@@ -143,7 +143,7 @@ This plugin uses the AWS SDK and supports several ways to get credentials, which
|
|
143
143
|
* Default value is `{}`
|
144
144
|
|
145
145
|
Key-value pairs of settings and corresponding values used to parametrize
|
146
|
-
the connection to S3. See full list in https://docs.aws.amazon.com/
|
146
|
+
the connection to S3. See full list in https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Client.html[the AWS SDK documentation]. Example:
|
147
147
|
|
148
148
|
[source,ruby]
|
149
149
|
output {
|
data/lib/logstash/outputs/s3.rb
CHANGED
@@ -395,8 +395,9 @@ class LogStash::Outputs::S3 < LogStash::Outputs::Base
|
|
395
395
|
@crash_uploader = Uploader.new(bucket_resource, @logger, CRASH_RECOVERY_THREADPOOL)
|
396
396
|
|
397
397
|
temp_folder_path = Pathname.new(@temporary_directory)
|
398
|
-
|
399
|
-
|
398
|
+
all_files = Dir.glob(::File.join(@temporary_directory, "**/*"))
|
399
|
+
removed_dirs = remove_empty_dirs(all_files)
|
400
|
+
files = all_files.select { |file_path| !removed_dirs.include?(file_path) && ::File.file?(file_path) }
|
400
401
|
under_recovery_files = get_under_recovery_files(files)
|
401
402
|
|
402
403
|
files.each do |file_path|
|
@@ -439,4 +440,20 @@ class LogStash::Outputs::S3 < LogStash::Outputs::Base
|
|
439
440
|
end
|
440
441
|
skip_files
|
441
442
|
end
|
443
|
+
|
444
|
+
# Sorts explored files in desc order
|
445
|
+
# And proceeds bottom-up traversal remove operation if dir is empty
|
446
|
+
# Returns removed set to avoid duplicate Dir.glob process
|
447
|
+
def remove_empty_dirs(files)
|
448
|
+
removed_dirs = Set.new
|
449
|
+
files.sort { |x, y| y.length - x.length } # make sure to remove from leaf node
|
450
|
+
.select { |path| ::File.directory?(path) }
|
451
|
+
.select { |path| (Dir.entries(path) - %w[ . .. ]).empty? } # current and parent dirs escape
|
452
|
+
.each do |path|
|
453
|
+
@logger.debug? && @logger.debug("Removing empty temporary file", :path => path)
|
454
|
+
FileUtils.rm_f(path)
|
455
|
+
removed_dirs << path
|
456
|
+
end
|
457
|
+
removed_dirs
|
458
|
+
end
|
442
459
|
end
|
data/spec/outputs/s3_spec.rb
CHANGED
@@ -229,4 +229,33 @@ describe LogStash::Outputs::S3 do
|
|
229
229
|
end
|
230
230
|
end
|
231
231
|
end
|
232
|
+
|
233
|
+
context "remove empty dirs" do
|
234
|
+
|
235
|
+
before do
|
236
|
+
allow(File).to receive(:directory?).with('/path/to/bar-empty').and_return(true)
|
237
|
+
allow(File).to receive(:directory?).with('/path/to/foo/empty-dir').and_return(true)
|
238
|
+
allow(File).to receive(:directory?).with('/path/to/foo-file').and_return(true)
|
239
|
+
allow(File).to receive(:directory?).with('/path/to/foo-file/file.tmp').and_return(false)
|
240
|
+
allow(File).to receive(:directory?).with('/path/to/foo').and_return(true)
|
241
|
+
|
242
|
+
allow(Dir).to receive(:entries).with('/path/to/bar-empty').and_return([])
|
243
|
+
allow(Dir).to receive(:entries).with('/path/to/foo/empty-dir').and_return(%w(. ..))
|
244
|
+
allow(Dir).to receive(:entries).with('/path/to/foo-file').and_return(%w(/path/to/foo-file/file.tmp))
|
245
|
+
allow(Dir).to receive(:entries).with('/path/to/foo').and_return(%w(. .. empty-dir))
|
246
|
+
end
|
247
|
+
|
248
|
+
it "removes empty dirs" do
|
249
|
+
# Dir.glob() discovered files
|
250
|
+
files = %w(/path/to/bar-empty /path/to/foo/empty-dir /path/to/foo-file/file.tmp /path/to/foo-file)
|
251
|
+
removed_dirs = subject.send(:remove_empty_dirs, files)
|
252
|
+
|
253
|
+
expect(removed_dirs.include?('/path/to/bar-empty')).to be_truthy
|
254
|
+
expect(removed_dirs.include?('/path/to/foo/empty-dir')).to be_truthy
|
255
|
+
expect(removed_dirs.include?('/path/to/foo-file')).to be_falsey
|
256
|
+
expect(removed_dirs.include?('/path/to/foo-file/file.tmp')).to be_falsey
|
257
|
+
expect(removed_dirs.include?('/path/to/foo')).to be_falsey
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
232
261
|
end
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-integration-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.1.
|
4
|
+
version: 7.1.6
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -408,7 +408,7 @@ files:
|
|
408
408
|
- spec/spec_helper.rb
|
409
409
|
- spec/support/helpers.rb
|
410
410
|
- spec/unit/outputs/sqs_spec.rb
|
411
|
-
- vendor/jar-dependencies/org/logstash/plugins/integration/aws/logstash-integration-aws/7.1.
|
411
|
+
- vendor/jar-dependencies/org/logstash/plugins/integration/aws/logstash-integration-aws/7.1.6/logstash-integration-aws-7.1.6.jar
|
412
412
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
413
413
|
licenses:
|
414
414
|
- Apache-2.0
|