elasticsearch-transport 7.6.0 → 7.7.0.pre

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 954bd7789cddfa4566eb6776fd47a747c88507efdbaa0fe2bcdd74e374ecbc40
4
- data.tar.gz: e2103eae1740df19f3fb1ec25f9e49bb83d86d511611d8e6bbbefb9ec5ce2bfc
3
+ metadata.gz: 514552f2ef4e92c8ba16f376cbe452963c62e79afcb4feba64ff62a9562d9463
4
+ data.tar.gz: 48dabfa3c58ab1aa80af7c1fe5b487582c46f8822f7fec6816f67da16f11959e
5
5
  SHA512:
6
- metadata.gz: ea3ea8fcd19ce804cff739c0c6e1671c1eede31a47414442c718b100b3c22c627a9341f58150be12ea0f3f70d98e2465b70f4eeae877353f7b930deaafe3372e
7
- data.tar.gz: 6a2adbbe5f396eb12e9c7a558dc66bf613b42c2464fd82f9205344777b2c9a560b8fd27482cc058a66b746defe4c66a1920649af04621a14aabe2a455a4b0c8b
6
+ metadata.gz: 97084b1748a5043dbef690c1d946e893a7a4d565d149e1369d70eacbce18cb9ce0fda5c450cc113acce6beaf09701173d8f9d08f0186e028677ef5e2f84fa647
7
+ data.tar.gz: e58a5aa7a30cc7a282649bb87cc957f25a33b98b1ca8554c157ee855b52af81b4247da82ac7d3ecffaef78b3a9fc3b6584258ba3f0e63000d59c4c95a9f8280c
data/README.md CHANGED
@@ -37,7 +37,7 @@ Currently these libraries will be automatically detected and used:
37
37
  - [HTTPClient](https://rubygems.org/gems/httpclient)
38
38
  - [Net::HTTP::Persistent](https://rubygems.org/gems/net-http-persistent)
39
39
 
40
- **Note on [Typhoeus](https://github.com/typhoeus/typhoeus)**: Typhoeus is compatible and will be automatically detected too. However, the latest release (v1.3.1 at the moment of writing this) is not compatible with Faraday 1.0. [It still uses the deprecated `Faraday::Error` namespace](https://github.com/typhoeus/typhoeus/blob/v1.3.1/lib/typhoeus/adapters/faraday.rb#L100). If you want to use it with this gem, we suggest getting `master` from GitHub, since this has been fixed for v1.4.0. We'll update this if/when v1.4.0 is released.
40
+ **Note on [Typhoeus](https://github.com/typhoeus/typhoeus)**: Typhoeus is compatible and will be automatically detected too. However, the latest release (v1.3.1 at the moment of writing this) is not compatible with Faraday 1.0. [It still uses the deprecated `Faraday::Error` namespace](https://github.com/typhoeus/typhoeus/blob/v1.3.1/lib/typhoeus/adapters/faraday.rb#L100). If you want to use it with this gem, we suggest getting `master` from GitHub, since this has been fixed for v1.4.0. We'll update this if/when v1.4.0 is released.a
41
41
 
42
42
  For detailed information, see example configurations [below](#transport-implementations).
43
43
 
@@ -78,6 +78,7 @@ Full documentation is available at <http://rubydoc.info/gems/elasticsearch-trans
78
78
  * [Connect using an Elastic Cloud ID](#connect-using-an-elastic-cloud-id)
79
79
  * [Authentication](#authentication)
80
80
  * [Logging](#logging)
81
+ * [Custom HTTP Headers](#custom-http-headers)
81
82
  * [Identifying running tasks with X-Opaque-Id](#identifying-running-tasks-with-x-opaque-id)
82
83
  * [Setting Timeouts](#setting-timeouts)
83
84
  * [Randomizing Hosts](#randomizing-hosts)
@@ -189,30 +190,61 @@ Elasticsearch::Client.new(
189
190
  To log requests and responses to standard output with the default logger (an instance of Ruby's {::Logger} class),
190
191
  set the `log` argument:
191
192
 
192
- Elasticsearch::Client.new log: true
193
+ ```ruby
194
+ Elasticsearch::Client.new log: true
195
+ ```
196
+
193
197
 
194
198
  To trace requests and responses in the _Curl_ format, set the `trace` argument:
195
199
 
196
- Elasticsearch::Client.new trace: true
200
+ ```ruby
201
+ Elasticsearch::Client.new trace: true
202
+ ```
197
203
 
198
204
  You can customize the default logger or tracer:
199
205
 
206
+ ```ruby
200
207
  client.transport.logger.formatter = proc { |s, d, p, m| "#{s}: #{m}\n" }
201
208
  client.transport.logger.level = Logger::INFO
209
+ ```
202
210
 
203
211
  Or, you can use a custom `::Logger` instance:
204
212
 
205
- Elasticsearch::Client.new logger: Logger.new(STDERR)
213
+ ```ruby
214
+ Elasticsearch::Client.new logger: Logger.new(STDERR)
215
+ ```
206
216
 
207
217
  You can pass the client any conforming logger implementation:
208
218
 
209
- require 'logging' # https://github.com/TwP/logging/
219
+ ```ruby
220
+ require 'logging' # https://github.com/TwP/logging/
221
+
222
+ log = Logging.logger['elasticsearch']
223
+ log.add_appenders Logging.appenders.stdout
224
+ log.level = :info
225
+
226
+ client = Elasticsearch::Client.new logger: log
227
+ ```
210
228
 
211
- log = Logging.logger['elasticsearch']
212
- log.add_appenders Logging.appenders.stdout
213
- log.level = :info
229
+ ### Custom HTTP Headers
230
+
231
+ You can set a custom HTTP header on the client's initializer:
232
+
233
+ ```ruby
234
+ client = Elasticsearch::Client.new(
235
+ transport_options: {
236
+ headers:
237
+ {user_agent: "My App"}
238
+ }
239
+ )
240
+ ```
241
+
242
+ You can also pass in `headers` as a parameter to any of the API Endpoints to set custom headers for the request:
243
+
244
+ ```ruby
245
+ client.search(index: 'myindex', q: 'title:test', headers: {user_agent: "My App"})
246
+ ```
214
247
 
215
- client = Elasticsearch::Client.new logger: log
216
248
  ### Identifying running tasks with X-Opaque-Id
217
249
 
218
250
  The X-Opaque-Id header allows to track certain calls, or associate certain tasks with the client that started them ([more on the Elasticsearch docs](https://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html#_identifying_running_tasks)). To use this feature, you need to set an id for `opaque_id` on the client on each request. Example:
@@ -330,25 +362,29 @@ preferring HTTP clients with support for persistent connections.
330
362
 
331
363
  To use the [_Patron_](https://github.com/toland/patron) HTTP, for example, just require it:
332
364
 
333
- require 'patron'
365
+ ```ruby
366
+ require 'patron'
367
+ ```
334
368
 
335
369
  Then, create a new client, and the _Patron_ gem will be used as the "driver":
336
370
 
337
- client = Elasticsearch::Client.new
371
+ ```ruby
372
+ client = Elasticsearch::Client.new
338
373
 
339
- client.transport.connections.first.connection.builder.adapter
340
- # => Faraday::Adapter::Patron
374
+ client.transport.connections.first.connection.builder.adapter
375
+ # => Faraday::Adapter::Patron
341
376
 
342
- 10.times do
343
- client.nodes.stats(metric: 'http')['nodes'].values.each do |n|
344
- puts "#{n['name']} : #{n['http']['total_opened']}"
345
- end
346
- end
377
+ 10.times do
378
+ client.nodes.stats(metric: 'http')['nodes'].values.each do |n|
379
+ puts "#{n['name']} : #{n['http']['total_opened']}"
380
+ end
381
+ end
347
382
 
348
- # => Stiletoo : 24
349
- # => Stiletoo : 24
350
- # => Stiletoo : 24
351
- # => ...
383
+ # => Stiletoo : 24
384
+ # => Stiletoo : 24
385
+ # => Stiletoo : 24
386
+ # => ...
387
+ ```
352
388
 
353
389
  To use a specific adapter for _Faraday_, pass it as the `adapter` argument:
354
390
 
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.add_development_dependency 'elasticsearch-extensions'
35
35
  s.add_development_dependency 'minitest'
36
36
  s.add_development_dependency 'minitest-reporters'
37
- s.add_development_dependency 'rake', '~> 11.1'
37
+ s.add_development_dependency 'rake', '~> 13'
38
38
  s.add_development_dependency 'require-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
39
39
  s.add_development_dependency 'ruby-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
40
40
  s.add_development_dependency 'simplecov', '~> 0.17', '< 0.18'
@@ -4,6 +4,6 @@
4
4
 
5
5
  module Elasticsearch
6
6
  module Transport
7
- VERSION = "7.6.0"
7
+ VERSION = "7.7.0.pre"
8
8
  end
9
9
  end
@@ -1129,10 +1129,22 @@ describe Elasticsearch::Transport::Client do
1129
1129
  allow(client).to receive(:perform_request) { OpenStruct.new(body: '') }
1130
1130
  expect { client.search(opaque_id: 'opaque_id') }.not_to raise_error
1131
1131
  expect(client).to have_received(:perform_request)
1132
- .with('GET', '_search', { opaque_id: 'opaque_id' }, nil)
1132
+ .with('GET', '_search', { opaque_id: 'opaque_id' }, nil, {})
1133
1133
  end
1134
1134
  end
1135
1135
  end
1136
+
1137
+ context 'when a header is set on an endpoint request' do
1138
+ let(:client) { described_class.new(host: hosts) }
1139
+ let(:headers) { { 'user-agent' => 'my ruby app' } }
1140
+
1141
+ it 'performs the request with the header' do
1142
+ allow(client).to receive(:perform_request) { OpenStruct.new(body: '') }
1143
+ expect { client.search(headers: headers) }.not_to raise_error
1144
+ expect(client).to have_received(:perform_request)
1145
+ .with('GET', '_search', {}, nil, headers)
1146
+ end
1147
+ end
1136
1148
  end
1137
1149
 
1138
1150
  context 'when the client connects to Elasticsearch' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticsearch-transport
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.6.0
4
+ version: 7.7.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karel Minarik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-07 00:00:00.000000000 Z
11
+ date: 2020-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '11.1'
117
+ version: '13'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '11.1'
124
+ version: '13'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: require-prof
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -419,9 +419,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
419
419
  version: '2.4'
420
420
  required_rubygems_version: !ruby/object:Gem::Requirement
421
421
  requirements:
422
- - - ">="
422
+ - - ">"
423
423
  - !ruby/object:Gem::Version
424
- version: '0'
424
+ version: 1.3.1
425
425
  requirements: []
426
426
  rubygems_version: 3.1.2
427
427
  signing_key: