elasticsearch-transport 7.7.0 → 7.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +16 -3
  3. data/README.md +4 -4
  4. data/Rakefile +16 -3
  5. data/elasticsearch-transport.gemspec +17 -4
  6. data/lib/elasticsearch-transport.rb +16 -3
  7. data/lib/elasticsearch/transport.rb +16 -3
  8. data/lib/elasticsearch/transport/client.rb +16 -3
  9. data/lib/elasticsearch/transport/redacted.rb +16 -3
  10. data/lib/elasticsearch/transport/transport/base.rb +32 -12
  11. data/lib/elasticsearch/transport/transport/connections/collection.rb +16 -3
  12. data/lib/elasticsearch/transport/transport/connections/connection.rb +19 -5
  13. data/lib/elasticsearch/transport/transport/connections/selector.rb +16 -3
  14. data/lib/elasticsearch/transport/transport/errors.rb +16 -3
  15. data/lib/elasticsearch/transport/transport/http/curb.rb +16 -3
  16. data/lib/elasticsearch/transport/transport/http/faraday.rb +16 -3
  17. data/lib/elasticsearch/transport/transport/http/manticore.rb +16 -3
  18. data/lib/elasticsearch/transport/transport/loggable.rb +16 -3
  19. data/lib/elasticsearch/transport/transport/response.rb +16 -4
  20. data/lib/elasticsearch/transport/transport/serializer/multi_json.rb +16 -3
  21. data/lib/elasticsearch/transport/transport/sniffer.rb +35 -15
  22. data/lib/elasticsearch/transport/version.rb +17 -4
  23. data/spec/elasticsearch/connections/collection_spec.rb +16 -3
  24. data/spec/elasticsearch/connections/selector_spec.rb +16 -3
  25. data/spec/elasticsearch/transport/base_spec.rb +16 -10
  26. data/spec/elasticsearch/transport/client_spec.rb +84 -7
  27. data/spec/elasticsearch/transport/sniffer_spec.rb +16 -16
  28. data/spec/spec_helper.rb +16 -3
  29. data/test/integration/transport_test.rb +16 -3
  30. data/test/profile/client_benchmark_test.rb +16 -3
  31. data/test/test_helper.rb +16 -3
  32. data/test/unit/connection_test.rb +16 -3
  33. data/test/unit/response_test.rb +17 -4
  34. data/test/unit/serializer_test.rb +16 -3
  35. data/test/unit/transport_base_test.rb +16 -3
  36. data/test/unit/transport_curb_test.rb +16 -3
  37. data/test/unit/transport_faraday_test.rb +16 -3
  38. data/test/unit/transport_manticore_test.rb +16 -3
  39. metadata +4 -4
@@ -1,6 +1,19 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  require 'manticore'
6
19
 
@@ -1,6 +1,19 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  module Elasticsearch
6
19
 
@@ -1,11 +1,23 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  module Elasticsearch
6
19
  module Transport
7
20
  module Transport
8
-
9
21
  # Wraps the response from Elasticsearch.
10
22
  #
11
23
  class Response
@@ -1,6 +1,19 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  module Elasticsearch
6
19
  module Transport
@@ -1,6 +1,19 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  module Elasticsearch
6
19
  module Transport
@@ -32,21 +45,21 @@ module Elasticsearch
32
45
  #
33
46
  def hosts
34
47
  Timeout::timeout(timeout, SnifferTimeoutError) do
35
- nodes = transport.perform_request('GET', '_nodes/http', {}, nil, nil,
36
- reload_on_failure: false).body
48
+ nodes = perform_sniff_request.body
37
49
 
38
50
  hosts = nodes['nodes'].map do |id, info|
39
- if info[PROTOCOL]
40
- host, port = parse_publish_address(info[PROTOCOL]['publish_address'])
51
+ next unless info[PROTOCOL]
52
+ host, port = parse_publish_address(info[PROTOCOL]['publish_address'])
41
53
 
42
- { :id => id,
43
- :name => info['name'],
44
- :version => info['version'],
45
- :host => host,
46
- :port => port,
47
- :roles => info['roles'],
48
- :attributes => info['attributes'] }
49
- 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
+ }
50
63
  end.compact
51
64
 
52
65
  hosts.shuffle! if transport.options[:randomize_hosts]
@@ -56,6 +69,13 @@ module Elasticsearch
56
69
 
57
70
  private
58
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
+
59
79
  def parse_publish_address(publish_address)
60
80
  # publish_address is in the format hostname/ip:port
61
81
  if publish_address =~ /\//
@@ -1,9 +1,22 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  module Elasticsearch
6
19
  module Transport
7
- VERSION = "7.7.0"
20
+ VERSION = "7.9.0"
8
21
  end
9
22
  end
@@ -1,6 +1,19 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  require 'spec_helper'
6
19
 
@@ -1,6 +1,19 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  require 'spec_helper'
6
19
 
@@ -1,6 +1,19 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  require 'spec_helper'
6
19
 
@@ -96,7 +109,6 @@ describe Elasticsearch::Transport::Transport::Base do
96
109
  end
97
110
 
