elasticsearch-transport 7.7.0 → 7.9.0

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.
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' } } } }