logstash-core 6.3.2-java → 6.4.0-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.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/lib/logstash/agent.rb +10 -6
  3. data/lib/logstash/api/modules/logging.rb +4 -0
  4. data/lib/logstash/api/service.rb +0 -1
  5. data/lib/logstash/bootstrap_check/default_config.rb +0 -2
  6. data/lib/logstash/bootstrap_check/persisted_queue_config.rb +0 -1
  7. data/lib/logstash/codecs/base.rb +2 -4
  8. data/lib/logstash/compiler.rb +2 -3
  9. data/lib/logstash/compiler/lscl.rb +0 -1
  10. data/lib/logstash/config/config_ast.rb +0 -1
  11. data/lib/logstash/config/cpu_core_strategy.rb +0 -1
  12. data/lib/logstash/config/defaults.rb +0 -1
  13. data/lib/logstash/config/file.rb +0 -2
  14. data/lib/logstash/config/mixin.rb +4 -7
  15. data/lib/logstash/config/modules_common.rb +0 -2
  16. data/lib/logstash/config/source/local.rb +1 -3
  17. data/lib/logstash/config/source/modules.rb +0 -2
  18. data/lib/logstash/config/source/multi_local.rb +0 -1
  19. data/lib/logstash/config/source_loader.rb +1 -2
  20. data/lib/logstash/dependency_report.rb +19 -6
  21. data/lib/logstash/elasticsearch_client.rb +0 -2
  22. data/lib/logstash/environment.rb +3 -2
  23. data/lib/logstash/errors.rb +1 -15
  24. data/lib/logstash/event.rb +0 -1
  25. data/lib/logstash/event_dispatcher.rb +1 -40
  26. data/lib/logstash/execution_context.rb +2 -19
  27. data/lib/logstash/filters/base.rb +0 -2
  28. data/lib/logstash/inputs/base.rb +2 -4
  29. data/lib/logstash/inputs/threadable.rb +2 -3
  30. data/lib/logstash/instrument/collector.rb +0 -2
  31. data/lib/logstash/instrument/metric.rb +1 -105
  32. data/lib/logstash/instrument/namespaced_metric.rb +1 -58
  33. data/lib/logstash/instrument/namespaced_null_metric.rb +1 -58
  34. data/lib/logstash/instrument/null_metric.rb +2 -71
  35. data/lib/logstash/instrument/periodic_poller/base.rb +0 -1
  36. data/lib/logstash/instrument/periodic_poller/cgroup.rb +0 -1
  37. data/lib/logstash/java_pipeline.rb +33 -222
  38. data/lib/logstash/json.rb +0 -1
  39. data/lib/logstash/logging.rb +0 -2
  40. data/lib/logstash/logging/logger.rb +1 -159
  41. data/lib/logstash/modules/cli_parser.rb +0 -4
  42. data/lib/logstash/modules/elasticsearch_config.rb +0 -3
  43. data/lib/logstash/modules/elasticsearch_importer.rb +0 -3
  44. data/lib/logstash/modules/elasticsearch_resource.rb +0 -1
  45. data/lib/logstash/modules/file_reader.rb +0 -2
  46. data/lib/logstash/modules/kibana_base.rb +0 -1
  47. data/lib/logstash/modules/kibana_client.rb +0 -2
  48. data/lib/logstash/modules/kibana_config.rb +0 -3
  49. data/lib/logstash/modules/kibana_dashboards.rb +0 -2
  50. data/lib/logstash/modules/kibana_importer.rb +0 -3
  51. data/lib/logstash/modules/kibana_resource.rb +0 -1
  52. data/lib/logstash/modules/kibana_settings.rb +0 -2
  53. data/lib/logstash/modules/logstash_config.rb +0 -1
  54. data/lib/logstash/modules/resource_base.rb +0 -1
  55. data/lib/logstash/modules/scaffold.rb +0 -3
  56. data/lib/logstash/modules/settings_merger.rb +0 -2
  57. data/lib/logstash/namespace.rb +2 -15
  58. data/lib/logstash/outputs/base.rb +3 -5
  59. data/lib/logstash/patches/clamp.rb +6 -0
  60. data/lib/logstash/pipeline.rb +38 -180
  61. data/lib/logstash/pipeline_action/create.rb +0 -2
  62. data/lib/logstash/pipeline_action/reload.rb +1 -4
  63. data/lib/logstash/pipeline_action/stop.rb +0 -2
  64. data/lib/logstash/pipeline_reporter.rb +2 -108
  65. data/lib/logstash/plugin.rb +4 -7
  66. data/lib/logstash/plugins/hooks_registry.rb +1 -63
  67. data/lib/logstash/plugins/registry.rb +3 -2
  68. data/lib/logstash/runner.rb +6 -7
  69. data/lib/logstash/settings.rb +4 -5
  70. data/lib/logstash/shutdown_watcher.rb +0 -119
  71. data/lib/logstash/universal_plugin.rb +1 -13
  72. data/lib/logstash/util.rb +0 -1
  73. data/lib/logstash/util/buftok.rb +1 -139
  74. data/lib/logstash/util/byte_value.rb +2 -3
  75. data/lib/logstash/util/charset.rb +0 -1
  76. data/lib/logstash/util/cloud_setting_auth.rb +0 -1
  77. data/lib/logstash/util/cloud_setting_id.rb +20 -8
  78. data/lib/logstash/util/dead_letter_queue_manager.rb +2 -61
  79. data/lib/logstash/util/decorators.rb +0 -1
  80. data/lib/logstash/util/loggable.rb +1 -31
  81. data/lib/logstash/util/modules_setting_array.rb +2 -2
  82. data/lib/logstash/util/password.rb +0 -1
  83. data/lib/logstash/util/plugin_version.rb +0 -1
  84. data/lib/logstash/util/safe_uri.rb +7 -8
  85. data/lib/logstash/util/secretstore.rb +1 -38
  86. data/lib/logstash/util/substitution_variables.rb +4 -5
  87. data/lib/logstash/util/worker_threads_default_printer.rb +0 -1
  88. data/locales/en.yml +28 -1
  89. data/spec/logstash/config/mixin_spec.rb +4 -4
  90. data/spec/logstash/converge_result_spec.rb +0 -1
  91. data/spec/logstash/event_dispatcher_spec.rb +0 -2
  92. data/spec/logstash/event_spec.rb +22 -26
  93. data/spec/logstash/execution_context_spec.rb +0 -2
  94. data/spec/logstash/filter_delegator_spec.rb +12 -28
  95. data/spec/logstash/inputs/base_spec.rb +4 -5
  96. data/spec/logstash/instrument/metric_spec.rb +0 -1
  97. data/spec/logstash/instrument/namespaced_metric_spec.rb +0 -2
  98. data/spec/logstash/instrument/namespaced_null_metric_spec.rb +1 -3
  99. data/spec/logstash/instrument/null_metric_spec.rb +1 -4
  100. data/spec/logstash/instrument/periodic_poller/base_spec.rb +0 -1
  101. data/spec/logstash/instrument/periodic_poller/os_spec.rb +0 -1
  102. data/spec/logstash/instrument/wrapped_write_client_spec.rb +0 -1
  103. data/spec/logstash/java_filter_delegator_spec.rb +0 -3
  104. data/spec/logstash/java_integration_spec.rb +0 -1
  105. data/spec/logstash/java_pipeline_spec.rb +1 -4
  106. data/spec/logstash/modules/cli_parser_spec.rb +1 -3
  107. data/spec/logstash/modules/scaffold_spec.rb +0 -1
  108. data/spec/logstash/outputs/base_spec.rb +9 -10
  109. data/spec/logstash/pipeline_action/create_spec.rb +2 -3
  110. data/spec/logstash/pipeline_action/reload_spec.rb +1 -2
  111. data/spec/logstash/pipeline_action/stop_spec.rb +0 -1
  112. data/spec/logstash/pipeline_dlq_commit_spec.rb +0 -6
  113. data/spec/logstash/pipeline_reporter_spec.rb +18 -4
  114. data/spec/logstash/pipeline_spec.rb +2 -6
  115. data/spec/logstash/plugin_spec.rb +1 -2
  116. data/spec/logstash/plugins/hooks_registry_spec.rb +0 -2
  117. data/spec/logstash/queue_factory_spec.rb +0 -1
  118. data/spec/logstash/runner_spec.rb +16 -9
  119. data/spec/logstash/settings/modules_spec.rb +3 -3
  120. data/spec/logstash/shutdown_watcher_spec.rb +0 -27
  121. data/spec/logstash/state_resolver_spec.rb +0 -1
  122. data/spec/logstash/util/buftok_spec.rb +0 -1
  123. data/spec/logstash/util/cloud_setting_id_spec.rb +55 -2
  124. data/spec/logstash/util/secretstore_spec.rb +10 -10
  125. data/spec/logstash/util/wrapped_synchronous_queue_spec.rb +2 -2
  126. data/versions-gem-copy.yml +2 -2
  127. metadata +2 -16
  128. data/lib/logstash/bootstrap_check/bad_java.rb +0 -16
  129. data/lib/logstash/bootstrap_check/bad_ruby.rb +0 -12
  130. data/lib/logstash/converge_result.rb +0 -103
  131. data/lib/logstash/instrument/global_metrics.rb +0 -13
  132. data/lib/logstash/instrument/snapshot.rb +0 -15
  133. data/lib/logstash/java_integration.rb +0 -116
  134. data/lib/logstash/logging/json.rb +0 -21
  135. data/lib/logstash/plugins/plugin_factory.rb +0 -107
  136. data/lib/logstash/queue_factory.rb +0 -34
  137. data/lib/logstash/util/retryable.rb +0 -40
  138. data/spec/logstash/output_delegator_spec.rb +0 -201
  139. data/spec/logstash/timestamp_spec.rb +0 -45
