logstash-input-http_poller 5.3.1 → 5.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 510ac72c358c306a8377a8cd714a1f58c867283b792e68f0374c79737f758126
4
- data.tar.gz: 8c375ba083f4d8e6b8b20ced9d2b5c81c7f1322e36c0115dcbedcdc91087d16d
3
+ metadata.gz: 959498284e07e414f7be7e02b9df125372526da763a4d273b55fc609186b777c
4
+ data.tar.gz: 6a6f4dc0da77770581920f719e9de03f3d81bdc079a61fdb43874e5c09d3afa8
5
5
  SHA512:
6
- metadata.gz: 54b5171093fc938cb49e273cad550c6430179812b1c47d34b6fd1c307281612ad872a50aee10f420e39002a46e7a7b143162ae331a90bdc42fc4a534e2666762
7
- data.tar.gz: 87bc152a391d0e76942ead58d80679ce5581275f89863e6e629248751713f17052ecef2d5ca7dcd778d776828be7f20e5fd9338ad4c181d0e5d9ec837faea775
6
+ metadata.gz: d3af6dc69528053dcc66ccdef55fbd9dfc56bede4cd383ccd44689a884f601b14b630f1d3accc7d56e86ca41f4bbe544379e7dc8cc23d8794db8b2c6d9fd4711
7
+ data.tar.gz: 693a73cc6a442b7b78d15987ea99d84a6a3b5a6143b12261a95eda1a7bfec070650771f66c2a652709470e4c5cebdc5e8f0921c6e3265c3942d168d8bb32aea2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 5.4.0
2
+ - Refactor: start using scheduler mixin [#134](https://github.com/logstash-plugins/logstash-input-http_poller/pull/134)
3
+
1
4
  ## 5.3.1
2
5
  - Fix: make sure plugin is closing the http client [#130](https://github.com/logstash-plugins/logstash-input-http_poller/pull/130)
3
6
 
@@ -4,11 +4,11 @@ require "logstash/namespace"
4
4
  require "logstash/plugin_mixins/http_client"
5
5
  require "socket" # for Socket.gethostname
6
6
  require "manticore"
7
- require "rufus/scheduler"
8
7
  require "logstash/plugin_mixins/ecs_compatibility_support"
9
8
  require 'logstash/plugin_mixins/ecs_compatibility_support/target_check'
10
9
  require 'logstash/plugin_mixins/validator_support/field_reference_validation_adapter'
11
10
  require 'logstash/plugin_mixins/event_support/event_factory_adapter'
11
+ require 'logstash/plugin_mixins/scheduler'
12
12
 
13
13
  class LogStash::Inputs::HTTP_Poller < LogStash::Inputs::Base
14
14
  include LogStash::PluginMixins::HttpClient
@@ -18,6 +18,8 @@ class LogStash::Inputs::HTTP_Poller < LogStash::Inputs::Base
18
18
 
19
19
  extend LogStash::PluginMixins::ValidatorSupport::FieldReferenceValidationAdapter
20
20
 
21
+ include LogStash::PluginMixins::Scheduler
22
+
21
23
  config_name "http_poller"
22
24
 
23
25
  default :codec, "json"
@@ -45,7 +47,6 @@ class LogStash::Inputs::HTTP_Poller < LogStash::Inputs::Base
45
47
  config :metadata_target, :validate => :string, :default => '@metadata'
46
48
 
47
49
  public
48
- Schedule_types = %w(cron every at in)
49
50
  def register
50
51
  @host = Socket.gethostname.force_encoding(Encoding::UTF_8)
51
52
 
@@ -55,15 +56,15 @@ class LogStash::Inputs::HTTP_Poller < LogStash::Inputs::Base
55
56
 
56
57
  # @overload
57
58
  def stop
58
- shutdown_scheduler_and_close_client(:wait)
59
+ close_client
59
60
  end
60
61
 
61
62
  # @overload
62
63
  def close
63
- shutdown_scheduler_and_close_client
64
+ close_client
64
65
  end
65
66
 
66
- def shutdown_scheduler_and_close_client(opt = nil)
67
+ def close_client
67
68
  @logger.debug("closing http client", client: client)
68
69
  begin
69
70
  client.close # since Manticore 0.9.0 this shuts-down/closes all resources
@@ -72,12 +73,8 @@ class LogStash::Inputs::HTTP_Poller < LogStash::Inputs::Base
72
73
  details[:backtrace] = e.backtrace if @logger.debug?
73
74
  @logger.warn "failed closing http client", details
74
75
  end
75
- if @scheduler
76
- @logger.debug("shutting down scheduler", scheduler: @scheduler)
77
- @scheduler.shutdown(opt) # on newer Rufus (3.8) this joins on the scheduler thread
78
- end
79
76
  end
80
- private :shutdown_scheduler_and_close_client
77
+ private :close_client
81
78
 
82
79
  private
83
80
  def setup_requests!
@@ -185,12 +182,11 @@ class LogStash::Inputs::HTTP_Poller < LogStash::Inputs::Base
185
182
  raise Logstash::ConfigurationError, msg_invalid_schedule if @schedule.keys.length != 1
186
183
  schedule_type = @schedule.keys.first
187
184
  schedule_value = @schedule[schedule_type]
188
- raise LogStash::ConfigurationError, msg_invalid_schedule unless Schedule_types.include?(schedule_type)
185
+ raise LogStash::ConfigurationError, msg_invalid_schedule unless %w(cron every at in).include?(schedule_type)
189
186
 
190
- @scheduler = Rufus::Scheduler.new(:max_work_threads => 1)
191
- opts = schedule_type == "every" ? { :first_in => 0.01 } : {}
192
- @scheduler.send(schedule_type, schedule_value, opts) { run_once(queue) }
193
- @scheduler.thread.join # due newer rufus (3.8) doing a blocking operation on scheduler.join
187
+ opts = schedule_type == "every" ? { first_in: 0.01 } : {}
188
+ scheduler.public_send(schedule_type, schedule_value, opts) { run_once(queue) }
189
+ scheduler.join
194
190
  end
195
191
 
196
192
  def run_once(queue)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-http_poller'
3
- s.version = '5.3.1'
3
+ s.version = '5.4.0'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = "Decodes the output of an HTTP API into events"
6
6
  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"
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
22
22
  s.add_runtime_dependency 'logstash-codec-plain'
23
23
  s.add_runtime_dependency "logstash-mixin-http_client", ">= 7.2.0"
24
- s.add_runtime_dependency 'rufus-scheduler', ">= 3.0.9"
24
+ s.add_runtime_dependency 'logstash-mixin-scheduler', '~> 1.0'
25
25
  s.add_runtime_dependency 'logstash-mixin-ecs_compatibility_support', '~>1.3'
26
26
  s.add_runtime_dependency 'logstash-mixin-event_support', '~> 1.0', '>= 1.0.1'
27
27
  s.add_runtime_dependency 'logstash-mixin-validator_support', '~> 1.0'
@@ -7,15 +7,6 @@ require "timecop"
7
7
  require 'rspec/matchers/built_in/raise_error.rb'
8
8
  require 'logstash/plugin_mixins/ecs_compatibility_support/spec_helper'
9
9
 
10
- begin
11
- # TODO: CI work-around - will most likely be moved to the scheduler mixin
12
- require 'et-orbi.rb' # a dependency of rufus-scheduler since 3.4
13
- ::EtOrbi::EoTime.now # might take a long time to initialize - loading time zone
14
- # data (from tz-info) and thus gets un-predictable on CI, since the scheduler worker
15
- # thread might be stuck starting while we attempt to shutdown in a given time frame
16
- rescue LoadError
17
- end
18
-
19
10
  describe LogStash::Inputs::HTTP_Poller do
20
11
  let(:metadata_target) { "_http_poller_metadata" }
21
12
  let(:queue) { Queue.new }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-http_poller
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.1
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
@@ -62,17 +62,17 @@ dependencies:
62
62
  - !ruby/object:Gem::Dependency
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ">="
65
+ - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 3.0.9
68
- name: rufus-scheduler
67
+ version: '1.0'
68
+ name: logstash-mixin-scheduler
69
69
  prerelease: false
70
70
  type: :runtime
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 3.0.9
75
+ version: '1.0'
76
76
  - !ruby/object:Gem::Dependency
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements: