logstash-input-file 2.2.1 → 2.2.2
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 +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/logstash/inputs/file.rb +29 -6
- data/logstash-input-file.gemspec +2 -2
- data/spec/inputs/file_spec.rb +2 -6
- data/spec/spec_helper.rb +4 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adb0ee83a05f531fd594701ca39754fc78f7ec3a
|
4
|
+
data.tar.gz: 2cfe3f3ea0f532cde7d762821540d17180d0c927
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5c2ae3efb6a29d350c804bd419ba9dbbacae6370c8f0df38e14bdd7f88f95b2c9591865c18b636cab3f1545036b96f598f3e7034f2defae6f9c5e02b24f64d3
|
7
|
+
data.tar.gz: 198d997d546af886286a2cdfd7e27fbefc785268b696113ab3eb008d655395985322ca0a6f0c876ccaa8b38857ccfde97e70d5613af2a76d1d50e9dc176ced1b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 2.2.2
|
2
|
+
- Fix for: Filewatch library complains if HOME or SINCEDB_PATH variables are unset.
|
3
|
+
- [Issue #101](https://github.com/logstash-plugins/logstash-input-file/issues/101)
|
4
|
+
- [PR, filewatch 78](https://github.com/jordansissel/ruby-filewatch/pull/78) introduces the fix
|
5
|
+
- [Issue, filewatch 76](https://github.com/jordansissel/ruby-filewatch/issues/76)
|
6
|
+
- Improve documentation on ignore_older and close_older options [#104](https://github.com/logstash-plugins/logstash-input-file/issues/104) Documentation
|
7
|
+
|
1
8
|
## 2.2.1
|
2
9
|
- Fix spec failures on CI Linux builds (not seen on local OSX and Linux)
|
3
10
|
|
data/lib/logstash/inputs/file.rb
CHANGED
@@ -77,7 +77,7 @@ class LogStash::Codecs::Base
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
if !method_defined?(:auto_flush)
|
80
|
-
def auto_flush
|
80
|
+
def auto_flush(*)
|
81
81
|
end
|
82
82
|
end
|
83
83
|
end
|
@@ -139,14 +139,14 @@ class LogStash::Inputs::File < LogStash::Inputs::Base
|
|
139
139
|
# set the new line delimiter, defaults to "\n"
|
140
140
|
config :delimiter, :validate => :string, :default => "\n"
|
141
141
|
|
142
|
-
#
|
143
|
-
#
|
144
|
-
#
|
142
|
+
# When the file input discovers a file that was last modified
|
143
|
+
# before the specified timespan in seconds, the file is ignored.
|
144
|
+
# After it's discovery, if an ignored file is modified it is no
|
145
145
|
# longer ignored and any new data is read. The default is 24 hours.
|
146
146
|
config :ignore_older, :validate => :number, :default => 24 * 60 * 60
|
147
147
|
|
148
|
-
#
|
149
|
-
#
|
148
|
+
# The file input closes any files that were last read the specified
|
149
|
+
# timespan in seconds ago.
|
150
150
|
# This has different implications depending on if a file is being tailed or
|
151
151
|
# read. If tailing, and there is a large time gap in incoming data the file
|
152
152
|
# can be closed (allowing other files to be opened) but will be queued for
|
@@ -269,6 +269,10 @@ class LogStash::Inputs::File < LogStash::Inputs::Base
|
|
269
269
|
end
|
270
270
|
end
|
271
271
|
|
272
|
+
class FlushableListener < ListenerTail
|
273
|
+
attr_writer :path
|
274
|
+
end
|
275
|
+
|
272
276
|
def listener_for(path)
|
273
277
|
# path is the identity
|
274
278
|
ListenerTail.new(path, self)
|
@@ -288,6 +292,7 @@ class LogStash::Inputs::File < LogStash::Inputs::Base
|
|
288
292
|
begin_tailing
|
289
293
|
@queue = queue
|
290
294
|
@tail.subscribe(self)
|
295
|
+
exit_flush
|
291
296
|
end # def run
|
292
297
|
|
293
298
|
def post_process_this(event)
|
@@ -310,4 +315,22 @@ class LogStash::Inputs::File < LogStash::Inputs::Base
|
|
310
315
|
@tail.quit
|
311
316
|
end
|
312
317
|
end
|
318
|
+
|
319
|
+
private
|
320
|
+
|
321
|
+
def exit_flush
|
322
|
+
listener = FlushableListener.new("none", self)
|
323
|
+
if @codec.identity_count.zero?
|
324
|
+
# using the base codec without identity/path info
|
325
|
+
@codec.base_codec.flush do |event|
|
326
|
+
begin
|
327
|
+
listener.process_event(event)
|
328
|
+
rescue => e
|
329
|
+
@logger.error("File Input: flush on exit downstream error", :exception => e)
|
330
|
+
end
|
331
|
+
end
|
332
|
+
else
|
333
|
+
@codec.flush_mapped(listener)
|
334
|
+
end
|
335
|
+
end
|
313
336
|
end # class LogStash::Inputs::File
|
data/logstash-input-file.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-input-file'
|
4
|
-
s.version = '2.2.
|
4
|
+
s.version = '2.2.2'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Stream events from files."
|
7
7
|
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"
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
|
25
25
|
s.add_runtime_dependency 'logstash-codec-plain'
|
26
26
|
s.add_runtime_dependency 'addressable'
|
27
|
-
s.add_runtime_dependency 'filewatch', ['>= 0.8.
|
27
|
+
s.add_runtime_dependency 'filewatch', ['>= 0.8.1', '~> 0.8']
|
28
28
|
s.add_runtime_dependency 'logstash-codec-multiline', ['~> 2.0.7']
|
29
29
|
|
30
30
|
s.add_development_dependency 'stud', ['~> 0.0.19']
|
data/spec/inputs/file_spec.rb
CHANGED
@@ -181,15 +181,11 @@ describe LogStash::Inputs::File do
|
|
181
181
|
expect(events.size).to eq(0)
|
182
182
|
File.open(tmpfile_path, "a") { |fd| fd.puts("hello"); fd.puts("world") }
|
183
183
|
end
|
184
|
-
.then_after(0.
|
185
|
-
expect(events.size).to eq(1)
|
186
|
-
end
|
187
|
-
.then_after(0.1, "quit") do
|
184
|
+
.then_after(0.25, "quit") do
|
188
185
|
subject.stop
|
189
186
|
end
|
187
|
+
|
190
188
|
subject.run(events)
|
191
|
-
# stop flushes the second event
|
192
|
-
expect(events.size).to eq(2)
|
193
189
|
|
194
190
|
event1 = events[0]
|
195
191
|
expect(event1).not_to be_nil
|
data/spec/spec_helper.rb
CHANGED
@@ -47,9 +47,12 @@ module FileInput
|
|
47
47
|
def accept(listener)
|
48
48
|
@tracer.push [:accept, true]
|
49
49
|
end
|
50
|
-
def auto_flush()
|
50
|
+
def auto_flush(*)
|
51
51
|
@tracer.push [:auto_flush, true]
|
52
52
|
end
|
53
|
+
def flush(*)
|
54
|
+
@tracer.push [:flush, true]
|
55
|
+
end
|
53
56
|
def close
|
54
57
|
@tracer.push [:close, true]
|
55
58
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-file
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logstash-core
|
@@ -64,7 +64,7 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - '>='
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 0.8.
|
67
|
+
version: 0.8.1
|
68
68
|
- - ~>
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0.8'
|
@@ -72,7 +72,7 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.8.
|
75
|
+
version: 0.8.1
|
76
76
|
- - ~>
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: '0.8'
|