98
111
  context 'when `perform_request` is called without a `retry_on_failure` option value' do
99
-
100
112
  before do
101
113
  expect(client.transport).to receive(:get_connection).exactly(3).times.and_call_original
102
114
  end
@@ -109,7 +121,6 @@ describe Elasticsearch::Transport::Transport::Base do
109
121
  end
110
122
 
111
123
  context 'when `perform_request` is called with a `retry_on_failure` option value' do
112
-
113
124
  before do
114
125
  expect(client.transport).to receive(:get_connection).exactly(6).times.and_call_original
115
126
  end
@@ -123,7 +134,6 @@ describe Elasticsearch::Transport::Transport::Base do
123
134
  end
124
135
 
125
136
  context 'when the client has `retry_on_failure` set to true' do
126
-
127
137
  let(:client) do
128
138
  Elasticsearch::Transport::Client.new(arguments)
129
139
  end
@@ -136,7 +146,6 @@ describe Elasticsearch::Transport::Transport::Base do
136
146
  end
137
147
 
138
148
  context 'when `perform_request` is called without a `retry_on_failure` option value' do
139
-
140
149
  before do
141
150
  expect(client.transport).to receive(:get_connection).exactly(4).times.and_call_original
142
151
  end
@@ -149,7 +158,6 @@ describe Elasticsearch::Transport::Transport::Base do
149
158
  end
150
159
 
151
160
  context 'when `perform_request` is called with a `retry_on_failure` option value' do
152
-
153
161
  before do
154
162
  expect(client.transport).to receive(:get_connection).exactly(6).times.and_call_original
155
163
  end
@@ -163,7 +171,6 @@ describe Elasticsearch::Transport::Transport::Base do
163
171
  end
164
172
 
165
173
  context 'when the client has `retry_on_failure` set to false' do
166
-
167
174
  let(:client) do
168
175
  Elasticsearch::Transport::Client.new(arguments)
169
176
  end
@@ -176,7 +183,6 @@ describe Elasticsearch::Transport::Transport::Base do
176
183
  end
177
184
 
178
185
  context 'when `perform_request` is called without a `retry_on_failure` option value' do
179
-
180
186
  before do
181
187
  expect(client.transport).to receive(:get_connection).once.and_call_original
182
188
  end
@@ -1,11 +1,23 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  require 'spec_helper'
6
19
 
7
20
  describe Elasticsearch::Transport::Client do
8
-
9
21
  let(:client) do
10
22
  described_class.new.tap do |_client|
11
23
  allow(_client).to receive(:__build_connections)
@@ -228,8 +240,7 @@ describe Elasticsearch::Transport::Client do
228
240
  end
229
241
  end
230
242
 
231
- context 'when the adapter is specified' do
232
-
243
+ context 'when the adapter is patron' do
233
244
  let(:adapter) do
234
245
  client.transport.connections.all.first.connection.builder.adapter
235
246
  end
@@ -243,8 +254,21 @@ describe Elasticsearch::Transport::Client do
243
254
  end
244
255
  end
245
256
 
246
- context 'when the adapter is specified as a string key' do
257
+ context 'when the adapter is typhoeus' do
258
+ let(:adapter) do
259
+ client.transport.connections.all.first.connection.builder.adapter
260
+ end
261
+
262
+ let(:client) do
263
+ described_class.new(adapter: :typhoeus)
264
+ end
265
+
266
+ it 'uses Faraday with the adapter' do
267
+ expect(adapter).to eq Faraday::Adapter::Typhoeus
268
+ end
269
+ end
247
270
 
271
+ context 'when the adapter is specified as a string key' do
248
272
  let(:adapter) do
249
273
  client.transport.connections.all.first.connection.builder.adapter
250
274
  end
@@ -1134,6 +1158,32 @@ describe Elasticsearch::Transport::Client do
1134
1158
  end
1135
1159
  end
1136
1160
 
1161
+ context 'when Elasticsearch response includes a warning header' do
1162
+ let(:client) do
1163
+ Elasticsearch::Transport::Client.new(hosts: hosts)
1164
+ end
1165
+
1166
+ let(:warning) { 'Elasticsearch warning: "deprecation warning"' }
1167
+
1168
+ it 'prints a warning' do
1169
+ allow_any_instance_of(Elasticsearch::Transport::Transport::Response).to receive(:headers) do
1170
+ { 'warning' => warning }
1171
+ end
1172
+
1173
+ begin
1174
+ stderr = $stderr
1175
+ fake_stderr = StringIO.new
1176
+ $stderr = fake_stderr
1177
+
1178
+ client.perform_request('GET', '/')
1179
+ fake_stderr.rewind
1180
+ expect(fake_stderr.string).to eq("warning: #{warning}\n")
1181
+ ensure
1182
+ $stderr = stderr
1183
+ end
1184
+ end
1185
+ end
1186
+
1137
1187
  context 'when a header is set on an endpoint request' do
1138
1188
  let(:client) { described_class.new(host: hosts) }
1139
1189
  let(:headers) { { 'user-agent' => 'my ruby app' } }
