logstash-core 6.0.0.alpha1-java → 6.0.0.alpha2-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.
- checksums.yaml +4 -4
- data/lib/logstash-core/logstash-core.jar +0 -0
- data/lib/logstash-core/version.rb +1 -1
- data/lib/logstash/agent.rb +81 -45
- data/lib/logstash/api/commands/hot_threads_reporter.rb +3 -3
- data/lib/logstash/api/commands/node.rb +13 -6
- data/lib/logstash/api/commands/stats.rb +18 -6
- data/lib/logstash/api/modules/node.rb +7 -0
- data/lib/logstash/api/modules/node_stats.rb +12 -5
- data/lib/logstash/bootstrap_check/default_config.rb +3 -7
- data/lib/logstash/compiler.rb +33 -15
- data/lib/logstash/compiler/lscl.rb +16 -8
- data/lib/logstash/config/mixin.rb +5 -42
- data/lib/logstash/config/pipeline_config.rb +1 -1
- data/lib/logstash/config/source/local.rb +28 -13
- data/lib/logstash/config/source/multi_local.rb +72 -0
- data/lib/logstash/config/source_loader.rb +1 -2
- data/lib/logstash/environment.rb +12 -3
- data/lib/logstash/execution_context.rb +7 -3
- data/lib/logstash/inputs/base.rb +2 -0
- data/lib/logstash/instrument/metric_type.rb +0 -2
- data/lib/logstash/instrument/periodic_poller/jvm.rb +5 -5
- data/lib/logstash/instrument/periodic_poller/pq.rb +1 -1
- data/lib/logstash/outputs/base.rb +2 -0
- data/lib/logstash/pipeline.rb +31 -14
- data/lib/logstash/pipeline_action/create.rb +1 -2
- data/lib/logstash/pipeline_action/reload.rb +2 -1
- data/lib/logstash/pipeline_settings.rb +50 -0
- data/lib/logstash/plugin.rb +1 -0
- data/lib/logstash/runner.rb +7 -5
- data/lib/logstash/settings.rb +11 -3
- data/lib/logstash/shutdown_watcher.rb +26 -0
- data/lib/logstash/state_resolver.rb +1 -3
- data/lib/logstash/util/dead_letter_queue_manager.rb +61 -0
- data/lib/logstash/util/environment_variables.rb +43 -0
- data/lib/logstash/util/thread_dump.rb +3 -1
- data/lib/logstash/version.rb +1 -1
- data/locales/en.yml +4 -0
- data/logstash-core.gemspec +4 -1
- data/spec/logstash/agent/converge_spec.rb +36 -35
- data/spec/logstash/agent_spec.rb +48 -177
- data/spec/{api/lib/commands/stats.rb → logstash/api/commands/stats_spec.rb} +7 -2
- data/spec/{api/lib → logstash/api}/errors_spec.rb +1 -1
- data/spec/{api/lib/api → logstash/api/modules}/logging_spec.rb +1 -10
- data/spec/{api/lib/api → logstash/api/modules}/node_plugins_spec.rb +1 -2
- data/spec/{api/lib/api → logstash/api/modules}/node_spec.rb +9 -8
- data/spec/{api/lib/api → logstash/api/modules}/node_stats_spec.rb +11 -9
- data/spec/{api/lib/api → logstash/api/modules}/plugins_spec.rb +4 -3
- data/spec/{api/lib/api → logstash/api/modules}/root_spec.rb +2 -2
- data/spec/{api/lib → logstash/api}/rack_app_spec.rb +0 -0
- data/spec/logstash/compiler/compiler_spec.rb +72 -9
- data/spec/logstash/config/source/local_spec.rb +20 -4
- data/spec/logstash/config/source/multi_local_spec.rb +113 -0
- data/spec/logstash/execution_context_spec.rb +14 -4
- data/spec/logstash/inputs/base_spec.rb +1 -1
- data/spec/logstash/instrument/wrapped_write_client_spec.rb +34 -19
- data/spec/logstash/output_delegator_spec.rb +1 -1
- data/spec/logstash/outputs/base_spec.rb +1 -1
- data/spec/logstash/pipeline_action/reload_spec.rb +1 -1
- data/spec/logstash/pipeline_action/stop_spec.rb +1 -1
- data/spec/logstash/pipeline_dlq_commit_spec.rb +107 -0
- data/spec/logstash/pipeline_pq_file_spec.rb +3 -1
- data/spec/logstash/pipeline_reporter_spec.rb +2 -1
- data/spec/logstash/pipeline_spec.rb +54 -43
- data/spec/logstash/runner_spec.rb +27 -36
- data/spec/logstash/settings/array_coercible_spec.rb +65 -0
- data/spec/logstash/settings_spec.rb +91 -0
- data/spec/logstash/shutdown_watcher_spec.rb +10 -16
- data/spec/logstash/state_resolver_spec.rb +6 -4
- data/spec/support/helpers.rb +16 -3
- data/spec/support/shared_contexts.rb +26 -2
- metadata +42 -39
- data/lib/logstash/instrument/metric_type/mean.rb +0 -33
- data/spec/api/lib/api/support/resource_dsl_methods.rb +0 -87
- data/spec/api/spec_helper.rb +0 -106
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.0.
|
4
|
+
version: 6.0.0.alpha2
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 1.0.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - '='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 1.6.6
|
103
|
+
name: rack
|
104
|
+
prerelease: false
|
105
|
+
type: :runtime
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.6.6
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
requirement: !ruby/object:Gem::Requirement
|
99
113
|
requirements:
|
@@ -156,20 +170,6 @@ dependencies:
|
|
156
170
|
- - '='
|
157
171
|
- !ruby/object:Gem::Version
|
158
172
|
version: 0.10.6
|
159
|
-
- !ruby/object:Gem::Dependency
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
161
|
-
requirements:
|
162
|
-
- - "~>"
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: 0.4.2
|
165
|
-
name: jrmonitor
|
166
|
-
prerelease: false
|
167
|
-
type: :runtime
|
168
|
-
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
requirements:
|
170
|
-
- - "~>"
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: 0.4.2
|
173
173
|
- !ruby/object:Gem::Dependency
|
174
174
|
requirement: !ruby/object:Gem::Requirement
|
175
175
|
requirements:
|
@@ -333,6 +333,7 @@ files:
|
|
333
333
|
- lib/logstash/config/pipeline_config.rb
|
334
334
|
- lib/logstash/config/source/base.rb
|
335
335
|
- lib/logstash/config/source/local.rb
|
336
|
+
- lib/logstash/config/source/multi_local.rb
|
336
337
|
- lib/logstash/config/source_loader.rb
|
337
338
|
- lib/logstash/converge_result.rb
|
338
339
|
- lib/logstash/environment.rb
|
@@ -351,7 +352,6 @@ files:
|
|
351
352
|
- lib/logstash/instrument/metric_type/base.rb
|
352
353
|
- lib/logstash/instrument/metric_type/counter.rb
|
353
354
|
- lib/logstash/instrument/metric_type/gauge.rb
|
354
|
-
- lib/logstash/instrument/metric_type/mean.rb
|
355
355
|
- lib/logstash/instrument/namespaced_metric.rb
|
356
356
|
- lib/logstash/instrument/namespaced_null_metric.rb
|
357
357
|
- lib/logstash/instrument/null_metric.rb
|
@@ -392,6 +392,7 @@ files:
|
|
392
392
|
- lib/logstash/pipeline_action/reload.rb
|
393
393
|
- lib/logstash/pipeline_action/stop.rb
|
394
394
|
- lib/logstash/pipeline_reporter.rb
|
395
|
+
- lib/logstash/pipeline_settings.rb
|
395
396
|
- lib/logstash/plugin.rb
|
396
397
|
- lib/logstash/plugins/hooks_registry.rb
|
397
398
|
- lib/logstash/plugins/registry.rb
|
@@ -408,8 +409,10 @@ files:
|
|
408
409
|
- lib/logstash/util/buftok.rb
|
409
410
|
- lib/logstash/util/byte_value.rb
|
410
411
|
- lib/logstash/util/charset.rb
|
412
|
+
- lib/logstash/util/dead_letter_queue_manager.rb
|
411
413
|
- lib/logstash/util/decorators.rb
|
412
414
|
- lib/logstash/util/duration_formatter.rb
|
415
|
+
- lib/logstash/util/environment_variables.rb
|
413
416
|
- lib/logstash/util/filetools.rb
|
414
417
|
- lib/logstash/util/java_version.rb
|
415
418
|
- lib/logstash/util/loggable.rb
|
@@ -429,22 +432,20 @@ files:
|
|
429
432
|
- lib/logstash/webserver.rb
|
430
433
|
- locales/en.yml
|
431
434
|
- logstash-core.gemspec
|
432
|
-
- spec/api/lib/api/logging_spec.rb
|
433
|
-
- spec/api/lib/api/node_plugins_spec.rb
|
434
|
-
- spec/api/lib/api/node_spec.rb
|
435
|
-
- spec/api/lib/api/node_stats_spec.rb
|
436
|
-
- spec/api/lib/api/plugins_spec.rb
|
437
|
-
- spec/api/lib/api/root_spec.rb
|
438
|
-
- spec/api/lib/api/support/resource_dsl_methods.rb
|
439
|
-
- spec/api/lib/commands/stats.rb
|
440
|
-
- spec/api/lib/errors_spec.rb
|
441
|
-
- spec/api/lib/rack_app_spec.rb
|
442
|
-
- spec/api/spec_helper.rb
|
443
435
|
- spec/conditionals_spec.rb
|
444
436
|
- spec/logstash/acked_queue_concurrent_stress_spec.rb
|
445
437
|
- spec/logstash/agent/converge_spec.rb
|
446
438
|
- spec/logstash/agent/metrics_spec.rb
|
447
439
|
- spec/logstash/agent_spec.rb
|
440
|
+
- spec/logstash/api/commands/stats_spec.rb
|
441
|
+
- spec/logstash/api/errors_spec.rb
|
442
|
+
- spec/logstash/api/modules/logging_spec.rb
|
443
|
+
- spec/logstash/api/modules/node_plugins_spec.rb
|
444
|
+
- spec/logstash/api/modules/node_spec.rb
|
445
|
+
- spec/logstash/api/modules/node_stats_spec.rb
|
446
|
+
- spec/logstash/api/modules/plugins_spec.rb
|
447
|
+
- spec/logstash/api/modules/root_spec.rb
|
448
|
+
- spec/logstash/api/rack_app_spec.rb
|
448
449
|
- spec/logstash/codecs/base_spec.rb
|
449
450
|
- spec/logstash/compiler/compiler_spec.rb
|
450
451
|
- spec/logstash/config/config_ast_spec.rb
|
@@ -453,6 +454,7 @@ files:
|
|
453
454
|
- spec/logstash/config/mixin_spec.rb
|
454
455
|
- spec/logstash/config/pipeline_config_spec.rb
|
455
456
|
- spec/logstash/config/source/local_spec.rb
|
457
|
+
- spec/logstash/config/source/multi_local_spec.rb
|
456
458
|
- spec/logstash/config/source_loader_spec.rb
|
457
459
|
- spec/logstash/converge_result_spec.rb
|
458
460
|
- spec/logstash/environment_spec.rb
|
@@ -486,6 +488,7 @@ files:
|
|
486
488
|
- spec/logstash/pipeline_action/create_spec.rb
|
487
489
|
- spec/logstash/pipeline_action/reload_spec.rb
|
488
490
|
- spec/logstash/pipeline_action/stop_spec.rb
|
491
|
+
- spec/logstash/pipeline_dlq_commit_spec.rb
|
489
492
|
- spec/logstash/pipeline_pq_file_spec.rb
|
490
493
|
- spec/logstash/pipeline_reporter_spec.rb
|
491
494
|
- spec/logstash/pipeline_spec.rb
|
@@ -557,22 +560,20 @@ signing_key:
|
|
557
560
|
specification_version: 4
|
558
561
|
summary: logstash-core - The core components of logstash
|
559
562
|
test_files:
|
560
|
-
- spec/api/lib/api/logging_spec.rb
|
561
|
-
- spec/api/lib/api/node_plugins_spec.rb
|
562
|
-
- spec/api/lib/api/node_spec.rb
|
563
|
-
- spec/api/lib/api/node_stats_spec.rb
|
564
|
-
- spec/api/lib/api/plugins_spec.rb
|
565
|
-
- spec/api/lib/api/root_spec.rb
|
566
|
-
- spec/api/lib/api/support/resource_dsl_methods.rb
|
567
|
-
- spec/api/lib/commands/stats.rb
|
568
|
-
- spec/api/lib/errors_spec.rb
|
569
|
-
- spec/api/lib/rack_app_spec.rb
|
570
|
-
- spec/api/spec_helper.rb
|
571
563
|
- spec/conditionals_spec.rb
|
572
564
|
- spec/logstash/acked_queue_concurrent_stress_spec.rb
|
573
565
|
- spec/logstash/agent/converge_spec.rb
|
574
566
|
- spec/logstash/agent/metrics_spec.rb
|
575
567
|
- spec/logstash/agent_spec.rb
|
568
|
+
- spec/logstash/api/commands/stats_spec.rb
|
569
|
+
- spec/logstash/api/errors_spec.rb
|
570
|
+
- spec/logstash/api/modules/logging_spec.rb
|
571
|
+
- spec/logstash/api/modules/node_plugins_spec.rb
|
572
|
+
- spec/logstash/api/modules/node_spec.rb
|
573
|
+
- spec/logstash/api/modules/node_stats_spec.rb
|
574
|
+
- spec/logstash/api/modules/plugins_spec.rb
|
575
|
+
- spec/logstash/api/modules/root_spec.rb
|
576
|
+
- spec/logstash/api/rack_app_spec.rb
|
576
577
|
- spec/logstash/codecs/base_spec.rb
|
577
578
|
- spec/logstash/compiler/compiler_spec.rb
|
578
579
|
- spec/logstash/config/config_ast_spec.rb
|
@@ -581,6 +582,7 @@ test_files:
|
|
581
582
|
- spec/logstash/config/mixin_spec.rb
|
582
583
|
- spec/logstash/config/pipeline_config_spec.rb
|
583
584
|
- spec/logstash/config/source/local_spec.rb
|
585
|
+
- spec/logstash/config/source/multi_local_spec.rb
|
584
586
|
- spec/logstash/config/source_loader_spec.rb
|
585
587
|
- spec/logstash/converge_result_spec.rb
|
586
588
|
- spec/logstash/environment_spec.rb
|
@@ -614,6 +616,7 @@ test_files:
|
|
614
616
|
- spec/logstash/pipeline_action/create_spec.rb
|
615
617
|
- spec/logstash/pipeline_action/reload_spec.rb
|
616
618
|
- spec/logstash/pipeline_action/stop_spec.rb
|
619
|
+
- spec/logstash/pipeline_dlq_commit_spec.rb
|
617
620
|
- spec/logstash/pipeline_pq_file_spec.rb
|
618
621
|
- spec/logstash/pipeline_reporter_spec.rb
|
619
622
|
- spec/logstash/pipeline_spec.rb
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require "logstash/instrument/metric_type/base"
|
3
|
-
require "concurrent"
|
4
|
-
|
5
|
-
module LogStash module Instrument module MetricType
|
6
|
-
class Mean < Base
|
7
|
-
def initialize(namespaces, key)
|
8
|
-
super(namespaces, key)
|
9
|
-
|
10
|
-
@counter = Concurrent::AtomicFixnum.new
|
11
|
-
@sum = Concurrent::AtomicFixnum.new
|
12
|
-
end
|
13
|
-
|
14
|
-
def increment(value = 1)
|
15
|
-
@counter.increment
|
16
|
-
@sum.increment(value)
|
17
|
-
end
|
18
|
-
|
19
|
-
def decrement(value = 1)
|
20
|
-
@counter.decrement
|
21
|
-
@sum.decrement(value)
|
22
|
-
end
|
23
|
-
|
24
|
-
def mean
|
25
|
-
if @counter > 0
|
26
|
-
@sum.value / @counter.value
|
27
|
-
else
|
28
|
-
0
|
29
|
-
end
|
30
|
-
end
|
31
|
-
alias_method :value, :mean
|
32
|
-
end
|
33
|
-
end; end; end
|
@@ -1,87 +0,0 @@
|
|
1
|
-
# Ruby doesn't have common class for boolean,
|
2
|
-
# And to simplify the ResourceDSLMethods check it make sense to have it.
|
3
|
-
module Boolean; end
|
4
|
-
class TrueClass
|
5
|
-
include Boolean
|
6
|
-
end
|
7
|
-
class FalseClass
|
8
|
-
include Boolean
|
9
|
-
end
|
10
|
-
|
11
|
-
module ResourceDSLMethods
|
12
|
-
# Convert a nested hash to a mapping of key paths to expected classes
|
13
|
-
def hash_to_mapping(h, path=[], mapping={})
|
14
|
-
h.each do |k,v|
|
15
|
-
if v.is_a?(Hash)
|
16
|
-
hash_to_mapping(v, path + [k], mapping)
|
17
|
-
else
|
18
|
-
full_path = path + [k]
|
19
|
-
mapping[full_path] = v
|
20
|
-
end
|
21
|
-
end
|
22
|
-
mapping
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_api(expected, path)
|
26
|
-
context "GET #{path}" do
|
27
|
-
let(:payload) { LogStash::Json.load(last_response.body) }
|
28
|
-
|
29
|
-
before(:all) do
|
30
|
-
get path
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should respond OK" do
|
34
|
-
expect(last_response).to be_ok
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
describe "the default metadata" do
|
39
|
-
it "should include the host" do
|
40
|
-
expect(payload["host"]).to eql(Socket.gethostname)
|
41
|
-
end
|
42
|
-
|
43
|
-
it "should include the version" do
|
44
|
-
expect(payload["version"]).to eql(LOGSTASH_CORE_VERSION)
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should include the http address" do
|
48
|
-
expect(payload["http_address"]).to eql("#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORTS.first}")
|
49
|
-
end
|
50
|
-
|
51
|
-
it "should include the node name" do
|
52
|
-
expect(payload["name"]).to eql(@runner.agent.name)
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should include the node id" do
|
56
|
-
expect(payload["id"]).to eql(@runner.agent.id)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
hash_to_mapping(expected).each do |resource_path,klass|
|
61
|
-
dotted = resource_path.join(".")
|
62
|
-
|
63
|
-
it "should set '#{dotted}' at '#{path}' to be a '#{klass}'" do
|
64
|
-
expect(last_response).to be_ok # fail early if need be
|
65
|
-
resource_path_value = resource_path.reduce(payload) do |acc,v|
|
66
|
-
expect(acc.has_key?(v)).to eql(true), "Expected to find value '#{v}' in structure '#{acc}', but could not. Payload was '#{payload}'"
|
67
|
-
acc[v]
|
68
|
-
end
|
69
|
-
expect(resource_path_value).to be_a(klass), "could not find '#{dotted}' in #{payload}"
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
yield if block_given? # Add custom expectations
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_api_and_resources(expected, xopts={})
|
78
|
-
xopts[:exclude_from_root] ||= []
|
79
|
-
root_expectation = expected.clone
|
80
|
-
xopts[:exclude_from_root].each {|k| root_expectation.delete(k)}
|
81
|
-
test_api(root_expectation, "/")
|
82
|
-
|
83
|
-
expected.keys.each do |key|
|
84
|
-
test_api({key => expected[key]}, "/#{key}")
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
data/spec/api/spec_helper.rb
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
API_ROOT = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib", "logstash", "api"))
|
3
|
-
|
4
|
-
require "stud/task"
|
5
|
-
require "logstash/devutils/rspec/spec_helper"
|
6
|
-
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
|
7
|
-
require "lib/api/support/resource_dsl_methods"
|
8
|
-
require_relative "../support/mocks_classes"
|
9
|
-
require_relative "../support/helpers"
|
10
|
-
require 'rspec/expectations'
|
11
|
-
require "logstash/settings"
|
12
|
-
require 'rack/test'
|
13
|
-
require 'rspec'
|
14
|
-
require "json"
|
15
|
-
|
16
|
-
def read_fixture(name)
|
17
|
-
path = File.join(File.dirname(__FILE__), "fixtures", name)
|
18
|
-
File.read(path)
|
19
|
-
end
|
20
|
-
|
21
|
-
module LogStash
|
22
|
-
class DummyAgent < Agent
|
23
|
-
def start_webserver
|
24
|
-
http_address = "#{Socket.gethostname}:#{::LogStash::WebServer::DEFAULT_PORTS.first}"
|
25
|
-
@webserver = Struct.new(:address).new(http_address)
|
26
|
-
self.metric.gauge([], :http_address, http_address)
|
27
|
-
end
|
28
|
-
|
29
|
-
def stop_webserver; end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
##
|
34
|
-
# Class used to wrap and manage the execution of an agent for test,
|
35
|
-
# this helps a lot in order to have a more integrated test for the
|
36
|
-
# web api, could be also used for other use cases if generalized enough
|
37
|
-
##
|
38
|
-
class LogStashRunner
|
39
|
-
|
40
|
-
attr_reader :config_str, :agent, :pipeline_settings
|
41
|
-
|
42
|
-
def initialize
|
43
|
-
|
44
|
-
require "securerandom"
|
45
|
-
id = SecureRandom.uuid
|
46
|
-
|
47
|
-
@config_str = "input { generator {id => 'api-generator-pipeline-#{id}' count => 100 } } output { dummyoutput {} }"
|
48
|
-
|
49
|
-
args = {
|
50
|
-
"config.reload.automatic" => false,
|
51
|
-
"metric.collect" => true,
|
52
|
-
"log.level" => "debug",
|
53
|
-
"node.name" => "test_agent",
|
54
|
-
"http.port" => rand(9600..9700),
|
55
|
-
"http.environment" => "test",
|
56
|
-
"config.string" => @config_str,
|
57
|
-
"pipeline.batch.size" => 1,
|
58
|
-
"pipeline.workers" => 1
|
59
|
-
}
|
60
|
-
|
61
|
-
@settings = ::LogStash::SETTINGS.clone.merge(args)
|
62
|
-
source_loader = LogStash::Config::SourceLoader.new
|
63
|
-
source_loader.configure_sources(LogStash::Config::Source::Local.new(@settings))
|
64
|
-
@agent = LogStash::DummyAgent.new(@settings, source_loader)
|
65
|
-
end
|
66
|
-
|
67
|
-
def start
|
68
|
-
# We start a pipeline that will generate a finite number of events
|
69
|
-
# before starting the expectations
|
70
|
-
@agent_task = Stud::Task.new { agent.execute }
|
71
|
-
@agent_task.wait
|
72
|
-
end
|
73
|
-
|
74
|
-
def stop
|
75
|
-
agent.shutdown
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
RSpec::Matchers.define :be_available? do
|
80
|
-
match do |plugin|
|
81
|
-
begin
|
82
|
-
Gem::Specification.find_by_name(plugin["name"])
|
83
|
-
true
|
84
|
-
rescue
|
85
|
-
false
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
shared_context "api setup" do
|
91
|
-
before :all do
|
92
|
-
clear_data_dir
|
93
|
-
@runner = LogStashRunner.new
|
94
|
-
@runner.start
|
95
|
-
end
|
96
|
-
|
97
|
-
after :all do
|
98
|
-
@runner.stop
|
99
|
-
end
|
100
|
-
|
101
|
-
include Rack::Test::Methods
|
102
|
-
|
103
|
-
def app()
|
104
|
-
described_class.new(nil, @runner.agent)
|
105
|
-
end
|
106
|
-
end
|