logstash-core 2.2.3.snapshot2-java → 2.2.4-java

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of logstash-core might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2804fb78dfe3053c38a14f52877407e651b62878
4
- data.tar.gz: 9cd86c83af36368781c13cff02b791b5573a883c
3
+ metadata.gz: f831ead5e4ec098fc912b8f54e9f9d69798f7e9a
4
+ data.tar.gz: c26099f244c689551f1218eecdeae0608a30f053
5
5
  SHA512:
6
- metadata.gz: 9eff83576a0f081123345aa34aa7e37c7948a366057d3066de45cbf1eaf4949094310b0617d4d56f3360583cd808bdffddad3250d3b5643b2f6b8ecbecee1ffd
7
- data.tar.gz: d30e2c02b83ff8f964bbda2d2f0dbafe8d77e709e50690f140f68b0753036b4b409048d889c42acdbe9fbf414afe16f5d71878834f9caa7058a6943440625f65
6
+ metadata.gz: bd2d386fae5c0b15b95cd89b8e1a794f8baa4c3c73e3979c0709bcc3c39b6a2146257215a1fc4d404103f8b209ad15127833862f6846c18420983978a1a06e09
7
+ data.tar.gz: 3e272ebe1527efb486eec984152de845cb3a3ac21f7419b7d96f3e3ee2c6182344dc147e64862357d5837ddaff9be803568ce5cab661629aaa4b770922b1f0e4
@@ -5,4 +5,4 @@
5
5
  # Note to authors: this should not include dashes because 'gem' barfs if
6
6
  # you include a dash in the version string.
7
7
 
8
- LOGSTASH_CORE_VERSION = "2.2.3.snapshot2"
8
+ LOGSTASH_CORE_VERSION = "2.2.4"
@@ -9,6 +9,7 @@ require "logstash/pipeline"
9
9
  LogStash::Environment.load_locale!
10
10
 
11
11
  class LogStash::Agent < Clamp::Command
12
+
12
13
  DEFAULT_INPUT = "input { stdin { type => stdin } }"
13
14
  DEFAULT_OUTPUT = "output { stdout { codec => rubydebug } }"
14
15
 
@@ -53,6 +54,10 @@ class LogStash::Agent < Clamp::Command
53
54
  option "--verbose", :flag, I18n.t("logstash.agent.flag.verbose")
54
55
  option "--debug", :flag, I18n.t("logstash.agent.flag.debug")
55
56
 
57
+ option "--debug-config", :flag,
58
+ I18n.t("logstash.runner.flag.debug_config"),
59
+ :attribute_name => :debug_config, :default => false
60
+
56
61
  option ["-V", "--version"], :flag,
57
62
  I18n.t("logstash.agent.flag.version")
58
63
 
@@ -263,6 +268,7 @@ class LogStash::Agent < Clamp::Command
263
268
  #
264
269
  # Log file stuff, plugin path checking, etc.
265
270
  def configure
271
+ @pipeline_settings[:debug_config] = debug_config?
266
272
  configure_logging(log_file)
267
273
  configure_plugin_paths(plugin_paths)
268
274
  end # def configure
@@ -51,7 +51,7 @@ module LogStash::Config::Mixin
51
51
  # Keep a copy of the original config params so that we can later
52
52
  # differentiate between explicit configuration and implicit (default)
53
53
  # configuration.
54
- @original_params = params.clone
54
+ original_params = params.clone
55
55
 
56
56
  # store the plugin type, turns LogStash::Inputs::Base into 'input'
57
57
  @plugin_type = self.class.ancestors.find { |a| a.name =~ /::Base$/ }.config_name
@@ -123,6 +123,11 @@ module LogStash::Config::Mixin
123
123
  instance_variable_set("@#{key}", value)
124
124
  end
125
125
 
126
+ # now that we know the parameters are valid, we can obfuscate the original copy
127
+ # of the parameters before storing them as an instance variable
128
+ self.class.secure_params!(original_params)
129
+ @original_params = original_params
130
+
126
131
  @config = params
127
132
  end # def config_init
128
133
 
@@ -495,6 +500,14 @@ module LogStash::Config::Mixin
495
500
  return true, result
496
501
  end # def validate_value
497
502
 
503
+ def secure_params!(params)
504
+ params.each do |key, value|
505
+ if @config[key][:validate] == :password && !value.is_a?(::LogStash::Util::Password)
506
+ params[key] = ::LogStash::Util::Password.new(value)
507
+ end
508
+ end
509
+ end
510
+
498
511
  def hash_or_array(value)
499
512
  if !value.is_a?(Hash)
500
513
  value = [*value] # coerce scalar to array if necessary
@@ -134,7 +134,7 @@ module LogStash class OutputDelegator
134
134
  end
135
135
 
136
136
  def do_close
137
- @logger.debug("closing output delegator", :klass => self)
137
+ @logger.debug("closing output delegator", :klass => @klass)
138
138
 
139
139
  if @threadsafe
140
140
  @workers.each(&:do_close)
