logstash-output-file 2.2.5 → 3.0.0

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
  SHA1:
3
- metadata.gz: 5cbb0ffabd4f081efedc43d17d4acff421451e08
4
- data.tar.gz: 05ae333018ac79dcd6213ae79d6b3c4d0c4540b6
3
+ metadata.gz: 718248e031f059ad44be35fd67bb9b3fa85225cf
4
+ data.tar.gz: fddc513cf871aa596be1f2139606027edf8cedc9
5
5
  SHA512:
6
- metadata.gz: bb45bdf280c576b963a551349af9b96155b9292ce0a2e52ca05f1fb1373f9af85395a64ec6ad5b0c3fc2fadc65587051ee744b47abf76ee57b67d476c51d0173
7
- data.tar.gz: 927e3b300612c68e8f54230224798be6255bb4867ee3af6bf7de518dd0efd5400aa221c5519f0f512404964a204a1bb0bfe8715c1230bc57653c7eb6800dc7f5
6
+ metadata.gz: 55c52415f8a59a976e1d43853fca4d9bbf98d0c820f41c87b45dbfc65284ea744d0d1c2358767f2ee338b3ea2fc1da9ceb630e0f982e26bc76ccc7fc8255d60f
7
+ data.tar.gz: d22c09f2d103e421e6e1f67bc890e95f3f2f131fb57b3c7591ef56544f01ccb3c5bc0124a4182daa081b487e3d6f7602520895b23469705c1e0daeb44f8e2186
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ ## 3.0.0
2
+ - Update the plugin to the version 2.0 of the plugin api, this change is required for Logstash 5.0 compatibility. See https://github.com/elastic/logstash/issues/5141
1
3
  # 2.2.5
2
4
  - Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of logstash
3
5
  # 2.2.4
data/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
1
  source 'https://rubygems.org'
2
- gemspec
2
+
3
+ # Specify your gem's dependencies in logstash-mass_effect.gemspec
4
+ gemspec
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012–2015 Elasticsearch <http://www.elastic.co>
1
+ Copyright (c) 2012–2016 Elasticsearch <http://www.elastic.co>
2
2
 
3
3
  Licensed under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License.
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Logstash Plugin
2
2
 
