logstash-output-amazon_es 0.1.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.
@@ -0,0 +1,36 @@
1
+ require "logstash/devutils/rspec/spec_helper"
2
+ require "logstash/outputs/amazon_es/http_client"
3
+ require "java"
4
+
5
+ describe LogStash::Outputs::AES::HttpClient do
6
+ context "successful" do
7
+ it "should map correctly" do
8
+ bulk_response = {"took"=>74, "errors"=>false, "items"=>[{"create"=>{"_index"=>"logstash-2014.11.17",
9
+ "_type"=>"logs", "_id"=>"AUxTS2C55Jrgi-hC6rQF",
10
+ "_version"=>1, "status"=>201}}]}
11
+ actual = LogStash::Outputs::AES::HttpClient.normalize_bulk_response(bulk_response)
12
+ insist { actual } == {"errors"=> false}
13
+ end
14
+ end
15
+
16
+ context "contains failures" do
17
+ it "should map correctly" do
18
+ bulk_response = {"took"=>71, "errors"=>true,
19
+ "items"=>[{"create"=>{"_index"=>"logstash-2014.11.17",
20
+ "_type"=>"logs", "_id"=>"AUxTQ_OI5Jrgi-hC6rQB", "status"=>400,
21
+ "error"=>"MapperParsingException[failed to parse]..."}}]}
22
+ actual = LogStash::Outputs::AES::HttpClient.normalize_bulk_response(bulk_response)
23
+ insist { actual } == {"errors"=> true, "statuses"=> [400]}
24
+ end
25
+ end
26
+
27
+ describe "sniffing" do
28
+ let(:base_options) { {:hosts => ["127.0.0.1"] }}
29
+ let(:client) { LogStash::Outputs::AES::HttpClient.new(base_options.merge(client_opts)) }
30
+ let(:transport) { client.client.transport }
31
+
32
+ before do
33
+ allow(transport).to receive(:reload_connections!)
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,58 @@
1
+ require_relative "../../../spec/amazon_es_spec_helper"
2
+ require 'stud/temporary'
3
+ require 'elasticsearch'
4
+ require "logstash/outputs/amazon_es"
5
+
6
+ describe "Proxy option" do
7
+ let(:settings) {
8
+ {
9
+ "hosts" => "node01",
10
+ "proxy" => proxy
11
+ }
12
+ }
13
+ subject {
14
+ LogStash::Outputs::AmazonES.new(settings)
15
+ }
16
+
17
+ before do
18
+ allow(::Elasticsearch::Client).to receive(:new).with(any_args)
19
+ end
20
+
21
+ describe "valid configs" do
22
+ before do
23
+ subject.register
24
+ end
25
+
26
+ context "when specified as a string" do
27
+ let(:proxy) { "http://127.0.0.1:1234" }
28
+
29
+ it "should set the proxy to the exact value" do
30
+ expect(::Elasticsearch::Client).to have_received(:new) do |options|
31
+ expect(options[:transport_options][:proxy]).to eql(proxy)
32
+ end
33
+ end
34
+ end
35
+
36
+ context "when specified as a hash" do
37
+ let(:proxy) { {"hosts" => "127.0.0.1", "protocol" => "http"} }
38
+
39
+ it "should pass through the proxy values as symbols" do
40
+ expected = {:hosts => proxy["hosts"], :protocol => proxy["protocol"]}
41
+ expect(::Elasticsearch::Client).to have_received(:new) do |options|
42
+ expect(options[:transport_options][:proxy]).to eql(expected)
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ describe "invalid configs" do
49
+ let(:proxy) { ["bad", "stuff"] }
50
+
51
+ it "should have raised an exception" do
52
+ expect {
53
+ subject.register
54
+ }.to raise_error(LogStash::ConfigurationError)
55
+ end
56
+ end
57
+
58
+ end
metadata ADDED
@@ -0,0 +1,256 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: logstash-output-amazon_es
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Amazon
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-10-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: concurrent-ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: elasticsearch
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.10
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '1.0'
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.10
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: stud
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.0.17
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '0.0'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 0.0.17
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '0.0'
67
+ - !ruby/object:Gem::Dependency
68
+ name: cabin
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '0.6'
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '0.6'
81
+ - !ruby/object:Gem::Dependency
82
+ name: logstash-core
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: 1.4.0
88
+ - - "<"
89
+ - !ruby/object:Gem::Version
90
+ version: 2.0.0
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 1.4.0
98
+ - - "<"
99
+ - !ruby/object:Gem::Version
100
+ version: 2.0.0
101
+ - !ruby/object:Gem::Dependency
102
+ name: aws-sdk
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: 2.1.14
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.1'
111
+ type: :runtime
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 2.1.14
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: '2.1'
121
+ - !ruby/object:Gem::Dependency
122
+ name: faraday
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 0.9.1
128
+ type: :runtime
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 0.9.1
135
+ - !ruby/object:Gem::Dependency
136
+ name: faraday_middleware
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 0.10.0
142
+ type: :runtime
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: 0.10.0
149
+ - !ruby/object:Gem::Dependency
150
+ name: ftw
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: 0.0.42
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: 0.0.42
163
+ - !ruby/object:Gem::Dependency
164
+ name: logstash-input-generator
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ type: :development
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ - !ruby/object:Gem::Dependency
178
+ name: logstash-devutils
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ type: :development
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ - !ruby/object:Gem::Dependency
192
+ name: longshoreman
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ description: Output events to Amazon Elasticsearch Service with V4 signing
206
+ email: feedback-prod-elasticsearch@amazon.com
207
+ executables: []
208
+ extensions: []
209
+ extra_rdoc_files: []
210
+ files:
211
+ - Gemfile
212
+ - LICENSE
213
+ - NOTICE.TXT
214
+ - README.md
215
+ - lib/logstash/outputs/amazon_es.rb
216
+ - lib/logstash/outputs/amazon_es/aws_transport.rb
217
+ - lib/logstash/outputs/amazon_es/aws_v4_signer.rb
218
+ - lib/logstash/outputs/amazon_es/aws_v4_signer_impl.rb
219
+ - lib/logstash/outputs/amazon_es/elasticsearch-template.json
220
+ - lib/logstash/outputs/amazon_es/http_client.rb
221
+ - logstash-output-amazon_es.gemspec
222
+ - spec/amazon_es_spec_helper.rb
223
+ - spec/unit/outputs/amazon_es_spec.rb
224
+ - spec/unit/outputs/elasticsearch/protocol_spec.rb
225
+ - spec/unit/outputs/elasticsearch_proxy_spec.rb
226
+ homepage: http://logstash.net/
227
+ licenses:
228
+ - apache-2.0
229
+ metadata:
230
+ logstash_plugin: 'true'
231
+ logstash_group: output
232
+ post_install_message:
233
+ rdoc_options: []
234
+ require_paths:
235
+ - lib
236
+ required_ruby_version: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ version: '0'
241
+ required_rubygems_version: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - ">="
244
+ - !ruby/object:Gem::Version
245
+ version: '0'
246
+ requirements: []
247
+ rubyforge_project:
248
+ rubygems_version: 2.4.6
249
+ signing_key:
250
+ specification_version: 4
251
+ summary: Logstash Output to Amazon Elasticsearch Service
252
+ test_files:
253
+ - spec/amazon_es_spec_helper.rb
254
+ - spec/unit/outputs/amazon_es_spec.rb
255
+ - spec/unit/outputs/elasticsearch/protocol_spec.rb
256
+ - spec/unit/outputs/elasticsearch_proxy_spec.rb