@@ -24,7 +24,8 @@ module LogStash; class Pipeline
24
24
  :pipeline_batch_size => 125,
25
25
  :pipeline_batch_delay => 5, # in milliseconds
26
26
  :flush_interval => 5, # in seconds
27
- :flush_timeout_interval => 60 # in seconds
27
+ :flush_timeout_interval => 60, # in seconds
28
+ :debug_config => false
28
29
  }
29
30
  MAX_INFLIGHT_WARN_THRESHOLD = 10_000
30
31
 
@@ -52,7 +53,9 @@ module LogStash; class Pipeline
52
53
  code = @config.compile
53
54
  # The config code is hard to represent as a log message...
54
55
  # So just print it.
55
- @logger.debug? && @logger.debug("Compiled pipeline code:\n#{code}")
56
+ if @settings[:debug_config]
57
+ @logger.debug? && @logger.debug("Compiled pipeline code:\n#{code}")
58
+ end
56
59
  begin
57
60
  eval(code)
58
61
  rescue => e
@@ -479,4 +482,18 @@ module LogStash; class Pipeline
479
482
  .each {|t| t.delete("blocked_on") }
480
483
  .each {|t| t.delete("status") }
481
484
  end
485
+
486
+ # Sometimes we log stuff that will dump the pipeline which may contain
487
+ # sensitive information (like the raw syntax tree which can contain passwords)
488
+ # We want to hide most of what's in here
489
+ def inspect
490
+ {
491
+ :pipeline_id => @pipeline_id,
492
+ :settings => @settings.inspect,
493
+ :ready => @ready,
494
+ :running => @running,
495
+ :flushing => @flushing
496
+ }
497
+ end
498
+
482
499
  end end
@@ -11,4 +11,4 @@
11
11
  # eventually this file should be in the root logstash lib fir and dependencies in logstash-core should be
12
12
  # fixed.
13
13
 
14
- LOGSTASH_VERSION = "2.2.3.snapshot2"
14
+ LOGSTASH_VERSION = "2.2.4"
@@ -193,6 +193,10 @@ en:
193
193
  debug: |+
194
194
  Most verbose logging. This causes 'debug'
195
195
  level logs to be emitted.
196
+ debug-config: |+
197
+ Print the compiled config ruby code out as a debug log (you must also have --debug enabled).
198
+ WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result
199
+ in plaintext passwords appearing in your logs!
196
200
  unsafe_shutdown: |+
197
201
  Force logstash to exit during shutdown even
198
202
  if there are still inflight events in memory.
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.require_paths = ["lib"]
18
18
  gem.version = LOGSTASH_CORE_VERSION
19
19
 
20
- gem.add_runtime_dependency "logstash-core-event", "~> 2.2.3.snapshot2"
20
+ gem.add_runtime_dependency "logstash-core-event", "~> 2.2.4"
21
21
 
22
22
  gem.add_runtime_dependency "cabin", "~> 0.7.0" #(Apache 2.0 license)
23
23
  gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license)
@@ -58,5 +58,28 @@ describe LogStash::Agent do
58
58
  subject.configure_plugin_paths(multiple_paths)
59
59
  end
60
60
  end
61
- end
62
61
 
62
+ describe "debug_config" do
63
+ let(:pipeline_string) { "input {} output {}" }
64
+ let(:pipeline) { double("pipeline") }
65
+
66
+ before(:each) do
67
+ allow(pipeline).to receive(:run)
68
+ end
69
+ it "should set 'debug_config' to false by default" do
70
+ expect(LogStash::Pipeline).to receive(:new).
71
+ with(anything,hash_including(:debug_config => false)).
72
+ and_return(pipeline)
73
+ args = ["--debug", "-e", pipeline_string]
74
+ subject.run(args)
75
+ end
76
+
77
+ it "should allow overriding debug_config" do
78
+ expect(LogStash::Pipeline).to receive(:new).
79
+ with(anything, hash_including(:debug_config => true))
80
+ .and_return(pipeline)
81
+ args = ["--debug", "--debug-config", "-e", pipeline_string]
82
+ subject.run(args)
83
+ end
84
+ end
85
+ end
@@ -96,6 +96,10 @@ describe LogStash::Config::Mixin do
96
96
  clone = subject.class.new(subject.params)
97
97
  expect(clone.password.value).to(be == secret)
98
98
  end
99
+
100
+ it "should obfuscate original_params" do
101
+ expect(subject.original_params['password']).to(be_a(LogStash::Util::Password))
102
+ end
99
103
  end
100
104
 
101
105
  describe "obsolete settings" do
@@ -416,7 +416,7 @@ describe LogStash::Pipeline do
416
416
  Thread.new { pipeline.run }
417
417
  sleep 0.1 while !pipeline.ready?
418
418
  # give us a bit of time to flush the events
419
- wait(5).for do
419
+ wait(15).for do
420
420
  next unless output && output.events && output.events.first
421
421
  output.events.first["message"].split("\n").count
422
422
  end.to eq(number_of_events)