@@ -1591,6 +1641,33 @@ describe Elasticsearch::Transport::Client do
1591
1641
  expect(connections_after).to be >= (connections_before)
1592
1642
  end
1593
1643
  end
1644
+
1645
+ context 'when typhoeus is used as an adapter', unless: jruby? do
1646
+ before do
1647
+ require 'typhoeus'
1648
+ end
1649
+
1650
+ let(:options) do
1651
+ { adapter: :typhoeus }
1652
+ end
1653
+
1654
+ let(:adapter) do
1655
+ client.transport.connections.first.connection.builder.adapter
1656
+ end
1657
+
1658
+ it 'uses the patron connection handler' do
1659
+ expect(adapter).to eq('Faraday::Adapter::Typhoeus')
1660
+ end
1661
+
1662
+ it 'keeps connections open' do
1663
+ response = client.perform_request('GET', '_nodes/stats/http')
1664
+ connections_before = response.body['nodes'].values.find { |n| n['name'] == node_names.first }['http']['total_opened']
1665
+ client.transport.reload_connections!
1666
+ response = client.perform_request('GET', '_nodes/stats/http')
1667
+ connections_after = response.body['nodes'].values.find { |n| n['name'] == node_names.first }['http']['total_opened']
1668
+ expect(connections_after).to be >= (connections_before)
1669
+ end
1670
+ end
1594
1671
  end
1595
1672
  end
1596
1673
  end
@@ -1,11 +1,23 @@
1
- # Licensed to Elasticsearch B.V under one or more agreements.
2
- # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
- # See the LICENSE file in the project root for more information
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
4
17
 
5
18
  require 'spec_helper'
6
19
 
7
20
  describe Elasticsearch::Transport::Transport::Sniffer do
8
-
9
21
  let(:transport) do
10
22
  double('transport').tap do |t|
11
23
  allow(t).to receive(:perform_request).and_return(response)
@@ -32,7 +44,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
32
44
  end
33
45
 
34
46
  describe '#initialize' do
35
-
36
47
  it 'has a transport instance' do
37
48
  expect(sniffer.transport).to be(transport)
38
49
  end
@@ -43,7 +54,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
43
54
  end
44
55
 
45
56
  describe '#timeout' do
46
-
47
57
  let(:sniffer) do
48
58
  described_class.new(double('transport', options: {}))
49
59
  end
@@ -58,13 +68,11 @@ describe Elasticsearch::Transport::Transport::Sniffer do
58
68
  end
59
69
 
60
70
  describe '#hosts' do
61
-
62
71
  let(:hosts) do
63
72
  sniffer.hosts
64
73
  end
65
74
 
66
75
  context 'when the entire response is parsed' do
67
-
68
76
  let(:raw_response) do
69
77
  {
70
78
  "cluster_name" => "elasticsearch_test",
@@ -129,7 +137,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
129
137
  end
130
138
 
131
139
  context 'when the transport protocol does not match' do
132
-
133
140
  let(:raw_response) do
134
141
  { 'nodes' => { 'n1' => { 'foo' => { 'publish_address' => '127.0.0.1:9250' } } } }
135
142
  end
@@ -140,7 +147,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
140
147
  end
141
148
 
142
149
  context 'when a list of nodes is returned' do
143
-
144
150
  let(:raw_response) do
145
151
  { 'nodes' => { 'n1' => { 'http' => { 'publish_address' => '127.0.0.1:9250' } },
146
152
  'n2' => { 'http' => { 'publish_address' => '127.0.0.1:9251' } } } }
@@ -162,7 +168,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
162
168
  end
163
169
 
164
170
  context 'when the host and port are an ip address and port' do
165
-
166
171
  it 'parses the response' do
167
172
  expect(hosts.size).to eq(1)
168
173
  end
@@ -177,7 +182,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
177
182
  end
178
183
 
179
184
  context 'when the host and port are a hostname and port' do
180
-
181
185
  let(:publish_address) do
182
186
  'testhost1.com:9250'
183
187
  end
@@ -200,7 +204,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
200
204
  end
201
205
 
202
206
  context 'when the host and port are in the format: hostname/ip:port' do
203
-
204
207
  let(:publish_address) do
205
208
  'example.com/127.0.0.1:9250'
206
209
  end
@@ -218,7 +221,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
218
221
  end
219
222
 
220
223
  context 'when the address is IPv6' do
221
-
222
224
  let(:publish_address) do
223
225
  'example.com/[::1]:9250'
224
226
  end
@@ -238,7 +240,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
238
240
  end
239
241
 
240
242
  context 'when the address is IPv6' do
241
-
242
243
  let(:publish_address) do
243
244
  '[::1]:9250'
244
245
  end
@@ -257,7 +258,6 @@ describe Elasticsearch::Transport::Transport::Sniffer do
257
258
  end
258
259
 
259
260
  context 'when the transport has :randomize_hosts option' do
260
-
261
261
  let(:raw_response) do
262
262
  { 'nodes' => { 'n1' => { 'http' => { 'publish_address' => '127.0.0.1:9250' } },
263
263
  'n2' => { 'http' => { 'publish_address' => '127.0.0.1:9251' } } } }