@@ -1,6 +1,5 @@
1
1
  # encoding: utf-8
2
2
  require "spec_helper"
3
- require "logstash/java_integration"
4
3
 
5
4
  describe "Java integration" do
6
5
 
@@ -125,10 +125,6 @@ class NilFlushingFilterPeriodic < DummyFlushingFilter
125
125
  end
126
126
  end
127
127
 
128
- class JavaTestPipeline < LogStash::JavaPipeline
129
- attr_reader :outputs, :settings
130
- end
131
-
132
128
  describe LogStash::JavaPipeline do
133
129
  let(:worker_thread_count) { 5 }
134
130
  let(:safe_thread_count) { 1 }
@@ -264,6 +260,7 @@ describe LogStash::JavaPipeline do
264
260
  end
265
261
 
266
262
  it "should print the compiled code if config.debug is set to true" do
263
+ skip("This test does not work when using a Java Logger and should be ported to JUnit")
267
264
  pipeline_settings_obj.set("config.debug", true)
268
265
  expect(logger).to receive(:debug).with(/Compiled pipeline/, anything)
269
266
  pipeline = mock_java_pipeline_from_string(test_config_with_filters, pipeline_settings_obj)
@@ -1,6 +1,4 @@
1
1
  require "spec_helper"
2
- require "logstash/logging"
3
- require "logstash/errors"
4
2
  require "logstash/modules/cli_parser"
