logstash-input-http_poller 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 376d01f7f7f2543cf29dc25d017d09e5d7c46472
4
- data.tar.gz: e1fe840d963dc87fb97afd647f43047eaf9f1a44
3
+ metadata.gz: 0a79de169452abf5395cb7a3e06a5dae63f27dda
4
+ data.tar.gz: 755ee4b2c9fbc325ceac82c093b8b35ab9d30fab
5
5
  SHA512:
6
- metadata.gz: 9b7aa09232b6540dab84356da874b160396071edcc76ae1e1021e98121909918319cf87624f2fc069bf26980051360ad60455bfb0b83050d37e732d4a28fa7b6
7
- data.tar.gz: b151a285605f59e062f62faddf8c4b09378fc43ee0fe2ef51525e6e102c36e3b5c3094eeb65ad66480703ef2274371adbe2b15f9b900d9ee27e7cb0519b0780b
6
+ metadata.gz: a9aba937e2387dd41d10a50f7e423dc4f79cdfd09314a9e6ab422a1f3063d33bc35166a12a442c9d14f286c6bd77129ed22348567dde55e8db199e1d31b30754
7
+ data.tar.gz: 78b7e079c117d402e17af33a59c628b85fcc51ca201235ecf362774654ad46cc7f264f38f5de1049c260d17e6f8c2251704f150c9ec5f5aaa2f02b405506a880
@@ -1,3 +1,5 @@
1
+ * 1.1.1
2
+ - Default to zero connection retries
1
3
  * 1.1.0
2
4
  - Error metadata no longer '_' prefixed for kibana compat
3
5
  - HTTP metadata now normalized to prevent conflicts with ES schemas
@@ -18,6 +18,7 @@ require "manticore"
18
18
  # # Supports all options supported by ruby's Manticore HTTP client
19
19
  # method => get
20
20
  # url => "http://localhost:9200/_cluster/health"
21
+ # automatic_retries => 2 # Retry the URL twice
21
22
  # headers => {
22
23
  # Accept => "application/json"
23
24
  # }
@@ -44,6 +45,11 @@ require "manticore"
44
45
  class LogStash::Inputs::HTTP_Poller < LogStash::Inputs::Base
45
46
  include LogStash::PluginMixins::HttpClient
46
47
 
48
+ # Default client options for requests
49
+ DEFAULT_SPEC = {
50
+ :automatic_retries => 0 # By default manticore retries 3 times, make this explicit
51
+ }
52
+
47
53
  config_name "http_poller"
48
54
 
49
55
  default :codec, "json"
@@ -82,10 +88,10 @@ class LogStash::Inputs::HTTP_Poller < LogStash::Inputs::Base
82
88
  private
83
89
  def normalize_request(url_or_spec)
84
90
  if url_or_spec.is_a?(String)
85
- res = [:get, url_or_spec]
91
+ res = [:get, url_or_spec, DEFAULT_SPEC.clone]
86
92
  elsif url_or_spec.is_a?(Hash)
87
93
  # The client will expect keys / values
88
- spec = Hash[url_or_spec.clone.map {|k,v| [k.to_sym, v] }] # symbolize keys
94
+ spec = Hash[DEFAULT_SPEC.merge(url_or_spec).map {|k,v| [k.to_sym, v] }] # symbolize keys
89
95
 
90
96
  # method and url aren't really part of the options, so we pull them out
91
97
  method = (spec.delete(:method) || :get).to_sym.downcase
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-http_poller'
3
- s.version = '1.1.0'
3
+ s.version = '1.1.1'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = "Poll HTTP endpoints with Logstash."
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/plugin install gemname. This gem is not a stand-alone program."
@@ -60,7 +60,9 @@ describe LogStash::Inputs::HTTP_Poller do
60
60
 
61
61
  it "should to set additional options correctly" do
62
62
  opts = normalized.length > 2 ? normalized[2] : nil
63
- expect(opts).to eql(spec_opts)
63
+ # At this point we'r ddealing in symbols
64
+ expected = Hash[LogStash::Inputs::HTTP_Poller::DEFAULT_SPEC.merge(spec_opts || {}).map {|k,v| [k.to_sym,v]} ]
65
+ expect(opts).to eql(expected)
64
66
  end
65
67
  end
66
68
 
@@ -88,6 +90,29 @@ describe LogStash::Inputs::HTTP_Poller do
88
90
  }.merge(Hash[spec_opts.map {|k,v| [k.to_s,v]}])
89
91
  end
90
92
 
93
+ it "should include the default options" do
94
+ expect(normalized[2]).to include(LogStash::Inputs::HTTP_Poller::DEFAULT_SPEC)
95
+ end
96
+
97
+ context "when overiding a spec default" do
98
+ let(:retries) { 3 }
99
+ let(:url) do
100
+ {
101
+ "url" => spec_url,
102
+ "method" => spec_method,
103
+ "automatic_retries" => retries
104
+ }.merge(Hash[spec_opts.map {|k,v| [k.to_s,v]}])
105
+ end
106
+
107
+ it "should override the default options" do
108
+ expect(normalized[2]).to include(:automatic_retries => retries)
109
+ end
110
+
111
+ it "should not include the defaults" do
112
+ expect(normalized[2]).not_to include(LogStash::Inputs::HTTP_Poller::DEFAULT_SPEC)
113
+ end
114
+ end
115
+
91
116
  include_examples("a normalized request")
92
117
  end
93
118
 
@@ -161,7 +186,7 @@ describe LogStash::Inputs::HTTP_Poller do
161
186
 
162
187
  it "should have the correct request url" do
163
188
  if url.is_a?(Hash) # If the url was specified as a complex test the whole thing
164
- expect(metadata["request"]).to eql(url)
189
+ expect(metadata["request"]).to include(url)
165
190
  else # Otherwise we have to make some assumptions
166
191
  expect(metadata["request"]["url"]).to eql(url)
167
192
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-http_poller
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - andrewvc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-27 00:00:00.000000000 Z
11
+ date: 2015-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-core