elasticsearch-transport 7.8.1 → 7.9.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: 9756e0b1fd31770784d234514a5adfa267025551dd6de0b803be689353933394
4
- data.tar.gz: e954f524303a9352aecb5591c11409a4271b65bdb7a7669ad16462e835a49356
3
+ metadata.gz: 8e172f03d64feff3991f8ef723219c1f3f26824d624cfaee35195168c2224361
4
+ data.tar.gz: d8039d3a4e5a5f406aae9ff94a56ef0c1068dd985b71c36a4d21d553b3404775
5
5
  SHA512:
6
- metadata.gz: 42e6e84d9981eb7a96353daa3e571792394d96fef21c7c74e84f97061f39203ba359b431a01e3c7ebdb61245534875a41fa74b4849be215373a1890c6de7ec80
7
- data.tar.gz: 41f46cd5b6b5b30c822318a2743730a2a97bfc18c11abe9eee176e63f6e854a6ec8fce5df25a192f072d1e0536e16a137c9c8e3359cb56aad061382df9512de0
6
+ metadata.gz: 1ae8684bffd3b1c1badd932702491266d93dafbe63cc7b02de814601bd120c0955914ff6e3f3220e7cfafe0654f87ecca3fea652c6df4783d106b9749b69eaca
7
+ data.tar.gz: 8607504cde6a896a5c11d2e7ab753829dddb9c1d7c2ae960e3cdb3a9bfff2f3d46e9bec0790222e7d34f8309ea86d5c096e9646fdadd51cfae6b0891defed73d
@@ -47,7 +47,7 @@ module Elasticsearch
47
47
  #
48
48
  # @see Client#initialize
49
49
  #
50
- def initialize(arguments={}, &block)
50
+ def initialize(arguments = {}, &block)
51
51
  @state_mutex = Mutex.new
52
52
 
53
53
  @hosts = arguments[:hosts] || []
@@ -234,9 +234,9 @@ module Elasticsearch
234
234
  def __full_url(host)
235
235
  url = "#{host[:protocol]}://"
236
236
  url += "#{CGI.escape(host[:user])}:#{CGI.escape(host[:password])}@" if host[:user]
237
- url += "#{host[:host]}"
237
+ url += host[:host]
238
238
  url += ":#{host[:port]}" if host[:port]
239
- url += "#{host[:path]}" if host[:path]
239
+ url += host[:path] if host[:path]
240
240
  url
241
241
  end
242
242
 
@@ -258,8 +258,9 @@ module Elasticsearch
258
258
  # @raise [ServerError] If request failed on server
259
259
  # @raise [Error] If no connection is available
260
260
  #
261
- def perform_request(method, path, params={}, body=nil, headers=nil, opts={}, &block)
262
- raise NoMethodError, "Implement this method in your transport class" unless block_given?
261
+ def perform_request(method, path, params = {}, body = nil, headers = nil, opts = {}, &block)
262
+ raise NoMethodError, 'Implement this method in your transport class' unless block_given?
263
+
263
264
  start = Time.now
264
265
  tries = 0
265
266
  reload_on_failure = opts.fetch(:reload_on_failure, @options[:reload_on_failure])
@@ -276,15 +277,15 @@ module Elasticsearch
276
277
 
277
278
  begin
278
279
  tries += 1
279
- connection = get_connection or raise Error.new("Cannot get new connection from pool.")
280
+ connection = get_connection or raise Error.new('Cannot get new connection from pool.')
280
281
 
281
282
  if connection.connection.respond_to?(:params) && connection.connection.params.respond_to?(:to_hash)
282
283
  params = connection.connection.params.merge(params.to_hash)
283
284
  end
284
285
 
285
- url = connection.full_url(path, params)
286
+ url = connection.full_url(path, params)
286
287
 
287
- response = block.call(connection, url)
288
+ response = block.call(connection, url)
288
289
 
289
290
  connection.healthy! if connection.failures > 0
290
291
 
@@ -135,14 +135,15 @@ module Elasticsearch
135
135
  }
136
136
  end
137
137
 
138
- # Equality operator based on connection protocol, host and port
138
+ # Equality operator based on connection protocol, host, port and attributes
139
139
  #
140
140
  # @return [Boolean]
141
141
  #
142
142
  def ==(other)
143
143
  self.host[:protocol] == other.host[:protocol] && \
144
144
  self.host[:host] == other.host[:host] && \
145
- self.host[:port].to_i == other.host[:port].to_i
145
+ self.host[:port].to_i == other.host[:port].to_i && \
146
+ self.host[:attributes] == other.host[:attributes]
146
147
  end
147
148
 
148
149
  # @return [String]
@@ -45,21 +45,21 @@ module Elasticsearch
45
45
  #
46
46
  def hosts
47
47
  Timeout::timeout(timeout, SnifferTimeoutError) do
48
- nodes = transport.perform_request('GET', '_nodes/http', {}, nil, nil,
49
- reload_on_failure: false).body
48
+ nodes = perform_sniff_request.body
50
49
 
51
50
  hosts = nodes['nodes'].map do |id, info|
52
- if info[PROTOCOL]
53
- host, port = parse_publish_address(info[PROTOCOL]['publish_address'])
51
+ next unless info[PROTOCOL]
52
+ host, port = parse_publish_address(info[PROTOCOL]['publish_address'])
54
53
 