5
3
 
6
4
  describe LogStash::Modules::CLIParser do
@@ -126,4 +124,4 @@ describe LogStash::Modules::CLIParser do
126
124
  end
127
125
  end
128
126
 
129
- end
127
+ end
@@ -1,6 +1,5 @@
1
1
  # encoding: utf-8
2
2
  #
3
- require "logstash/namespace"
4
3
  require "logstash/elasticsearch_client"
5
4
  require "logstash/modules/kibana_client"
6
5
  require "logstash/modules/kibana_config"
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require "spec_helper"
3
3
  require "logstash/outputs/base"
4
- require "logstash/execution_context"
5
4
  require "support/shared_contexts"
6
5
 
7
6
  # use a dummy NOOP output to test Outputs::Base
@@ -20,7 +19,7 @@ end
20
19
 
21
20
  class LogStash::Outputs::NOOPShared < ::LogStash::Outputs::Base
22
21
  concurrency :shared
23
-
22
+
24
23
  def register; end
25
24
  end
26
25
 
@@ -30,7 +29,7 @@ end
30
29
 
31
30
  class LogStash::Outputs::NOOPMultiReceiveEncoded < ::LogStash::Outputs::Base
32
31
  concurrency :single
33
-
32
+
34
33
  def register; end
35
34
 
36
35
  def multi_receive_encoded(events_and_encoded)
@@ -38,12 +37,12 @@ class LogStash::Outputs::NOOPMultiReceiveEncoded < ::LogStash::Outputs::Base
38
37
  end
39
38
 
