elasticsearch-transport 7.8.1 → 7.9.0.pre

Sign up to get free protection for your applications and to get access to all the features.
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: