logstash-input-courier 1.7 → 1.8

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/logstash/inputs/courier.rb +59 -37
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e33ca55f8e8c0c491e6f9a50d87511cc94b83d72
4
- data.tar.gz: 7c3d5aada21209f39fa1e6697ae0a7f8b50260f6
3
+ metadata.gz: 7981989158bbbf5c236b66a14ccd472e78614599
4
+ data.tar.gz: fe9f9f20dca027e2f7c4bb585941e7d7136b8adc
5
5
  SHA512:
6
- metadata.gz: 52579976950b1e45e68963fea9b89577b408c35b18b3065567ca7d0bb521aad4b77266a92ec2e4f7d716fe6e789971261688c303706348c7cf6105fba10b2ede
7
- data.tar.gz: c1f51ed9e99f0bdfe1fab6f38e375968409b2b7dda080982615c33f87a1e0c79137de98e838dbefa4afee7eff9c4b0a65fdfc2b0b60e6295a4e773f3b8e62e77
6
+ metadata.gz: 23121ed9af2f33fd88809f076642e89e98240aff9283324e2a8e923ab805ca1627d0ca958a578b38b2c19c71038ad13568b25cdc2df282cc18b0f898b2a3f6db
7
+ data.tar.gz: 65d71d81c6cf395bfb1db87ccef473f636eb4ed2ae8a8b8f6b2f2bd21afd512f4738ece50445030bffeb889f5af6c7cc43800b1e639c205c13dde232a284ea2d
@@ -17,46 +17,55 @@
17
17
  # See the License for the specific language governing permissions and
18
18
  # limitations under the License.
19
19
 
20
+ require 'logstash/version'
21
+ require 'rubygems/version'
22
+
20
23
  module LogStash
21
24
  module Inputs
22
25
  # Receive events over the Log Courier protocol
23
26
  class Courier < LogStash::Inputs::Base
24
27
  config_name 'courier'
25
28
 
29
+ # Compatibility with Logstash 1.4 requires milestone
30
+ if Gem::Version.new(LOGSTASH_VERSION) < Gem::Version.new('1.5.0')
31
+ milestone 2
32
+ end
33
+
26
34
  default :codec, 'plain'
27
35
 
28
36
  # The IP address to listen on
29
- config :host, :validate => :string, :default => '0.0.0.0'
37
+ config :host, validate: :string, default: '0.0.0.0'
30
38
 
31
39
  # The port to listen on
32
- config :port, :validate => :number, :required => true
40
+ config :port, validate: :number, required: true
33
41
 
34
42
  # The transport type to use
35
- config :transport, :validate => :string, :default => 'tls'
43
+ config :transport, validate: :string, default: 'tls'
36
44
 
37
45
  # SSL certificate to use
38
- config :ssl_certificate, :validate => :path
46
+ config :ssl_certificate, validate: :path
39
47
 
40
48
  # SSL key to use
41
- config :ssl_key, :validate => :path
49
+ config :ssl_key, validate: :path
42
50
 
43
51
  # SSL key passphrase to use
44
- config :ssl_key_passphrase, :validate => :password
52
+ config :ssl_key_passphrase, validate: :password
45
53
 
46
54
  # Whether or not to verify client certificates
47
- config :ssl_verify, :validate => :boolean, :default => false
55
+ config :ssl_verify, validate: :boolean, default: false
48
56
 
49
- # When verifying client certificates, also trust those signed by the system's default CA bundle
50
- config :ssl_verify_default_ca, :validate => :boolean, :default => false
57
+ # When verifying client certificates, also trust those signed by the
58
+ # system's default CA bundle
59
+ config :ssl_verify_default_ca, validate: :boolean, default: false
51
60
 
52
61
  # CA certificate to use when verifying client certificates
53
- config :ssl_verify_ca, :validate => :path
62
+ config :ssl_verify_ca, validate: :path
54
63
 
55
64
  # Curve secret key
56
- config :curve_secret_key, :validate => :string
65
+ config :curve_secret_key, validate: :string
57
66
 
58
67
  # Max packet size
59
- config :max_packet_size, :validate => :number
68
+ config :max_packet_size, validate: :number
60
69
 
61
70
  # The size of the internal queue for each peer
62
71
  #
@@ -64,7 +73,7 @@ module LogStash
64
73
  #
65
74
  # This setting should max the max_pending_payloads Log Courier
66
75
  # configuration
67
- config :peer_recv_queue, :validate => :number
76
+ config :peer_recv_queue, validate: :number
68
77
 
69
78
  # Add additional fields to events that identity the peer
70
79
  #
@@ -73,46 +82,59 @@ module LogStash
73
82
  # "peer" identifies the source host and port
74
83
  # "peer_ssl_cn" contains the client certificate hostname for TLS peers
75
84
  # using client certificates
76
- config :add_peer_fields, :validate => :boolean
85
+ config :add_peer_fields, validate: :boolean
77
86
 
78
87
  public
79
88
 
80
89
  def register
81
- @logger.info 'Starting courier input listener', :address => "#{@host}:#{@port}"
82
-
83
- options = {
84
- logger: @logger,
85
- address: @host,
86
- port: @port,
87
- transport: @transport,
88
- ssl_certificate: @ssl_certificate,
89
- ssl_key: @ssl_key,
90
- ssl_key_passphrase: @ssl_key_passphrase,
91
- ssl_verify: @ssl_verify,
92
- ssl_verify_default_ca: @ssl_verify_default_ca,
93
- ssl_verify_ca: @ssl_verify_ca,
94
- curve_secret_key: @curve_secret_key,
95
- }
96
-
97
- # Honour the defaults in the LogCourier gem
98
- options[:max_packet_size] = @max_packet_size unless @max_packet_size.nil?
99
- options[:peer_recv_queue] = @peer_recv_queue unless @peer_recv_queue.nil?
100
- options[:add_peer_fields] = @add_peer_fields unless @add_peer_fields.nil?
90
+ @logger.info(
91
+ 'Starting courier input listener',
92
+ address: "#{@host}:#{@port}"
93
+ )
101
94
 
102
95
  require 'log-courier/server'
103
96
  @log_courier = LogCourier::Server.new options
104
97
  end
105
98
 
106
- public
107
-
108
99
  def run(output_queue)
109
100
  @log_courier.run do |event|
110
- event['tags'] = [event['tags']] if event.has_key?('tags') && !event['tags'].is_a?(Array)
101
+ if event.key?('tags') && !event['tags'].is_a?(Array)
102
+ event['tags'] = [event['tags']]
103
+ end
111
104
  event = LogStash::Event.new(event)
112
105
  decorate event
113
106
  output_queue << event
114
107
  end
115
108
  end
109
+
110
+ private
111
+
112
+ def options
113
+ result = {}
114
+
115
+ [
116
+ :logger, :address, :port, :transport, :ssl_certificate, :ssl_key,
117
+ :ssl_key_passphrase, :ssl_verify, :ssl_verify_default_ca,
118
+ :curve_secret_key
119
+ ].each do |k|
120
+ result[k] = send(k)
121
+ end
122
+
123
+ add_override_options result
124
+ end
125
+
126
+ def add_override_options(result)
127
+ # Honour the defaults in the LogCourier gem
128
+ [:max_packet_size, :peer_recv_queue, :add_peer_fields].each do |k|
129
+ result[k] = send(k) unless send(k).nil?
130
+ end
131
+ result
132
+ end
133
+
134
+ def address
135
+ # TODO: Fix this naming inconsistency
136
+ @host
137
+ end
116
138
  end
117
139
  end
118
140
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-courier
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.7'
4
+ version: '1.8'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Woods
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-03 00:00:00.000000000 Z
11
+ date: 2015-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-core
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: '1.7'
33
+ version: '1.8'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: '1.7'
40
+ version: '1.8'
41
41
  description: Log Courier Input Logstash Plugin
42
42
  email:
43
43
  - devel@jasonwoods.me.uk