40
39
  describe "LogStash::Outputs::Base#new" do
41
- let(:params) { {} }
40
+ let(:params) { {} }
42
41
  subject(:instance) { klass.new(params.dup) }
43
42
 
44
43
  context "single" do
45
44
  let(:klass) { LogStash::Outputs::NOOPSingle }
46
-
45
+
47
46
  it "should instantiate cleanly" do
48
47
  params = { "dummy_option" => "potatoes", "codec" => "json", "workers" => 2 }
49
48
  worker_params = params.dup; worker_params["workers"] = 1
@@ -58,7 +57,7 @@ describe "LogStash::Outputs::Base#new" do
58
57
 
59
58
  context "shared" do
60
59
  let(:klass) { LogStash::Outputs::NOOPShared }
61
-
60
+
62
61
  it "should set concurrency correctly" do
63
62
  expect(subject.concurrency).to eq(:shared)
64
63
  end
@@ -66,7 +65,7 @@ describe "LogStash::Outputs::Base#new" do
66
65
 
67
66
  context "legacy" do
68
67
  let(:klass) { LogStash::Outputs::NOOPLegacy }
69
-
68
+
70
69
  it "should set concurrency correctly" do
71
70
  expect(subject.concurrency).to eq(:legacy)
72
71
  end
@@ -105,16 +104,16 @@ describe "LogStash::Outputs::Base#new" do
105
104
  describe "dispatching multi_receive" do
106
105
  let(:event) { double("event") }
107
106
  let(:events) { [event] }
108
-
107
+
109
108
  context "with multi_receive_encoded" do
110
109
  let(:klass) { LogStash::Outputs::NOOPMultiReceiveEncoded }
111
110
  let(:codec) { double("codec") }
112
111
  let(:encoded) { double("encoded") }
113
-
112
+
114
113
  before do
115
114
  allow(codec).to receive(:multi_encode).with(events).and_return(encoded)
116
115
  allow(instance).to receive(:codec).and_return(codec)
117
- allow(instance).to receive(:multi_receive_encoded)
116
+ allow(instance).to receive(:multi_receive_encoded)
118
117
  instance.multi_receive(events)
119
118
  end
120
119
 
@@ -3,7 +3,6 @@ require "spec_helper"
3
3
  require_relative "../../support/helpers"
4
4
  require_relative "../../support/matchers"
5
5
  require "logstash/pipeline_action/create"
6
- require "logstash/instrument/null_metric"
7
6
  require "logstash/inputs/generator"
8
7
 
9
8
  describe LogStash::PipelineAction::Create do
@@ -19,8 +18,8 @@ describe LogStash::PipelineAction::Create do
19
18
  subject { described_class.new(pipeline_config, metric) }
20
19
 
21
20
  after do
22
- pipelines.each do |_, pipeline|
23
- pipeline.shutdown
21
+ pipelines.each do |_, pipeline|
22
+ pipeline.shutdown
24
23
  pipeline.thread.join
25
24
  end
26
25
  end
@@ -3,7 +3,6 @@ require "spec_helper"
3
3
  require_relative "../../support/helpers"
4
4
  require_relative "../../support/matchers"
5
5
  require "logstash/pipeline_action/reload"
6
- require "logstash/instrument/null_metric"
7
6
 
8
7
  describe LogStash::PipelineAction::Reload do
9
8
  let(:metric) { LogStash::Instrument::NullMetric.new(LogStash::Instrument::Collector.new) }
@@ -22,7 +21,7 @@ describe LogStash::PipelineAction::Reload do
22
21
  end
23
22
 
24
23
  after do
25
- pipelines.each do |_, pipeline|
24
+ pipelines.each do |_, pipeline|
26
25
  pipeline.shutdown
27
26
  pipeline.thread.join
28
27
  end
@@ -3,7 +3,6 @@ require "spec_helper"
3
3
  require_relative "../../support/helpers"
4
4
  require "logstash/pipeline_action/stop"
5
5
  require "logstash/pipeline"
6
- require "logstash/instrument/null_metric"
7
6
 
8
7
  describe LogStash::PipelineAction::Stop do
9
8
  let(:pipeline_config) { "input { generator {} } output { null {} }" }
@@ -75,9 +75,6 @@ describe LogStash::Pipeline do
75
75
  let(:pipeline_id) { "test-dlq" }
76
76
 
77
77
  it "retrieves proper pipeline-level DLQ writer" do
78
- expect(LogStash::Util::PluginDeadLetterQueueWriter).to receive(:new).with(anything, "input_id", "singlegenerator").and_call_original
79
- expect(LogStash::Util::PluginDeadLetterQueueWriter).to receive(:new).with(anything, "filter_id", "dlq_commit").and_call_original
80
- expect(LogStash::Util::PluginDeadLetterQueueWriter).to receive(:new).with(anything, "output_id", "dummyoutput").and_call_original
81
78
  expect_any_instance_of(org.logstash.common.io.DeadLetterQueueWriter).to receive(:close).and_call_original
82
79
  subject.run
83
80
  dlq_path = java.nio.file.Paths.get(pipeline_settings_obj.get("path.dead_letter_queue"), pipeline_id)
@@ -94,9 +91,6 @@ describe LogStash::Pipeline do
94
91
  let(:pipeline_id) { "test-without-dlq" }
95
92
 
96
93
  it "does not write to the DLQ" do
97
- expect(LogStash::Util::PluginDeadLetterQueueWriter).to receive(:new).with(anything, "input_id", "singlegenerator").and_call_original
98
- expect(LogStash::Util::PluginDeadLetterQueueWriter).to receive(:new).with(anything, "filter_id", "dlq_commit").and_call_original
99
- expect(LogStash::Util::PluginDeadLetterQueueWriter).to receive(:new).with(anything, "output_id", "dummyoutput").and_call_original
100
94
  expect(LogStash::Util::DummyDeadLetterQueueWriter).to receive(:new).and_call_original
101
95
  expect_any_instance_of(LogStash::Util::DummyDeadLetterQueueWriter).to receive(:close).and_call_original
102
96
  subject.run
@@ -1,18 +1,17 @@
1
1
  # encoding: utf-8
2
2
  require "spec_helper"
3
3
  require "logstash/pipeline"
4
- require "logstash/pipeline_reporter"
5
4
  require_relative "../support/helpers"
6
5
  require_relative "../support/mocks_classes"
7
6
 
8
7
  #TODO: Figure out how to add more tests that actually cover inflight events
9
8
  #This will require some janky multithreading stuff
10
- describe LogStash::PipelineReporter do
9
+ shared_examples "a pipeline reporter" do |pipeline_setup|
11
10
  let(:generator_count) { 5 }
12
11
  let(:config) do
13
12
  "input { generator { count => #{generator_count} } } output { dummyoutput {} } "
14
13
  end
15
- let(:pipeline) { mock_pipeline_from_string(config)}
14
+ let(:pipeline) { Kernel.send(pipeline_setup, config)}
16
15
  let(:reporter) { pipeline.reporter }
17
16
 
18
17
  before do
@@ -21,7 +20,7 @@ describe LogStash::PipelineReporter do
21
20
  allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_call_original
22
21
 
23
22
  @pre_snapshot = reporter.snapshot
24
-
23
+
25
24
  pipeline.run
26
25
  @post_snapshot = reporter.snapshot
27
26
  end
@@ -30,6 +29,16 @@ describe LogStash::PipelineReporter do
30
29
  pipeline.shutdown
31
30
  end
32
31
 
32
+ describe "stalling threads info" do
33
+ it "should start with no stalled threads" do
34
+ expect(@pre_snapshot.stalling_threads_info).to eql([])
35
+ end
36
+
37
+ it "should end with no stalled threads" do
38
+ expect(@pre_snapshot.stalling_threads_info).to eql([])
39
+ end
40
+ end
41
+
33
42
  describe "events filtered" do
34
43
  it "should start at zero" do
35
44
  expect(@pre_snapshot.events_filtered).to eql(0)
@@ -60,3 +69,8 @@ describe LogStash::PipelineReporter do
60
69
  end
61
70
  end
62
71
  end
72
+
73
+ describe LogStash::PipelineReporter do
74
+ it_behaves_like "a pipeline reporter", :mock_pipeline_from_string
75
+ it_behaves_like "a pipeline reporter", :mock_java_pipeline_from_string
76
+ end
@@ -118,10 +118,6 @@ class DummyFlushingFilterPeriodic < DummyFlushingFilter
118
118
  end
119
119
  end
120
120
 