3
- [![Build
4
- Status](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Outputs/job/logstash-plugin-output-file-unit/badge/icon)](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Outputs/job/logstash-plugin-output-file-unit/)
3
+ [![Travis Build Status](https://travis-ci.org/logstash-plugins/logstash-output-file.svg)](https://travis-ci.org/logstash-plugins/logstash-output-file)
5
4
 
6
5
  This is a plugin for [Logstash](https://github.com/elastic/logstash).
7
6
 
@@ -56,7 +55,12 @@ gem "logstash-filter-awesome", :path => "/your/local/logstash-filter-awesome"
56
55
  ```
57
56
  - Install plugin
58
57
  ```sh
58
+ # Logstash 2.3 and higher
59
+ bin/logstash-plugin install --no-verify
60
+
61
+ # Prior to Logstash 2.3
59
62
  bin/plugin install --no-verify
63
+
60
64
  ```
61
65
  - Run Logstash with your plugin
62
66
  ```sh
@@ -74,7 +78,12 @@ gem build logstash-filter-awesome.gemspec
74
78
  ```
75
79
  - Install the plugin from the Logstash home
76
80
  ```sh
77
- bin/plugin install /your/local/plugin/logstash-filter-awesome.gem
81
+ # Logstash 2.3 and higher
82
+ bin/logstash-plugin install --no-verify
83
+
84
+ # Prior to Logstash 2.3
85
+ bin/plugin install --no-verify
86
+
78
87
  ```
79
88
  - Start Logstash and proceed to test the plugin
80
89
 
@@ -54,8 +54,8 @@ class LogStash::Outputs::File < LogStash::Outputs::Base
54
54
  # into this file and inside the defined path.
55
55
  config :filename_failure, :validate => :string, :default => '_filepath_failures'
56
56
 
57
- # If the a file is deleted, but an event is comming with the need to be stored
58
- # in such a file, the plugin will created a gain this file. Default => true
57
+ # If the configured file is deleted, but an event is handled by the plugin,
58
+ # the plugin will recreate the file. Default => true
59
59
  config :create_if_deleted, :validate => :boolean, :default => true
60
60
 
61
61
  # Dir access mode to use. Note that due to the bug in jruby system umask
@@ -1,10 +1,10 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-output-file'
4
- s.version = '2.2.5'
4
+ s.version = '3.0.0'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "This output will write events to files on disk"
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"
7
+ s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
8
8
  s.authors = ["Elastic"]
9
9
  s.email = 'info@elastic.co'
10
10
  s.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html"
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
21
21
 
22
22
  # Gem dependencies
23
- s.add_runtime_dependency "logstash-core-plugin-api", "~> 1.0"
23
+ s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
24
24
  s.add_runtime_dependency 'logstash-codec-json_lines'
25
25
  s.add_runtime_dependency 'logstash-codec-line'
26
26
 
@@ -1,6 +1,7 @@
1
1
  # encoding: UTF-8
2
2
  require "logstash/devutils/rspec/spec_helper"
3
3
  require "logstash/outputs/file"
4
+ require "logstash/codecs/line"
4
5
  require "logstash/event"
5
6
  require "logstash/json"
6
7
  require "stud/temporary"
@@ -33,10 +34,10 @@ describe LogStash::Outputs::File do
33
34
 
34
35
  # Now check all events for order and correctness.
35
36
  events = tmp_file.map {|line| LogStash::Event.new(LogStash::Json.load(line))}
36
- sorted = events.sort_by {|e| e['sequence']}
37
+ sorted = events.sort_by {|e| e.get('sequence')}
37
38
  sorted.each do |event|
38
- insist {event["message"]} == "hello world"
39
- insist {event["sequence"]} == line_num
39
+ insist {event.get("message")} == "hello world"
40
+ insist {event.get("sequence")} == line_num
40
41
  line_num += 1
41
42
  end
42
43
 
@@ -68,10 +69,10 @@ describe LogStash::Outputs::File do
68
69
  line_num = 0
69
70
  # Now check all events for order and correctness.
70
71
  events = Zlib::GzipReader.open(tmp_file.path).map {|line| LogStash::Event.new(LogStash::Json.load(line)) }
71
- sorted = events.sort_by {|e| e["sequence"]}
72
+ sorted = events.sort_by {|e| e.get("sequence")}
72
73
  sorted.each do |event|
73
- insist {event["message"]} == "hello world"
74
- insist {event["sequence"]} == line_num
74
+ insist {event.get("message")} == "hello world"
75
+ insist {event.get("sequence")} == line_num
75
76
  line_num += 1
76
77
  end
77
78
  insist {line_num} == event_count
@@ -165,7 +166,7 @@ describe LogStash::Outputs::File do
165
166
  context "when trying to write outside the files root directory" do
166
167
  let(:bad_event) do
167
168
  event = LogStash::Event.new
168
- event['error'] = '../uncool/directory'
169
+ event.set('error', '../uncool/directory')
169
170
  event
170
171
  end
171
172
 
@@ -178,7 +179,7 @@ describe LogStash::Outputs::File do
178
179
 
179
180
  # Trying to write outside the file root
180
181
  outside_path = "#{'../' * path.split(File::SEPARATOR).size}notcool"
181
- bad_event["error"] = outside_path
182
+ bad_event.set("error", outside_path)
182
183
 
183
184
 
184
185
  output = LogStash::Outputs::File.new(config)
@@ -200,10 +201,10 @@ describe LogStash::Outputs::File do
200
201
  output = LogStash::Outputs::File.new({ "path" => "/#{path}/%{error}"})
201
202
  output.register
202
203
 
203
- bad_event['error'] = encoded_once
204
+ bad_event.set('error', encoded_once)
204
205
  output.receive(bad_event)
205
206
 
206
- bad_event['error'] = encoded_twice
207
+ bad_event.set('error', encoded_twice)
207
208
  output.receive(bad_event)
208
209
 
209
210
  expect(Dir.glob(File.join(path, "*")).size).to eq(2)
@@ -216,7 +217,7 @@ describe LogStash::Outputs::File do
216
217
  output = LogStash::Outputs::File.new({ "path" => "/#{path}/%{error}"})
217
218
  output.register
218
219
 
219
- bad_event['error'] = '../..//test'
220
+ bad_event.set('error', '../..//test')
220
221
  output.receive(bad_event)
221
222
 
222
223
  expect(Dir.glob(File.join(path, "*")).size).to eq(1)
@@ -228,7 +229,7 @@ describe LogStash::Outputs::File do
228
229
  context 'when trying to write inside the file root directory' do
229
230
  it 'write the event to the generated filename' do
230
231
  good_event = LogStash::Event.new
231
- good_event['error'] = '42.txt'
232
+ good_event.set('error', '42.txt')
232
233
 
233
234
  Stud::Temporary.directory do |path|
234
235
  config = { "path" => "#{path}/%{error}" }
@@ -236,7 +237,7 @@ describe LogStash::Outputs::File do
236
237
  output.register
237
238
  output.receive(good_event)
238
239
 
239
- good_file = File.join(path, good_event['error'])
240
+ good_file = File.join(path, good_event.get('error'))
240
241
  expect(File.exist?(good_file)).to eq(true)
241
242
  output.close
242
243
  end
@@ -284,7 +285,7 @@ describe LogStash::Outputs::File do
284
285
 
285
286
  it 'write the event to the generated filename with multiple deep' do
286
287
  good_event = LogStash::Event.new
287
- good_event['error'] = '/inside/errors/42.txt'
288
+ good_event.set('error', '/inside/errors/42.txt')
288
289
 
289
290
  Stud::Temporary.directory do |path|
290
291
  config = { "path" => "#{path}/%{error}" }
@@ -292,7 +293,7 @@ describe LogStash::Outputs::File do
292
293
  output.register
293
294
  output.receive(good_event)
294
295
 
295
- good_file = File.join(path, good_event['error'])
296
+ good_file = File.join(path, good_event.get('error'))
296
297
  expect(File.exist?(good_file)).to eq(true)
297
298
  output.close
298
299
  end
@@ -303,7 +304,7 @@ describe LogStash::Outputs::File do
303
304
  context "when using default configuration" do
304
305
  it 'write the event as a json line' do
305
306
  good_event = LogStash::Event.new
306
- good_event['message'] = 'hello world'
307
+ good_event.set('message', 'hello world')
307
308
 
308
309
  Stud::Temporary.directory do |path|
309
310
  config = { "path" => "#{path}/output.txt" }
@@ -315,7 +316,7 @@ describe LogStash::Outputs::File do
315
316
  output.close #teardown first to allow reading the file
316
317
  File.open(good_file) {|f|
317
318
  event = LogStash::Event.new(LogStash::Json.load(f.readline))
318
- expect(event["message"]).to eq("hello world")
319
+ expect(event.get("message")).to eq("hello world")
319
320
  }
320
321
  end
321
322
  end
@@ -323,7 +324,7 @@ describe LogStash::Outputs::File do
323
324
  context "when using line codec" do
324
325
  it 'writes event using specified format' do
325
326
  good_event = LogStash::Event.new
326
- good_event['message'] = "hello world"
327
+ good_event.set('message', "hello world")
327
328
 
328
329
  Stud::Temporary.directory do |path|
329
330
  config = { "path" => "#{path}/output.txt" }
@@ -344,7 +345,7 @@ describe LogStash::Outputs::File do
344
345
  context "when using deprecated message_format config" do
345
346
  it 'falls back to line codec' do
346
347
  good_event = LogStash::Event.new
347
- good_event['message'] = 'hello world'
348
+ good_event.set('message', 'hello world')
348
349
 
349
350
  Stud::Temporary.directory do |path|
350
351
  config = { "path" => "#{path}/output.txt", "message_format" => "Custom format: %{message}" }
@@ -364,7 +365,7 @@ describe LogStash::Outputs::File do
364
365
  context "when using file and dir modes" do
365
366
  it 'dirs and files are created with correct atypical permissions' do
366
367
  good_event = LogStash::Event.new
367
- good_event['message'] = "hello world"
368
+ good_event.set('message', "hello world")
368
369
 
369
370
  Stud::Temporary.directory do |path|
370
371
  config = {
@@ -385,7 +386,7 @@ describe LogStash::Outputs::File do
385
386
  output.close #teardown first to allow reading the file
386
387
  File.open(good_file) {|f|
387
388
  event = LogStash::Event.new(LogStash::Json.load(f.readline))
388
- expect(event["message"]).to eq("hello world")
389
+ expect(event.get("message")).to eq("hello world")
389
390
  }
390
391
  end
391
392
  end
metadata CHANGED
@@ -1,86 +1,88 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-file
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.5
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-24 00:00:00.000000000 Z
11
+ date: 2016-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: logstash-core-plugin-api
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - "~>"
17
18
  - !ruby/object:Gem::Version
18
- version: '1.0'
19
- name: logstash-core-plugin-api
20
- prerelease: false
19
+ version: '2.0'
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
+ name: logstash-codec-json_lines
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
- name: logstash-codec-json_lines
34
- prerelease: false
35
34
  type: :runtime
35
+ prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
+ name: logstash-codec-line
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - ">="
45
46
  - !ruby/object:Gem::Version
46
47
  version: '0'
47
- name: logstash-codec-line
48
- prerelease: false
49
48
  type: :runtime
49
+ prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
+ name: logstash-devutils
56
57
  requirement: !ruby/object:Gem::Requirement
57
58
  requirements:
58
59
  - - ">="
59
60
  - !ruby/object:Gem::Version
60
61
  version: '0'
61
- name: logstash-devutils
62
- prerelease: false
63
62
  type: :development
63
+ prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
+ name: logstash-input-generator
70
71
  requirement: !ruby/object:Gem::Requirement
71
72
  requirements:
72
73
  - - ">="
73
74
  - !ruby/object:Gem::Version
74
75
  version: '0'
75
- name: logstash-input-generator
76
- prerelease: false
77
76
  type: :development
77
+ prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- 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
83
+ description: This gem is a Logstash plugin required to be installed on top of the
84
+ Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This
85
+ gem is not a stand-alone program
84
86
  email: info@elastic.co
85
87
  executables: []
86
88
  extensions: []
@@ -101,7 +103,7 @@ licenses:
101
103
  metadata:
102
104
  logstash_plugin: 'true'
103
105
  logstash_group: output
104
- post_install_message:
106
+ post_install_message:
105
107
  rdoc_options: []
106
108
  require_paths:
107
109
  - lib
@@ -116,9 +118,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
118
  - !ruby/object:Gem::Version
117
119
  version: '0'
118
120
  requirements: []
119
- rubyforge_project:
120
- rubygems_version: 2.4.8
121
- signing_key:
121
+ rubyforge_project:
122
+ rubygems_version: 2.5.1
123
+ signing_key:
122
124
  specification_version: 4
123
125
  summary: This output will write events to files on disk
124
126
  test_files: