logstash-mixin-http_client 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2 -0
- data/logstash-mixin-http_client.gemspec +2 -2
- metadata +41 -36
- data/lib/logstash/plugin_mixins/http_client.rb~ +0 -163
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc84bd2e6f07407dea886030c9e2aafe670f25e3
|
4
|
+
data.tar.gz: c5cdbb9d5973842be8222e3b718db1965d907e71
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adff2b1cb9c1e2f686d18faf5e756fdfb8a78f36901f8bc4832993b058cd687f4616d5ec6385e3abbbb576e99b3969576272424af9fb3bb74ac93e2a9fc10653
|
7
|
+
data.tar.gz: c09d2bf09f038e1e6e4e77acd0dd4a76a28be684957de0fbef0a25787b7abc901b43807502bf24d6b1d31d96e24e15763abb4531142c683c9cfac79ed4f5b0ac
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-mixin-http_client'
|
3
|
-
s.version = '2.
|
3
|
+
s.version = '2.2.0'
|
4
4
|
s.licenses = ['Apache License (2.0)']
|
5
5
|
s.summary = "AWS mixins to provide a unified interface for Amazon Webservice"
|
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"
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
# Gem dependencies
|
19
19
|
s.add_runtime_dependency "logstash-core", ">= 2.0.0.beta2", "< 3.0.0"
|
20
20
|
s.add_runtime_dependency 'logstash-codec-plain'
|
21
|
-
s.add_runtime_dependency 'manticore', '>= 0.
|
21
|
+
s.add_runtime_dependency 'manticore', '>= 0.5.2', '< 1.0.0'
|
22
22
|
|
23
23
|
s.add_development_dependency 'logstash-devutils'
|
24
24
|
s.add_development_dependency 'stud'
|
metadata
CHANGED
@@ -1,91 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-mixin-http_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
|
14
|
+
name: logstash-core
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
|
-
- -
|
17
|
+
- - '>='
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: 2.0.0.beta2
|
19
|
-
- -
|
20
|
+
- - <
|
20
21
|
- !ruby/object:Gem::Version
|
21
22
|
version: 3.0.0
|
22
|
-
|
23
|
-
prerelease: false
|
24
|
-
type: :runtime
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirement: !ruby/object:Gem::Requirement
|
26
24
|
requirements:
|
27
|
-
- -
|
25
|
+
- - '>='
|
28
26
|
- !ruby/object:Gem::Version
|
29
27
|
version: 2.0.0.beta2
|
30
|
-
- -
|
28
|
+
- - <
|
31
29
|
- !ruby/object:Gem::Version
|
32
30
|
version: 3.0.0
|
31
|
+
prerelease: false
|
32
|
+
type: :runtime
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
+
name: logstash-codec-plain
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
34
40
|
requirement: !ruby/object:Gem::Requirement
|
35
41
|
requirements:
|
36
|
-
- -
|
42
|
+
- - '>='
|
37
43
|
- !ruby/object:Gem::Version
|
38
44
|
version: '0'
|
39
|
-
name: logstash-codec-plain
|
40
45
|
prerelease: false
|
41
46
|
type: :runtime
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: manticore
|
42
49
|
version_requirements: !ruby/object:Gem::Requirement
|
43
50
|
requirements:
|
44
|
-
- -
|
51
|
+
- - '>='
|
45
52
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
47
|
-
-
|
53
|
+
version: 0.5.2
|
54
|
+
- - <
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.0.0
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
58
|
requirements:
|
50
|
-
- -
|
59
|
+
- - '>='
|
51
60
|
- !ruby/object:Gem::Version
|
52
|
-
version: 0.
|
53
|
-
|
61
|
+
version: 0.5.2
|
62
|
+
- - <
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 1.0.0
|
54
65
|
prerelease: false
|
55
66
|
type: :runtime
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: logstash-devutils
|
56
69
|
version_requirements: !ruby/object:Gem::Requirement
|
57
70
|
requirements:
|
58
|
-
- -
|
71
|
+
- - '>='
|
59
72
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0
|
61
|
-
- !ruby/object:Gem::Dependency
|
73
|
+
version: '0'
|
62
74
|
requirement: !ruby/object:Gem::Requirement
|
63
75
|
requirements:
|
64
|
-
- -
|
76
|
+
- - '>='
|
65
77
|
- !ruby/object:Gem::Version
|
66
78
|
version: '0'
|
67
|
-
name: logstash-devutils
|
68
79
|
prerelease: false
|
69
80
|
type: :development
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: stud
|
70
83
|
version_requirements: !ruby/object:Gem::Requirement
|
71
84
|
requirements:
|
72
|
-
- -
|
85
|
+
- - '>='
|
73
86
|
- !ruby/object:Gem::Version
|
74
87
|
version: '0'
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
88
|
requirement: !ruby/object:Gem::Requirement
|
77
89
|
requirements:
|
78
|
-
- -
|
90
|
+
- - '>='
|
79
91
|
- !ruby/object:Gem::Version
|
80
92
|
version: '0'
|
81
|
-
name: stud
|
82
93
|
prerelease: false
|
83
94
|
type: :development
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - ">="
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '0'
|
89
95
|
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
|
90
96
|
email: info@elastic.co
|
91
97
|
executables: []
|
@@ -98,7 +104,6 @@ files:
|
|
98
104
|
- LICENSE
|
99
105
|
- README.md
|
100
106
|
- lib/logstash/plugin_mixins/http_client.rb
|
101
|
-
- lib/logstash/plugin_mixins/http_client.rb~
|
102
107
|
- logstash-mixin-http_client.gemspec
|
103
108
|
- spec/plugin_mixin/http_client_spec.rb
|
104
109
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
@@ -111,12 +116,12 @@ require_paths:
|
|
111
116
|
- lib
|
112
117
|
required_ruby_version: !ruby/object:Gem::Requirement
|
113
118
|
requirements:
|
114
|
-
- -
|
119
|
+
- - '>='
|
115
120
|
- !ruby/object:Gem::Version
|
116
121
|
version: '0'
|
117
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
123
|
requirements:
|
119
|
-
- -
|
124
|
+
- - '>='
|
120
125
|
- !ruby/object:Gem::Version
|
121
126
|
version: '0'
|
122
127
|
requirements: []
|
@@ -1,163 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require "logstash/config/mixin"
|
3
|
-
|
4
|
-
# This module makes it easy to add a very fully configured HTTP client to logstash
|
5
|
-
# based on [Manticore](https://github.com/cheald/manticore).
|
6
|
-
# For an example of its usage see https://github.com/logstash-plugins/logstash-input-http_poller
|
7
|
-
module LogStash::PluginMixins::HttpClient
|
8
|
-
class InvalidHTTPConfigError < StandardError; end
|
9
|
-
|
10
|
-
def self.included(base)
|
11
|
-
require 'manticore'
|
12
|
-
base.extend(self)
|
13
|
-
base.setup_http_client_config
|
14
|
-
end
|
15
|
-
|
16
|
-
public
|
17
|
-
def setup_http_client_config
|
18
|
-
# Timeout (in seconds) for the entire request
|
19
|
-
config :request_timeout, :validate => :number, :default => 60
|
20
|
-
|
21
|
-
# Timeout (in seconds) to wait for data on the socket. Default is `10s`
|
22
|
-
config :socket_timeout, :validate => :number, :default => 10
|
23
|
-
|
24
|
-
# Timeout (in seconds) to wait for a connection to be established. Default is `10s`
|
25
|
-
config :connect_timeout, :validate => :number, :default => 10
|
26
|
-
|
27
|
-
# Should redirects be followed? Defaults to `true`
|
28
|
-
config :follow_redirects, :validate => :boolean, :default => true
|
29
|
-
|
30
|
-
# Max number of concurrent connections. Defaults to `50`
|
31
|
-
config :pool_max, :validate => :number, :default => 50
|
32
|
-
|
33
|
-
# Max number of concurrent connections to a single host. Defaults to `25`
|
34
|
-
config :pool_max_per_route, :validate => :number, :default => 25
|
35
|
-
|
36
|
-
# Turn this on to enable HTTP keepalive support. We highly recommend setting `automatic_retries` to at least
|
37
|
-
# one with this to fix interactions with broken keepalive implementations.
|
38
|
-
config :keepalive, :validate => :boolean, :default => true
|
39
|
-
|
40
|
-
# How many times should the client retry a failing URL? We highly recommend NOT setting this value
|
41
|
-
# to zero if keepalive is enabled. Some servers incorrectly end keepalives early requiring a retry!
|
42
|
-
# Note, `retry_non_idempotent` is set only GET, HEAD, PUT, DELETE, OPTIONS, and TRACE requests will be retried.
|
43
|
-
config :automatic_retries, :validate => :number, :default => 1
|
44
|
-
|
45
|
-
# If `automatic_retries` is enabled this will cause non-idempotent HTTP verbs (such as POST) to be retried.
|
46
|
-
config :retry_non_idempotent, :validate => :boolean, :default => false
|
47
|
-
|
48
|
-
# Set this to false to disable SSL/TLS certificate validation
|
49
|
-
# Note: setting this to false is generally considered insecure!
|
50
|
-
config :ssl_certificate_validation, :validate => :boolean, :default => true
|
51
|
-
|
52
|
-
# If you need to use a custom X.509 CA (.pem certs) specify the path to that here
|
53
|
-
config :cacert, :validate => :path
|
54
|
-
|
55
|
-
# If you'd like to use a client certificate (note, most people don't want this) set the path to the x509 cert here
|
56
|
-
config :client_cert, :validate => :path
|
57
|
-
# If you're using a client certificate specify the path to the encryption key here
|
58
|
-
config :client_key, :validate => :path
|
59
|
-
|
60
|
-
# If you need to use a custom keystore (`.jks`) specify that here. This does not work with .pem keys!
|
61
|
-
config :keystore, :validate => :path
|
62
|
-
|
63
|
-
# Specify the keystore password here.
|
64
|
-
# Note, most .jks files created with keytool require a password!
|
65
|
-
config :keystore_password, :validate => :password
|
66
|
-
|
67
|
-
# Specify the keystore type here. One of `JKS` or `PKCS12`. Default is `JKS`
|
68
|
-
config :keystore_type, :validate => :string, :default => "JKS"
|
69
|
-
|
70
|
-
# If you need to use a custom truststore (`.jks`) specify that here. This does not work with .pem certs!
|
71
|
-
config :truststore, :validate => :path
|
72
|
-
|
73
|
-
# Specify the truststore password here.
|
74
|
-
# Note, most .jks files created with keytool require a password!
|
75
|
-
config :truststore_password, :validate => :password
|
76
|
-
|
77
|
-
# Specify the truststore type here. One of `JKS` or `PKCS12`. Default is `JKS`
|
78
|
-
config :truststore_type, :validate => :string, :default => "JKS"
|
79
|
-
|
80
|
-
# Enable cookie support. With this enabled the client will persist cookies
|
81
|
-
# across requests as a normal web browser would. Enabled by default
|
82
|
-
config :cookies, :validate => :boolean, :default => true
|
83
|
-
|
84
|
-
# If you'd like to use an HTTP proxy . This supports multiple configuration syntaxes:
|
85
|
-
#
|
86
|
-
# 1. Proxy host in form: `http://proxy.org:1234`
|
87
|
-
# 2. Proxy host in form: `{host => "proxy.org", port => 80, scheme => 'http', user => 'username@host', password => 'password'}`
|
88
|
-
# 3. Proxy host in form: `{url => 'http://proxy.org:1234', user => 'username@host', password => 'password'}`
|
89
|
-
config :proxy
|
90
|
-
end
|
91
|
-
|
92
|
-
public
|
93
|
-
def client_config
|
94
|
-
c = {
|
95
|
-
connect_timeout: @connect_timeout,
|
96
|
-
socket_timeout: @socket_timeout,
|
97
|
-
request_timeout: @request_timeout,
|
98
|
-
follow_redirects: @follow_redirects,
|
99
|
-
automatic_retries: @automatic_retries,
|
100
|
-
retry_non_idempotent: @retry_non_idempotent,
|
101
|
-
pool_max: @pool_max,
|
102
|
-
pool_max_per_route: @pool_max_per_route,
|
103
|
-
cookies: @cookies,
|
104
|
-
keepalive: @keepalive,
|
105
|
-
verify: @ssl_certificate_validation
|
106
|
-
}
|
107
|
-
|
108
|
-
if @proxy
|
109
|
-
# Symbolize keys if necessary
|
110
|
-
c[:proxy] = @proxy.is_a?(Hash) ?
|
111
|
-
@proxy.reduce({}) {|memo,(k,v)| memo[k.to_sym] = v; memo} :
|
112
|
-
@proxy
|
113
|
-
end
|
114
|
-
|
115
|
-
c[:ssl] = {}
|
116
|
-
if @cacert
|
117
|
-
c[:ssl][:ca_file] = @cacert
|
118
|
-
end
|
119
|
-
|
120
|
-
if @truststore
|
121
|
-
c[:ssl].merge!(
|
122
|
-
:truststore => @truststore,
|
123
|
-
:truststore_type => @truststore_type
|
124
|
-
)
|
125
|
-
|
126
|
-
# JKS files have optional passwords if programatically created
|
127
|
-
if (@truststore_password)
|
128
|
-
c[:ssl].merge!(truststore_password: @truststore_password.value)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
if @keystore
|
133
|
-
c[:ssl].merge!(
|
134
|
-
:keystore => @keystore,
|
135
|
-
:keystore_type => @keystore_type
|
136
|
-
)
|
137
|
-
|
138
|
-
# JKS files have optional passwords if programatically created
|
139
|
-
if keystore_password
|
140
|
-
c[:ssl].merge!(keystore_password: @keystore_password.value)
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
if @client_cert && @client_key
|
145
|
-
c[:ssl][:client_cert] = @client_cert
|
146
|
-
c[:ssl][:client_key] = @client_key
|
147
|
-
elsif !!@client_cert ^ !!@client_key
|
148
|
-
raise InvalidHTTPConfigError, "You must specify both client_cert and client_key for an HTTP client, or neither!"
|
149
|
-
end
|
150
|
-
|
151
|
-
c
|
152
|
-
end
|
153
|
-
|
154
|
-
private
|
155
|
-
def make_client
|
156
|
-
Manticore::Client.new(client_config)
|
157
|
-
end
|
158
|
-
|
159
|
-
public
|
160
|
-
def client
|
161
|
-
@client ||= make_client
|
162
|
-
end
|
163
|
-
end
|