121
- class TestPipeline < LogStash::Pipeline
122
- attr_reader :outputs, :settings
123
- end
124
-
125
121
  describe LogStash::Pipeline do
126
122
  let(:worker_thread_count) { 5 }
127
123
  let(:safe_thread_count) { 1 }
@@ -370,7 +366,7 @@ describe LogStash::Pipeline do
370
366
  after do
371
367
  pipeline.shutdown
372
368
  end
373
-
369
+
374
370
  it "should call close of output without output-workers" do
375
371
  pipeline.run
376
372
 
@@ -395,7 +391,7 @@ describe LogStash::Pipeline do
395
391
  # cause the suite to fail :(
396
392
  pipeline.close
397
393
  end
398
-
394
+
399
395
  it "should use LIR provided IDs" do
400
396
  expect(pipeline.inputs.first.id).to eq(pipeline.lir.input_plugin_vertices.first.id)
401
397
  expect(pipeline.filters.first.id).to eq(pipeline.lir.filter_plugin_vertices.first.id)
@@ -5,7 +5,6 @@ require "logstash/outputs/base"
5
5
  require "logstash/codecs/base"
6
6
  require "logstash/inputs/base"
7
7
  require "logstash/filters/base"
8
- require "logstash/execution_context"
9
8
  require "support/shared_contexts"
10
9
 
11
10
  describe LogStash::Plugin do
@@ -319,7 +318,7 @@ describe LogStash::Plugin do
319
318
  end
320
319
  end
321
320
 
322
- subject { plugin.new(config) }
321
+ subject { plugin.new(config) }
323
322
 
324
323
  context "when no metric is set to the plugin" do
325
324
  context "when `enable_metric` is TRUE" do
@@ -1,6 +1,4 @@
1
1
  # encoding: utf-8
2
- require "logstash/event_dispatcher"
3
- require "logstash/plugins/hooks_registry"
4
2
 
5
3
  describe LogStash::Plugins::HooksRegistry do
6
4
  class DummyEmitter
@@ -1,5 +1,4 @@
1
1
  # encoding: utf-8
2
- require "logstash/queue_factory"
3
2
  require "logstash/settings"
4
3
  require "stud/temporary"
5
4
 
@@ -5,7 +5,6 @@ require "stud/task"
5
5
  require "stud/trap"
6
6
  require "stud/temporary"
7
7
  require "logstash/util/java_version"
8
- require "logstash/logging/json"
9
8
  require "logstash/config/source_loader"
10
9
  require "logstash/config/modules_common"
11
10
  require "logstash/modules/util"
@@ -43,6 +42,10 @@ describe LogStash::Runner do
43
42
  allow(agent).to receive(:shutdown)
44
43
  end
45
44
 
45
+ after(:each) do
46
+ LogStash::SETTINGS.get_value("modules_list").clear
47
+ end
48
+
46
49
  describe "argument precedence" do
47
50
  let(:config) { "input {} output {}" }
48
51
  let(:cli_args) { ["-e", config, "-w", "20"] }
@@ -83,23 +86,27 @@ describe LogStash::Runner do
83
86
 
84
87
  context "--pluginpath" do
85
88
  subject { LogStash::Runner.new("") }
86
- let(:single_path) { "/some/path" }
87
- let(:multiple_paths) { ["/some/path1", "/some/path2"] }
89
+ let(:valid_directory) { Stud::Temporary.directory }
90
+ let(:invalid_directory) { "/a/path/that/doesnt/exist" }
91
+ let(:multiple_paths) { [Stud::Temporary.directory, Stud::Temporary.directory] }
92
+
93
+ it "should pass -p contents to the configure_plugin_paths method" do
94
+ args = ["-p", valid_directory]
95
+ expect(subject).to receive(:configure_plugin_paths).with([valid_directory])
96
+ expect { subject.run(args) }.to_not raise_error
97
+ end
88
98
 
89
99
  it "should add single valid dir path to the environment" do
90
- expect(File).to receive(:directory?).and_return(true)
91
- expect(LogStash::Environment).to receive(:add_plugin_path).with(single_path)
92
- subject.configure_plugin_paths(single_path)
100
+ expect(LogStash::Environment).to receive(:add_plugin_path).with(valid_directory)
101
+ subject.configure_plugin_paths(valid_directory)
93
102
  end
94
103
 
95
104
  it "should fail with single invalid dir path" do
96
- expect(File).to receive(:directory?).and_return(false)
97
105
  expect(LogStash::Environment).not_to receive(:add_plugin_path)
98
- expect{subject.configure_plugin_paths(single_path)}.to raise_error(Clamp::UsageError)
106
+ expect{subject.configure_plugin_paths(invalid_directory)}.to raise_error(Clamp::UsageError)
99
107
  end
100
108
 
101
109
  it "should add multiple valid dir path to the environment" do
102
- expect(File).to receive(:directory?).exactly(multiple_paths.size).times.and_return(true)
103
110
  multiple_paths.each{|path| expect(LogStash::Environment).to receive(:add_plugin_path).with(path)}
104
111
  subject.configure_plugin_paths(multiple_paths)
105
112
  end
@@ -34,19 +34,19 @@ describe LogStash::Setting::Modules do
34
34
  subject { described_class.new("mycloudid", LogStash::Util::CloudSettingId) }
35
35
  context "when given a string which is not a cloud id" do
36
36
  it "should raise an exception" do
37
- expect { subject.set("foobarbaz") }.to raise_error(ArgumentError, /Cloud Id does not decode/)
37
+ expect { subject.set("foobarbaz") }.to raise_error(ArgumentError, /Cloud Id.*is invalid/)
38
38
  end
39
39
  end
40
40
 
41
41
  context "when given a string which is empty" do
42
42
  it "should raise an exception" do
43
- expect { subject.set("") }.to raise_error(ArgumentError, /Cloud Id does not decode/)
43
+ expect { subject.set("") }.to raise_error(ArgumentError, /Cloud Id.*is invalid/)
44
44
  end
45
45
  end
46
46
 
47
47
  context "when given a string which is has environment prefix only" do
48
48
  it "should raise an exception" do
49
- expect { subject.set("testing:") }.to raise_error(ArgumentError, /Cloud Id does not decode/)
49
+ expect { subject.set("testing:") }.to raise_error(ArgumentError, /Cloud Id.*is invalid/)
50
50
  end
51
51
  end
52
52
 
@@ -1,6 +1,5 @@
1
1
  # encoding: utf-8
2
2
  require "spec_helper"
3
- require "logstash/shutdown_watcher"
4
3
 
5
4
  describe LogStash::ShutdownWatcher do
6
5
  let(:check_every) { 0.01 }
@@ -24,32 +23,6 @@ describe LogStash::ShutdownWatcher do
24
23
  allow(reporter_snapshot).to receive(:stalling_threads) { { } }
25
24
  end
26
25
 
27
- describe ".unsafe_shutdown = true" do
28
- let(:abort_threshold) { subject.abort_threshold }
29
- let(:report_every) { subject.report_every }
30
-
31
- before :each do
32
- subject.class.unsafe_shutdown = true
33
- end
34
-
35
- it "should force the shutdown" do
36
- expect(subject).to receive(:force_exit).once
37
- subject.start
38
- end
39
-
40
- it "should do exactly \"abort_threshold\" stall checks" do
41
- allow(subject).to receive(:force_exit)
42
- expect(subject).to receive(:shutdown_stalled?).exactly(abort_threshold).times.and_call_original
43
- subject.start
44
- end
45
-
46
- it "should do exactly \"abort_threshold\"*\"report_every\" stall checks" do
47
- allow(subject).to receive(:force_exit)
48
- expect(subject).to receive(:pipeline_report_snapshot).exactly(abort_threshold*report_every).times.and_call_original
49
- subject.start
50
- end
51
- end
52
-
53
26
  describe ".unsafe_shutdown = false" do
54
27
 
55
28
  before :each do
@@ -4,7 +4,6 @@ require_relative "../support/helpers"
4
4
  require_relative "../support/matchers"
5
5
  require "logstash/state_resolver"
6
6
  require "logstash/config/pipeline_config"
7
- require "logstash/instrument/null_metric"
8
7
  require "logstash/pipeline"
9
8
  require "ostruct"
10
9
  require "digest"
@@ -1,6 +1,5 @@
1
1
  # encoding: utf-8
2
2
  require "spec_helper"
3
- require "logstash/util/buftok"
4
3
 
5
4
  describe FileWatch::BufferedTokenizer do
6
5