logstash-output-amazon_es 0.1.0-java

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,270 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: logstash-output-amazon_es
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: java
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
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - '>='
23
+ - !ruby/object:Gem::Version
24
+ version: '0'
25
+ prerelease: false
26
+ type: :runtime
27
+ - !ruby/object:Gem::Dependency
28
+ name: elasticsearch
29
+ version_requirements: !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
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '>='
40
+ - !ruby/object:Gem::Version
41
+ version: 1.0.10
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: '1.0'
45
+ prerelease: false
46
+ type: :runtime
47
+ - !ruby/object:Gem::Dependency
48
+ name: stud
49
+ version_requirements: !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
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.17
62
+ - - ~>
63
+ - !ruby/object:Gem::Version
64
+ version: '0.0'
65
+ prerelease: false
66
+ type: :runtime
67
+ - !ruby/object:Gem::Dependency
68
+ name: cabin
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ~>
72
+ - !ruby/object:Gem::Version
73
+ version: '0.6'
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: '0.6'
79
+ prerelease: false
80
+ type: :runtime
81
+ - !ruby/object:Gem::Dependency
82
+ name: logstash-core
83
+ version_requirements: !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
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - '>='
94
+ - !ruby/object:Gem::Version
95
+ version: 1.4.0
96
+ - - <
97
+ - !ruby/object:Gem::Version
98
+ version: 2.0.0
99
+ prerelease: false
100
+ type: :runtime
101
+ - !ruby/object:Gem::Dependency
102
+ name: aws-sdk
103
+ version_requirements: !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
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - '>='
114
+ - !ruby/object:Gem::Version
115
+ version: 2.1.14
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: '2.1'
119
+ prerelease: false
120
+ type: :runtime
121
+ - !ruby/object:Gem::Dependency
122
+ name: faraday
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ~>
126
+ - !ruby/object:Gem::Version
127
+ version: 0.9.1
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ~>
131
+ - !ruby/object:Gem::Version
132
+ version: 0.9.1
133
+ prerelease: false
134
+ type: :runtime
135
+ - !ruby/object:Gem::Dependency
136
+ name: faraday_middleware
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 0.10.0
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ~>
145
+ - !ruby/object:Gem::Version
146
+ version: 0.10.0
147
+ prerelease: false
148
+ type: :runtime
149
+ - !ruby/object:Gem::Dependency
150
+ name: ftw
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ~>
154
+ - !ruby/object:Gem::Version
155
+ version: 0.0.42
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ~>
159
+ - !ruby/object:Gem::Version
160
+ version: 0.0.42
161
+ prerelease: false
162
+ type: :development
163
+ - !ruby/object:Gem::Dependency
164
+ name: logstash-input-generator
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - '>='
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ prerelease: false
176
+ type: :development
177
+ - !ruby/object:Gem::Dependency
178
+ name: manticore
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ~>
182
+ - !ruby/object:Gem::Version
183
+ version: 0.4.2
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ~>
187
+ - !ruby/object:Gem::Version
188
+ version: 0.4.2
189
+ prerelease: false
190
+ type: :runtime
191
+ - !ruby/object:Gem::Dependency
192
+ name: logstash-devutils
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - '>='
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ prerelease: false
204
+ type: :development
205
+ - !ruby/object:Gem::Dependency
206
+ name: longshoreman
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - '>='
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - '>='
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ prerelease: false
218
+ type: :development
219
+ description: Output events to Amazon Elasticsearch Service with V4 signing
220
+ email: feedback-prod-elasticsearch@amazon.com
221
+ executables: []
222
+ extensions: []
223
+ extra_rdoc_files: []
224
+ files:
225
+ - Gemfile
226
+ - LICENSE
227
+ - NOTICE.TXT
228
+ - README.md
229
+ - lib/logstash/outputs/amazon_es.rb
230
+ - lib/logstash/outputs/amazon_es/aws_transport.rb
231
+ - lib/logstash/outputs/amazon_es/aws_v4_signer.rb
232
+ - lib/logstash/outputs/amazon_es/aws_v4_signer_impl.rb
233
+ - lib/logstash/outputs/amazon_es/elasticsearch-template.json
234
+ - lib/logstash/outputs/amazon_es/http_client.rb
235
+ - logstash-output-amazon_es.gemspec
236
+ - spec/amazon_es_spec_helper.rb
237
+ - spec/unit/outputs/amazon_es_spec.rb
238
+ - spec/unit/outputs/elasticsearch/protocol_spec.rb
239
+ - spec/unit/outputs/elasticsearch_proxy_spec.rb
240
+ homepage: http://logstash.net/
241
+ licenses:
242
+ - apache-2.0
243
+ metadata:
244
+ logstash_plugin: 'true'
245
+ logstash_group: output
246
+ post_install_message:
247
+ rdoc_options: []
248
+ require_paths:
249
+ - lib
250
+ required_ruby_version: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - '>='
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ required_rubygems_version: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - '>='
258
+ - !ruby/object:Gem::Version
259
+ version: '0'
260
+ requirements: []
261
+ rubyforge_project:
262
+ rubygems_version: 2.4.8
263
+ signing_key:
264
+ specification_version: 4
265
+ summary: Logstash Output to Amazon Elasticsearch Service
266
+ test_files:
267
+ - spec/amazon_es_spec_helper.rb
268
+ - spec/unit/outputs/amazon_es_spec.rb
269
+ - spec/unit/outputs/elasticsearch/protocol_spec.rb
270
+ - spec/unit/outputs/elasticsearch_proxy_spec.rb