@@ -40,7 +40,7 @@ describe LogStash::Runner do
40
40
 
41
41
  describe "pipeline settings" do
42
42
  let(:pipeline_string) { "input { stdin {} } output { stdout {} }" }
43
- let(:base_pipeline_settings) { { :pipeline_id => "base" } }
43
+ let(:base_pipeline_settings) { { :pipeline_id => "base", :debug_config => false } }
44
44
  let(:pipeline) { double("pipeline") }
45
45
 
46
46
  before(:each) do
metadata CHANGED
@@ -1,33 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.3.snapshot2
4
+ version: 2.2.4
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-25 00:00:00.000000000 Z
11
+ date: 2016-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ~>
16
+ - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 2.2.3.snapshot2
18
+ version: 2.2.4
19
19
  name: logstash-core-event
20
20
  prerelease: false
21
21
  type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.2.3.snapshot2
26
+ version: 2.2.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ~>
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.7.0
33
33
  name: cabin
@@ -35,13 +35,13 @@ dependencies:
35
35
  type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.7.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ~>
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: 0.10.1
47
47
  name: pry
@@ -49,13 +49,13 @@ dependencies:
49
49
  type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.10.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ~>
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: 0.0.19
61
61
  name: stud
@@ -63,13 +63,13 @@ dependencies:
63
63
  type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.0.19
69
69
  - !ruby/object:Gem::Dependency
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - ~>
72
+ - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: 0.6.5
75
75
  name: clamp
@@ -77,7 +77,7 @@ dependencies:
77
77
  type: :runtime
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.6.5
83
83
  - !ruby/object:Gem::Dependency
@@ -97,7 +97,7 @@ dependencies:
97
97
  - !ruby/object:Gem::Dependency
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ~>
100
+ - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: 0.8.3
103
103
  name: gems
@@ -105,7 +105,7 @@ dependencies:
105
105
  type: :runtime
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.8.3
111
111
  - !ruby/object:Gem::Dependency
@@ -139,7 +139,7 @@ dependencies:
139
139
  - !ruby/object:Gem::Dependency
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - <
142
+ - - "<"
143
143
  - !ruby/object:Gem::Version
144
144
  version: 1.5.0
145
145
  name: treetop
@@ -147,7 +147,7 @@ dependencies:
147
147
  type: :runtime
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - <
150
+ - - "<"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.5.0
153
153
  - !ruby/object:Gem::Dependency
@@ -167,7 +167,7 @@ dependencies:
167
167
  - !ruby/object:Gem::Dependency
168
168
  requirement: !ruby/object:Gem::Requirement
169
169
  requirements:
170
- - - ~>
170
+ - - "~>"
171
171
  - !ruby/object:Gem::Version
172
172
  version: 0.5.4
173
173
  name: minitar
@@ -175,13 +175,13 @@ dependencies:
175
175
  type: :runtime
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ~>
178
+ - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: 0.5.4
181
181
  - !ruby/object:Gem::Dependency
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
184
- - - ~>
184
+ - - "~>"
185
185
  - !ruby/object:Gem::Version
186
186
  version: 1.1.7
187
187
  name: rubyzip
@@ -189,13 +189,13 @@ dependencies:
189
189
  type: :runtime
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ~>
192
+ - - "~>"
193
193
  - !ruby/object:Gem::Version
194
194
  version: 1.1.7
195
195
  - !ruby/object:Gem::Dependency
196
196
  requirement: !ruby/object:Gem::Requirement
197
197
  requirements:
198
- - - ~>
198
+ - - "~>"
199
199
  - !ruby/object:Gem::Version
200
200
  version: 0.3.5
201
201
  name: thread_safe
@@ -203,13 +203,13 @@ dependencies:
203
203
  type: :runtime
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ~>
206
+ - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: 0.3.5
209
209
  - !ruby/object:Gem::Dependency
210
210
  requirement: !ruby/object:Gem::Requirement
211
211
  requirements:
212
- - - ~>
212
+ - - "~>"
213
213
  - !ruby/object:Gem::Version
214
214
  version: 0.3.7
215
215
  name: jrjackson
@@ -217,7 +217,7 @@ dependencies:
217
217
  type: :runtime
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - ~>
220
+ - - "~>"
221
221
  - !ruby/object:Gem::Version
222
222
  version: 0.3.7
223
223
  description: The core components of logstash, the scalable log and event management tool
@@ -318,14 +318,14 @@ require_paths:
318
318
  - lib
319
319
  required_ruby_version: !ruby/object:Gem::Requirement
320
320
  requirements:
321
- - - '>='
321
+ - - ">="
322
322
  - !ruby/object:Gem::Version
323
323
  version: '0'
324
324
  required_rubygems_version: !ruby/object:Gem::Requirement
325
325
  requirements:
326
- - - '>'
326
+ - - ">="
327
327
  - !ruby/object:Gem::Version
328
- version: 1.3.1
328
+ version: '0'
329
329
  requirements: []
330
330
  rubyforge_project:
331
331
  rubygems_version: 2.4.8