55
- { :id => id,
56
- :name => info['name'],
57
- :version => info['version'],
58
- :host => host,
59
- :port => port,
60
- :roles => info['roles'],
61
- :attributes => info['attributes'] }
62
- end
54
+ {
55
+ id: id,
56
+ name: info['name'],
57
+ version: info['version'],
58
+ host: host,
59
+ port: port,
60
+ roles: info['roles'],
61
+ attributes: info['attributes']
62
+ }
63
63
  end.compact
64
64
 
65
65
  hosts.shuffle! if transport.options[:randomize_hosts]
@@ -69,6 +69,13 @@ module Elasticsearch
69
69
 
70
70
  private
71
71
 
72
+ def perform_sniff_request
73
+ transport.perform_request(
74
+ 'GET', '_nodes/http', {}, nil, nil,
75
+ reload_on_failure: false
76
+ )
77
+ end
78
+
72
79
  def parse_publish_address(publish_address)
73
80
  # publish_address is in the format hostname/ip:port
74
81
  if publish_address =~ /\//
@@ -17,6 +17,6 @@
17
17
 
18
18
  module Elasticsearch
19
19
  module Transport
20
- VERSION = "7.8.1"
20
+ VERSION = "7.9.0.pre"
21
21
  end
22
22
  end
@@ -18,7 +18,6 @@
18
18
  require 'spec_helper'
19
19
 
20
20
  describe Elasticsearch::Transport::Transport::Sniffer do
21
-
22
21
  let(:transport) do
23
22
  double('transport').tap do |t|
24
23
  allow(t).to receive(:perform_request).and_return(response)
@@ -45,7 +44,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
45
44
  end
46
45
 
47
46
  describe '#initialize' do
48
-
49
47
  it 'has a transport instance' do
50
48
  expect(sniffer.transport).to be(transport)
51
49
  end
@@ -56,7 +54,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
56
54
  end
57
55
 
58
56
  describe '#timeout' do
59
-
60
57
  let(:sniffer) do
61
58
  described_class.new(double('transport', options: {}))
62
59
  end
@@ -71,13 +68,11 @@ describe Elasticsearch::Transport::Transport::Sniffer do
71
68
  end
72
69
 
73
70
  describe '#hosts' do
74
-
75
71
  let(:hosts) do
76
72
  sniffer.hosts
77
73
  end
78
74
 
79
75
  context 'when the entire response is parsed' do
80
-
81
76
  let(:raw_response) do
82
77
  {
83
78
  "cluster_name" => "elasticsearch_test",
@@ -142,7 +137,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
142
137
  end
143
138
 
144
139
  context 'when the transport protocol does not match' do
145
-
146
140
  let(:raw_response) do
147
141
  { 'nodes' => { 'n1' => { 'foo' => { 'publish_address' => '127.0.0.1:9250' } } } }
148
142
  end
@@ -153,7 +147,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
153
147
  end
154
148
 
155
149
  context 'when a list of nodes is returned' do
156
-
157
150
  let(:raw_response) do
158
151
  { 'nodes' => { 'n1' => { 'http' => { 'publish_address' => '127.0.0.1:9250' } },
159
152
  'n2' => { 'http' => { 'publish_address' => '127.0.0.1:9251' } } } }
@@ -175,7 +168,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
175
168
  end
176
169
 
177
170
  context 'when the host and port are an ip address and port' do
178
-
179
171
  it 'parses the response' do
180
172
  expect(hosts.size).to eq(1)
181
173
  end
@@ -190,7 +182,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
190
182
  end
191
183
 
192
184
  context 'when the host and port are a hostname and port' do
193
-
194
185
  let(:publish_address) do
195
186
  'testhost1.com:9250'
196
187
  end
@@ -213,7 +204,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
213
204
  end
214
205
 
215
206
  context 'when the host and port are in the format: hostname/ip:port' do
216
-
217
207
  let(:publish_address) do
218
208
  'example.com/127.0.0.1:9250'
219
209
  end
@@ -231,7 +221,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
231
221
  end
232
222
 
233
223
  context 'when the address is IPv6' do
234
-
235
224
  let(:publish_address) do
236
225
  'example.com/[::1]:9250'
237
226
  end
@@ -251,7 +240,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
251
240
  end
252
241
 
253
242
  context 'when the address is IPv6' do
254
-
255
243
  let(:publish_address) do
256
244
  '[::1]:9250'
257
245
  end
@@ -270,7 +258,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
270
258
  end
271
259
 
272
260
  context 'when the transport has :randomize_hosts option' do
273
-
274
261
  let(:raw_response) do
275
262
  { 'nodes' => { 'n1' => { 'http' => { 'publish_address' => '127.0.0.1:9250' } },
276
263
  'n2' => { 'http' => { 'publish_address' => '127.0.0.1:9251' } } } }
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.8.1
4
+ version: 7.9.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-07-30 00:00:00.000000000 Z
11
+ date: 2020-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -423,9 +423,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
423
423
  version: '2.4'
424
424
  required_rubygems_version: !ruby/object:Gem::Requirement
425
425
  requirements:
426
- - - ">="
426
+ - - ">"
427
427
  - !ruby/object:Gem::Version
428
- version: '0'
428
+ version: 1.3.1
429
429
  requirements: []
430
430
  rubygems_version: 3.1.4
431
431
  signing_key: