logstash-core 2.3.3.snapshot1-java → 2.3.3.snapshot2-java
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.
Potentially problematic release.
This version of logstash-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/logstash-core/version.rb +1 -1
- data/lib/logstash/agent.rb +30 -22
- data/lib/logstash/config/config_ast.rb +30 -17
- data/lib/logstash/config/loader.rb +2 -2
- data/lib/logstash/version.rb +1 -1
- data/locales/en.yml +6 -3
- data/logstash-core.gemspec +1 -1
- data/spec/logstash/config/config_ast_spec.rb +47 -2
- data/spec/logstash/pipeline_spec.rb +16 -0
- data/spec/static/i18n_spec.rb +25 -0
- metadata +29 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af008eb73fd26bbd55cc20cd8ff1d64fc9162689
|
4
|
+
data.tar.gz: c0720a21e07aba5d4142f41bfb7254e8be8d135a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bba77ba08e638549e65a27b7787cca72ca80c92333774c2b9f483c1e622c043f08140334875f3096f063595313796eb037157e71acb8010872ba6d32f5ee7b90
|
7
|
+
data.tar.gz: d34568b2b7e15b021e65d050c5e1d4dd80a33e46ec2a2ed622f328998d4f6fbb596ad426ef9ec3408ef2401f94a675479dde64824ef36985cd54fd771c3053a3
|
data/lib/logstash/agent.rb
CHANGED
@@ -59,7 +59,7 @@ class LogStash::Agent < Clamp::Command
|
|
59
59
|
option "--debug", :flag, I18n.t("logstash.agent.flag.debug")
|
60
60
|
|
61
61
|
option ["--debug-config"], :flag,
|
62
|
-
I18n.t("logstash.
|
62
|
+
I18n.t("logstash.agent.flag.debug_config"),
|
63
63
|
:attribute_name => :debug_config, :default => false
|
64
64
|
|
65
65
|
option ["-V", "--version"], :flag,
|
@@ -376,22 +376,6 @@ class LogStash::Agent < Clamp::Command
|
|
376
376
|
end
|
377
377
|
end
|
378
378
|
|
379
|
-
def create_pipeline(settings)
|
380
|
-
begin
|
381
|
-
config = fetch_config(settings)
|
382
|
-
rescue => e
|
383
|
-
@logger.error("failed to fetch pipeline configuration", :message => e.message)
|
384
|
-
return
|
385
|
-
end
|
386
|
-
|
387
|
-
begin
|
388
|
-
LogStash::Pipeline.new(config, settings)
|
389
|
-
rescue => e
|
390
|
-
@logger.error("fetched an invalid config", :config => config, :reason => e.message)
|
391
|
-
return
|
392
|
-
end
|
393
|
-
end
|
394
|
-
|
395
379
|
def start_pipelines
|
396
380
|
@pipelines.each { |id, _| start_pipeline(id) }
|
397
381
|
end
|
@@ -429,6 +413,25 @@ class LogStash::Agent < Clamp::Command
|
|
429
413
|
start_pipeline(pipeline_id)
|
430
414
|
end
|
431
415
|
|
416
|
+
def create_pipeline(settings, config=nil)
|
417
|
+
|
418
|
+
if config.nil?
|
419
|
+
begin
|
420
|
+
config = fetch_config(settings)
|
421
|
+
rescue => e
|
422
|
+
@logger.error("failed to fetch pipeline configuration", :message => e.message)
|
423
|
+
return
|
424
|
+
end
|
425
|
+
end
|
426
|
+
|
427
|
+
begin
|
428
|
+
LogStash::Pipeline.new(config, settings)
|
429
|
+
rescue => e
|
430
|
+
@logger.error("fetched an invalid config", :config => config, :reason => e.message)
|
431
|
+
return
|
432
|
+
end
|
433
|
+
end
|
434
|
+
|
432
435
|
def clean_state?
|
433
436
|
@pipelines.empty?
|
434
437
|
end
|
@@ -437,16 +440,21 @@ class LogStash::Agent < Clamp::Command
|
|
437
440
|
# wrapped in @upgrade_mutex in the parent call `reload_state!`
|
438
441
|
def reload_pipeline!(id)
|
439
442
|
old_pipeline = @pipelines[id]
|
440
|
-
|
443
|
+
new_config = fetch_config(old_pipeline.original_settings)
|
444
|
+
if old_pipeline.config_str == new_config
|
445
|
+
@logger.debug("no configuration change for pipeline",
|
446
|
+
:pipeline => id, :config => new_config)
|
447
|
+
return
|
448
|
+
end
|
449
|
+
|
450
|
+
new_pipeline = create_pipeline(old_pipeline.original_settings, new_config)
|
441
451
|
return if new_pipeline.nil?
|
442
452
|
|
443
|
-
if
|
444
|
-
@logger.debug("no configuration change for pipeline",
|
445
|
-
:pipeline => id, :config => old_pipeline.config_str)
|
446
|
-
elsif new_pipeline.non_reloadable_plugins.any?
|
453
|
+
if new_pipeline.non_reloadable_plugins.any?
|
447
454
|
@logger.error(I18n.t("logstash.agent.non_reloadable_config_reload"),
|
448
455
|
:pipeline_id => id,
|
449
456
|
:plugins => new_pipeline.non_reloadable_plugins.map(&:class))
|
457
|
+
return
|
450
458
|
else
|
451
459
|
@logger.log("fetched new config for pipeline. upgrading..",
|
452
460
|
:pipeline => id, :config => new_pipeline.config_str)
|
@@ -76,6 +76,14 @@ module LogStash; module Config; module AST
|
|
76
76
|
@defered_conditionals_index = val
|
77
77
|
end
|
78
78
|
|
79
|
+
def self.plugin_instance_index
|
80
|
+
@plugin_instance_index
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.plugin_instance_index=(val)
|
84
|
+
@plugin_instance_index = val
|
85
|
+
end
|
86
|
+
|
79
87
|
class Node < Treetop::Runtime::SyntaxNode
|
80
88
|
def text_value_for_comments
|
81
89
|
text_value.gsub(/[\r\n]/, " ")
|
@@ -86,6 +94,7 @@ module LogStash; module Config; module AST
|
|
86
94
|
def compile
|
87
95
|
LogStash::Config::AST.defered_conditionals = []
|
88
96
|
LogStash::Config::AST.defered_conditionals_index = 0
|
97
|
+
LogStash::Config::AST.plugin_instance_index = 0
|
89
98
|
code = []
|
90
99
|
|
91
100
|
code << <<-CODE
|
@@ -94,6 +103,7 @@ module LogStash; module Config; module AST
|
|
94
103
|
@outputs = []
|
95
104
|
@periodic_flushers = []
|
96
105
|
@shutdown_flushers = []
|
106
|
+
@generated_objects = {}
|
97
107
|
CODE
|
98
108
|
|
99
109
|
sections = recursive_select(LogStash::Config::AST::PluginSection)
|
@@ -137,7 +147,9 @@ module LogStash; module Config; module AST
|
|
137
147
|
class PluginSection < Node
|
138
148
|
# Global plugin numbering for the janky instance variable naming we use
|
139
149
|
# like @filter_<name>_1
|
140
|
-
|
150
|
+
def initialize(*args)
|
151
|
+
super(*args)
|
152
|
+
end
|
141
153
|
|
142
154
|
# Generate ruby code to initialize all the plugins.
|
143
155
|
def compile_initializer
|
@@ -147,31 +159,31 @@ module LogStash; module Config; module AST
|
|
147
159
|
|
148
160
|
|
149
161
|
code << <<-CODE
|
150
|
-
|
151
|
-
@#{plugin.plugin_type}s <<
|
162
|
+
@generated_objects[:#{name}] = #{plugin.compile_initializer}
|
163
|
+
@#{plugin.plugin_type}s << @generated_objects[:#{name}]
|
152
164
|
CODE
|
153
165
|
|
154
166
|
# The flush method for this filter.
|
155
167
|
if plugin.plugin_type == "filter"
|
156
168
|
|
157
169
|
code << <<-CODE
|
158
|
-
|
159
|
-
@logger.debug? && @logger.debug(\"Flushing\", :plugin =>
|
170
|
+
@generated_objects[:#{name}_flush] = lambda do |options, &block|
|
171
|
+
@logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}])
|
160
172
|
|
161
|
-
events =
|
173
|
+
events = @generated_objects[:#{name}].flush(options)
|
162
174
|
|
163
175
|
return if events.nil? || events.empty?
|
164
176
|
|
165
|
-
@logger.debug? && @logger.debug(\"Flushing\", :plugin =>
|
177
|
+
@logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}], :events => events)
|
166
178
|
|
167
179
|
#{plugin.compile_starting_here.gsub(/^/, " ")}
|
168
180
|
|
169
181
|
events.each{|e| block.call(e)}
|
170
182
|
end
|
171
183
|
|
172
|
-
if
|
173
|
-
@periodic_flushers <<
|
174
|
-
@shutdown_flushers <<
|
184
|
+
if @generated_objects[:#{name}].respond_to?(:flush)
|
185
|
+
@periodic_flushers << @generated_objects[:#{name}_flush] if @generated_objects[:#{name}].periodic_flush
|
186
|
+
@shutdown_flushers << @generated_objects[:#{name}_flush]
|
175
187
|
end
|
176
188
|
CODE
|
177
189
|
|
@@ -192,9 +204,10 @@ module LogStash; module Config; module AST
|
|
192
204
|
|
193
205
|
plugins.each do |plugin|
|
194
206
|
# Unique number for every plugin.
|
195
|
-
|
207
|
+
LogStash::Config::AST.plugin_instance_index += 1
|
196
208
|
# store things as ivars, like @filter_grok_3
|
197
|
-
var = "
|
209
|
+
var = :"#{plugin.plugin_type}_#{plugin.plugin_name}_#{LogStash::Config::AST.plugin_instance_index}"
|
210
|
+
# puts("var=#{var.inspect}")
|
198
211
|
@variables[plugin] = var
|
199
212
|
end
|
200
213
|
return @variables
|
@@ -236,13 +249,13 @@ module LogStash; module Config; module AST
|
|
236
249
|
def compile
|
237
250
|
case plugin_type
|
238
251
|
when "input"
|
239
|
-
return "start_input(
|
252
|
+
return "start_input(@generated_objects[:#{variable_name}])"
|
240
253
|
when "filter"
|
241
254
|
return <<-CODE
|
242
|
-
events =
|
255
|
+
events = @generated_objects[:#{variable_name}].multi_filter(events)
|
243
256
|
CODE
|
244
257
|
when "output"
|
245
|
-
return "targeted_outputs <<
|
258
|
+
return "targeted_outputs << @generated_objects[:#{variable_name}]\n"
|
246
259
|
when "codec"
|
247
260
|
settings = attributes.recursive_select(Attribute).collect(&:compile).reject(&:empty?)
|
248
261
|
attributes_code = "LogStash::Util.hash_merge_many(#{settings.map { |c| "{ #{c} }" }.join(", ")})"
|
@@ -391,7 +404,7 @@ module LogStash; module Config; module AST
|
|
391
404
|
if type == "filter"
|
392
405
|
i = LogStash::Config::AST.defered_conditionals_index += 1
|
393
406
|
source = <<-CODE
|
394
|
-
|
407
|
+
@generated_objects[:cond_func_#{i}] = lambda do |input_events|
|
395
408
|
result = []
|
396
409
|
input_events.each do |event|
|
397
410
|
events = [event]
|
@@ -405,7 +418,7 @@ module LogStash; module Config; module AST
|
|
405
418
|
LogStash::Config::AST.defered_conditionals << source
|
406
419
|
|
407
420
|
<<-CODE
|
408
|
-
events = cond_func_#{i}(events)
|
421
|
+
events = @generated_objects[:cond_func_#{i}].call(events)
|
409
422
|
CODE
|
410
423
|
else # Output
|
411
424
|
<<-CODE
|
@@ -55,7 +55,7 @@ module LogStash; module Config; class Loader
|
|
55
55
|
path = ::File.join(path, "*") if ::File.directory?(path)
|
56
56
|
|
57
57
|
if Dir.glob(path).length == 0
|
58
|
-
fail(I18n.t("logstash.
|
58
|
+
fail(I18n.t("logstash.agent.configuration.file-not-found", :path => path))
|
59
59
|
end
|
60
60
|
|
61
61
|
config = ""
|
@@ -91,7 +91,7 @@ module LogStash; module Config; class Loader
|
|
91
91
|
begin
|
92
92
|
Net::HTTP.get(uri) + "\n"
|
93
93
|
rescue Exception => e
|
94
|
-
fail(I18n.t("logstash.
|
94
|
+
fail(I18n.t("logstash.agent.configuration.fetch-failed", :path => uri.to_s, :message => e.message))
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end end end
|
data/lib/logstash/version.rb
CHANGED
data/locales/en.yml
CHANGED
@@ -78,8 +78,7 @@ en:
|
|
78
78
|
non_reloadable_config_reload: >-
|
79
79
|
Unable to reload configuration because it does not support dynamic reloading
|
80
80
|
non_reloadable_config_register: |-
|
81
|
-
Logstash
|
82
|
-
dynamic reloading and -r or --auto-reload flag was enabled
|
81
|
+
Logstash is not able to start since configuration auto reloading was enabled but the configuration contains plugins that don't support it. Quitting...
|
83
82
|
configtest-flag-information: |-
|
84
83
|
You may be interested in the '--configtest' flag which you can
|
85
84
|
use to validate logstash's configuration before you choose
|
@@ -221,4 +220,8 @@ en:
|
|
221
220
|
Force logstash to exit during shutdown even
|
222
221
|
if there are still inflight events in memory.
|
223
222
|
By default, logstash will refuse to quit until all
|
224
|
-
received events have been pushed to the outputs.
|
223
|
+
received events have been pushed to the outputs.
|
224
|
+
debug_config: |+
|
225
|
+
Print the compiled config ruby code out as a debug log (you must also have --debug enabled).
|
226
|
+
WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result
|
227
|
+
in plaintext passwords appearing in your logs!
|
data/logstash-core.gemspec
CHANGED
@@ -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.3.3.
|
20
|
+
gem.add_runtime_dependency "logstash-core-event", "2.3.3.snapshot2"
|
21
21
|
|
22
22
|
gem.add_runtime_dependency "cabin", "~> 0.8.0" #(Apache 2.0 license)
|
23
23
|
gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license)
|
@@ -144,6 +144,49 @@ describe LogStashConfigParser do
|
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
|
+
context "when using two plugin sections of the same type" do
|
148
|
+
let(:pipeline_klass) do
|
149
|
+
Class.new do
|
150
|
+
def initialize(config)
|
151
|
+
grammar = LogStashConfigParser.new
|
152
|
+
@config = grammar.parse(config)
|
153
|
+
@code = @config.compile
|
154
|
+
eval(@code)
|
155
|
+
end
|
156
|
+
def plugin(*args);end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
context "(filters)" do
|
160
|
+
let(:config_string) {
|
161
|
+
"input { generator { } }
|
162
|
+
filter { filter1 { } }
|
163
|
+
filter { filter1 { } }
|
164
|
+
output { output1 { } }"
|
165
|
+
}
|
166
|
+
|
167
|
+
|
168
|
+
it "should create a pipeline with both sections" do
|
169
|
+
generated_objects = pipeline_klass.new(config_string).instance_variable_get("@generated_objects")
|
170
|
+
filters = generated_objects.keys.map(&:to_s).select {|obj_name| obj_name.match(/^filter.+?_\d+$/) }
|
171
|
+
expect(filters.size).to eq(2)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
context "(filters)" do
|
176
|
+
let(:config_string) {
|
177
|
+
"input { generator { } }
|
178
|
+
output { output1 { } }
|
179
|
+
output { output1 { } }"
|
180
|
+
}
|
181
|
+
|
182
|
+
|
183
|
+
it "should create a pipeline with both sections" do
|
184
|
+
generated_objects = pipeline_klass.new(config_string).instance_variable_get("@generated_objects")
|
185
|
+
outputs = generated_objects.keys.map(&:to_s).select {|obj_name| obj_name.match(/^output.+?_\d+$/) }
|
186
|
+
expect(outputs.size).to eq(2)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
147
190
|
context "when creating two instances of the same configuration" do
|
148
191
|
|
149
192
|
let(:config_string) {
|
@@ -169,10 +212,12 @@ describe LogStashConfigParser do
|
|
169
212
|
end
|
170
213
|
|
171
214
|
describe "generated conditional functionals" do
|
172
|
-
it "should be
|
215
|
+
it "should be created per instance" do
|
173
216
|
instance_1 = pipeline_klass.new(config_string)
|
174
217
|
instance_2 = pipeline_klass.new(config_string)
|
175
|
-
|
218
|
+
generated_method_1 = instance_1.instance_variable_get("@generated_objects")[:cond_func_1]
|
219
|
+
generated_method_2 = instance_2.instance_variable_get("@generated_objects")[:cond_func_1]
|
220
|
+
expect(generated_method_1).to_not be(generated_method_2)
|
176
221
|
end
|
177
222
|
end
|
178
223
|
end
|
@@ -452,4 +452,20 @@ describe LogStash::Pipeline do
|
|
452
452
|
expect(pipeline1.filter_func(LogStash::Event.new)).not_to include(nil)
|
453
453
|
end
|
454
454
|
end
|
455
|
+
|
456
|
+
context "Pipeline object" do
|
457
|
+
before do
|
458
|
+
allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator)
|
459
|
+
allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec)
|
460
|
+
allow(LogStash::Plugin).to receive(:lookup).with("filter", "dummyfilter").and_return(DummyFilter)
|
461
|
+
allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput)
|
462
|
+
end
|
463
|
+
|
464
|
+
let(:pipeline1) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") }
|
465
|
+
let(:pipeline2) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") }
|
466
|
+
|
467
|
+
it "should not add ivars" do
|
468
|
+
expect(pipeline1.instance_variables).to eq(pipeline2.instance_variables)
|
469
|
+
end
|
470
|
+
end
|
455
471
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "spec_helper"
|
3
|
+
require "i18n"
|
4
|
+
|
5
|
+
I18N_T_REGEX = Regexp.new('I18n.t.+?"(.+?)"')
|
6
|
+
|
7
|
+
describe I18n do
|
8
|
+
context "when using en.yml" do
|
9
|
+
glob_path = File.join(LogStash::Environment::LOGSTASH_HOME, "logstash-*", "lib", "**", "*.rb")
|
10
|
+
|
11
|
+
Dir.glob(glob_path).each do |file_name|
|
12
|
+
|
13
|
+
context "in file \"#{file_name}\"" do
|
14
|
+
File.foreach(file_name) do |line|
|
15
|
+
next unless (match = line.match(I18N_T_REGEX))
|
16
|
+
line = $INPUT_LINE_NUMBER
|
17
|
+
key = match[1]
|
18
|
+
it "in line #{line} the \"#{key}\" key should exist" do
|
19
|
+
expect(I18n.exists?(key)).to be_truthy
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.3.
|
4
|
+
version: 2.3.3.snapshot2
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-13 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.3.3.
|
18
|
+
version: 2.3.3.snapshot2
|
19
19
|
name: logstash-core-event
|
20
20
|
prerelease: false
|
21
21
|
type: :runtime
|
@@ -23,11 +23,11 @@ dependencies:
|
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.3.3.
|
26
|
+
version: 2.3.3.snapshot2
|
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.8.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.8.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
|
@@ -311,6 +311,7 @@ files:
|
|
311
311
|
- spec/logstash/util/worker_threads_default_printer_spec.rb
|
312
312
|
- spec/logstash/util/wrapped_synchronous_queue_spec.rb
|
313
313
|
- spec/logstash/util_spec.rb
|
314
|
+
- spec/static/i18n_spec.rb
|
314
315
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
315
316
|
licenses:
|
316
317
|
- Apache License (2.0)
|
@@ -321,17 +322,17 @@ require_paths:
|
|
321
322
|
- lib
|
322
323
|
required_ruby_version: !ruby/object:Gem::Requirement
|
323
324
|
requirements:
|
324
|
-
- -
|
325
|
+
- - ">="
|
325
326
|
- !ruby/object:Gem::Version
|
326
327
|
version: '0'
|
327
328
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
328
329
|
requirements:
|
329
|
-
- -
|
330
|
+
- - ">"
|
330
331
|
- !ruby/object:Gem::Version
|
331
332
|
version: 1.3.1
|
332
333
|
requirements: []
|
333
334
|
rubyforge_project:
|
334
|
-
rubygems_version: 2.4.
|
335
|
+
rubygems_version: 2.4.8
|
335
336
|
signing_key:
|
336
337
|
specification_version: 4
|
337
338
|
summary: logstash-core - The core components of logstash
|
@@ -365,3 +366,4 @@ test_files:
|
|
365
366
|
- spec/logstash/util/worker_threads_default_printer_spec.rb
|
366
367
|
- spec/logstash/util/wrapped_synchronous_queue_spec.rb
|
367
368
|
- spec/logstash/util_spec.rb
|
369
|
+
- spec/static/i18n_spec.rb
|