elasticsearch-transport 7.11.0.pre.1 → 7.11.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.
- checksums.yaml +4 -4
- data/lib/elasticsearch/transport/client.rb +10 -2
- data/lib/elasticsearch/transport/transport/http/faraday.rb +10 -2
- data/lib/elasticsearch/transport/version.rb +1 -1
- data/spec/elasticsearch/transport/client_spec.rb +23 -2
- data/spec/elasticsearch/transport/meta_header_spec.rb +26 -15
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e2f0e5d372dfa4495b762d82a182fab89c57fa56b7c62649587843dea8c2faf
|
4
|
+
data.tar.gz: f9d02a71dec534954eb87f1a777b1410578d378b15454193295aca9dfcaf5586
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 625ac145cc74529c6a383309e6a2ee0729bf57f2858b2dc7d769f79025cf925256b9c5a531be52e070a419d3ed7efd525474eb8781aca87caad7b7fffa21c6e0
|
7
|
+
data.tar.gz: 683c674b9778ff15d2d82ac05d667e05944e897be3e0deebaf7277dbdaf837d5df2ad17ff9b4fb91b75f4b162a229e1ac8c9b6eee419c717db2a7e2e7668531f
|
@@ -226,12 +226,20 @@ module Elasticsearch
|
|
226
226
|
if defined?(Elastic::META_HEADER_SERVICE_VERSION)
|
227
227
|
Elastic::META_HEADER_SERVICE_VERSION
|
228
228
|
elsif defined?(Elasticsearch::VERSION)
|
229
|
-
[
|
229
|
+
[:es, client_meta_version(Elasticsearch::VERSION)]
|
230
230
|
else
|
231
|
-
[
|
231
|
+
[:es, client_meta_version(Elasticsearch::Transport::VERSION)]
|
232
232
|
end
|
233
233
|
end
|
234
234
|
|
235
|
+
def client_meta_version(version)
|
236
|
+
regexp = /^([0-9]+\.[0-9]+\.[0-9]+)(\.?[a-z0-9.-]+)?$/
|
237
|
+
match = version.match(regexp)
|
238
|
+
return "#{match[1]}p" if (match[2])
|
239
|
+
|
240
|
+
version
|
241
|
+
end
|
242
|
+
|
235
243
|
def meta_header_engine
|
236
244
|
case RUBY_ENGINE
|
237
245
|
when 'ruby'
|
@@ -33,9 +33,17 @@ module Elasticsearch
|
|
33
33
|
# @return [Response]
|
34
34
|
# @see Transport::Base#perform_request
|
35
35
|
#
|
36
|
-
def perform_request(method, path, params={}, body=nil, headers=nil, opts={})
|
36
|
+
def perform_request(method, path, params = {}, body = nil, headers = nil, opts = {})
|
37
37
|
super do |connection, url|
|
38
|
-
headers =
|
38
|
+
headers = if connection.connection.headers
|
39
|
+
if !headers.nil?
|
40
|
+
connection.connection.headers.merge(headers)
|
41
|
+
else
|
42
|
+
connection.connection.headers
|
43
|
+
end
|
44
|
+
else
|
45
|
+
headers
|
46
|
+
end
|
39
47
|
|
40
48
|
response = connection.connection.run_request(method.downcase.to_sym,
|
41
49
|
url,
|
@@ -1423,7 +1423,7 @@ describe Elasticsearch::Transport::Client do
|
|
1423
1423
|
allow(client).to receive(:perform_request) { OpenStruct.new(body: '') }
|
1424
1424
|
expect { client.search(opaque_id: 'opaque_id') }.not_to raise_error
|
1425
1425
|
expect(client).to have_received(:perform_request)
|
1426
|
-
|
1426
|
+
.with('GET', '_search', { opaque_id: 'opaque_id' }, nil, {})
|
1427
1427
|
end
|
1428
1428
|
end
|
1429
1429
|
end
|
@@ -1462,7 +1462,28 @@ describe Elasticsearch::Transport::Client do
|
|
1462
1462
|
allow(client).to receive(:perform_request) { OpenStruct.new(body: '') }
|
1463
1463
|
expect { client.search(headers: headers) }.not_to raise_error
|
1464
1464
|
expect(client).to have_received(:perform_request)
|
1465
|
-
|
1465
|
+
.with('GET', '_search', {}, nil, headers)
|
1466
|
+
end
|
1467
|
+
end
|
1468
|
+
|
1469
|
+
context 'when a header is set on an endpoint request and on initialization' do
|
1470
|
+
let!(:client) do
|
1471
|
+
described_class.new(
|
1472
|
+
host: hosts,
|
1473
|
+
transport_options: { headers: instance_headers }
|
1474
|
+
)
|
1475
|
+
end
|
1476
|
+
let(:instance_headers) { { set_in_instantiation: 'header value' } }
|
1477
|
+
let(:param_headers) {{'user-agent' => 'My Ruby Tests', 'set-on-method-call' => 'header value'}}
|
1478
|
+
|
1479
|
+
it 'performs the request with the header' do
|
1480
|
+
expected_headers = client.transport.connections.connections.first.connection.headers.merge(param_headers)
|
1481
|
+
|
1482
|
+
expect_any_instance_of(Faraday::Connection)
|
1483
|
+
.to receive(:run_request)
|
1484
|
+
.with(:get, "http://#{hosts[0]}/_search", nil, expected_headers) { OpenStruct.new(body: '')}
|
1485
|
+
|
1486
|
+
client.search(headers: param_headers)
|
1466
1487
|
end
|
1467
1488
|
end
|
1468
1489
|
end
|
@@ -20,17 +20,36 @@ require 'spec_helper'
|
|
20
20
|
describe Elasticsearch::Transport::Client do
|
21
21
|
context 'meta-header' do
|
22
22
|
let(:subject) { client.transport.connections.first.connection.headers }
|
23
|
+
let(:client) { described_class.new }
|
23
24
|
let(:regexp) { /^[a-z]{1,}=[a-z0-9.\-]{1,}(?:,[a-z]{1,}=[a-z0-9._\-]+)*$/ }
|
24
25
|
let(:adapter) { :net_http }
|
25
26
|
let(:adapter_code) { "nh=#{defined?(Net::HTTP::VERSION) ? Net::HTTP::VERSION : Net::HTTP::HTTPVersion}" }
|
26
27
|
let(:meta_header) do
|
27
28
|
if jruby?
|
28
|
-
"es=#{
|
29
|
+
"es=#{meta_version},rb=#{RUBY_VERSION},t=#{Elasticsearch::Transport::VERSION},jv=#{ENV_JAVA['java.version']},jr=#{JRUBY_VERSION},fd=#{Faraday::VERSION},#{adapter_code}"
|
29
30
|
else
|
30
|
-
"es=#{
|
31
|
+
"es=#{meta_version},rb=#{RUBY_VERSION},t=#{Elasticsearch::Transport::VERSION},fd=#{Faraday::VERSION},#{adapter_code}"
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
35
|
+
context 'client_meta_version_' do
|
36
|
+
let(:version) { ['7.1.0-alpha', '7.11.0.pre.1', '8.0.0-beta', '8.0.0.beta.2']}
|
37
|
+
|
38
|
+
it 'converts the version to X.X.Xp' do
|
39
|
+
expect(client.send(:client_meta_version, '7.0.0-alpha')).to eq('7.0.0p')
|
40
|
+
expect(client.send(:client_meta_version, '7.11.0.pre.1')).to eq('7.11.0p')
|
41
|
+
expect(client.send(:client_meta_version, '8.1.0-beta')).to eq('8.1.0p')
|
42
|
+
expect(client.send(:client_meta_version, '8.0.0.beta.2')).to eq('8.0.0p')
|
43
|
+
expect(client.send(:client_meta_version, '12.16.4.pre')).to eq('12.16.4p')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# We are testing this method in the previous block, so now using it inside the test to make the
|
48
|
+
# Elasticsearch version in the meta header string dynamic
|
49
|
+
def meta_version
|
50
|
+
client.send(:client_meta_version, Elasticsearch::VERSION)
|
51
|
+
end
|
52
|
+
|
34
53
|
context 'single use of meta header' do
|
35
54
|
let(:client) do
|
36
55
|
described_class.new(adapter: adapter).tap do |klient|
|
@@ -78,9 +97,9 @@ describe Elasticsearch::Transport::Client do
|
|
78
97
|
context 'adapters' do
|
79
98
|
let(:meta_header) do
|
80
99
|
if jruby?
|
81
|
-
"es=#{
|
100
|
+
"es=#{meta_version},rb=#{RUBY_VERSION},t=#{Elasticsearch::Transport::VERSION},jv=#{ENV_JAVA['java.version']},jr=#{JRUBY_VERSION},fd=#{Faraday::VERSION}"
|
82
101
|
else
|
83
|
-
"es=#{
|
102
|
+
"es=#{meta_version},rb=#{RUBY_VERSION},t=#{Elasticsearch::Transport::VERSION},fd=#{Faraday::VERSION}"
|
84
103
|
end
|
85
104
|
end
|
86
105
|
let(:client) { described_class.new(adapter: adapter) }
|
@@ -167,9 +186,9 @@ describe Elasticsearch::Transport::Client do
|
|
167
186
|
let(:subject){ client.instance_variable_get("@arguments")[:transport_options][:headers] }
|
168
187
|
let(:meta_header) do
|
169
188
|
if jruby?
|
170
|
-
"es=#{
|
189
|
+
"es=#{meta_version},rb=#{RUBY_VERSION},t=#{Elasticsearch::Transport::VERSION},jv=#{ENV_JAVA['java.version']},jr=#{JRUBY_VERSION}"
|
171
190
|
else
|
172
|
-
"es=#{
|
191
|
+
"es=#{meta_version},rb=#{RUBY_VERSION},t=#{Elasticsearch::Transport::VERSION}"
|
173
192
|
end
|
174
193
|
end
|
175
194
|
|
@@ -181,15 +200,7 @@ describe Elasticsearch::Transport::Client do
|
|
181
200
|
|
182
201
|
context 'when using a different service version' do
|
183
202
|
before do
|
184
|
-
|
185
|
-
META_HEADER_SERVICE_VERSION = [:ent, '8.0.0']
|
186
|
-
end
|
187
|
-
end
|
188
|
-
|
189
|
-
after do
|
190
|
-
module Elastic
|
191
|
-
META_HEADER_SERVICE_VERSION = [:es, Elasticsearch::VERSION]
|
192
|
-
end
|
203
|
+
stub_const("Elastic::META_HEADER_SERVICE_VERSION", [:ent, '8.0.0'])
|
193
204
|
end
|
194
205
|
|
195
206
|
let(:client) { Elasticsearch::Client.new }
|
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.11.0
|
4
|
+
version: 7.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karel Minarik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -424,9 +424,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
424
424
|
version: '2.4'
|
425
425
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
426
426
|
requirements:
|
427
|
-
- - "
|
427
|
+
- - ">="
|
428
428
|
- !ruby/object:Gem::Version
|
429
|
-
version:
|
429
|
+
version: '0'
|
430
430
|
requirements: []
|
431
431
|
rubygems_version: 3.1.4
|
432
432
|
signing_key:
|