elastic-transport 8.2.1 → 8.2.3
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/.github/workflows/license.yml +1 -1
- data/.github/workflows/tests.yml +6 -6
- data/CHANGELOG.md +12 -0
- data/README.md +2 -1
- data/elastic-transport.gemspec +2 -2
- data/lib/elastic/transport/client.rb +4 -6
- data/lib/elastic/transport/transport/base.rb +1 -1
- data/lib/elastic/transport/transport/http/manticore.rb +1 -1
- data/lib/elastic/transport/transport/response.rb +2 -3
- data/lib/elastic/transport/version.rb +1 -1
- metadata +5 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f666d1e77cc7d01dcb75db01ae517ee1645e6630b02c32f7052f79a4c77de48
|
4
|
+
data.tar.gz: 4a6af2555238d92045f6d22a15000d4a8666813602d5f3486d3f1f627ceecf58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e17397db6f79a278db371ec799b15ce366e160e19c13d1fbdbb7b3bad8b36c0cefa77e0b5086083faba9348f42d79f52c3cb77d4554a653ac707a0bb505d435
|
7
|
+
data.tar.gz: 82ec2214beaae1a0423c09016140359e16b482fbc1c311906c96cb3cb8d2be54a1602cb6778c1fe624259fea92d2baf02932af223454eca4eba1403705813ba0
|
data/.github/workflows/tests.yml
CHANGED
@@ -15,11 +15,11 @@ jobs:
|
|
15
15
|
strategy:
|
16
16
|
fail-fast: false
|
17
17
|
matrix:
|
18
|
-
ruby: [ '
|
19
|
-
es_version: ['8.
|
18
|
+
ruby: [ '3.0', '3.1', '3.2', 'jruby-9.3', 'jruby-9.4' ]
|
19
|
+
es_version: ['8.7-SNAPSHOT', '8.8-SNAPSHOT', '8.9-SNAPSHOT']
|
20
20
|
runs-on: ubuntu-latest
|
21
21
|
steps:
|
22
|
-
- uses: actions/checkout@
|
22
|
+
- uses: actions/checkout@v3
|
23
23
|
- name: Increase system limits
|
24
24
|
run: |
|
25
25
|
sudo swapoff -a
|
@@ -53,11 +53,11 @@ jobs:
|
|
53
53
|
strategy:
|
54
54
|
fail-fast: false
|
55
55
|
matrix:
|
56
|
-
ruby: [ '
|
57
|
-
es_version: ['8.
|
56
|
+
ruby: [ '3.0', '3.1', '3.2', 'jruby-9.3' ]
|
57
|
+
es_version: ['8.9-SNAPSHOT']
|
58
58
|
runs-on: ubuntu-latest
|
59
59
|
steps:
|
60
|
-
- uses: actions/checkout@
|
60
|
+
- uses: actions/checkout@v3
|
61
61
|
- name: Increase system limits
|
62
62
|
run: |
|
63
63
|
sudo swapoff -a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## 8.2.3
|
2
|
+
|
3
|
+
Tested versions of Ruby: (MRI) 3.0, 3.1, 3.2, JRuby 9.3 and JRuby 9.4
|
4
|
+
|
5
|
+
- Fixes enforcing UTF-8 in Response body, causing an error when the string is frozen, particularly when using webmock. [issue #63](https://github.com/elastic/elastic-transport-ruby/issues/63)
|
6
|
+
|
7
|
+
## 8.2.2
|
8
|
+
|
9
|
+
Tested versions of Ruby: (MRI) 3.0, 3.1, 3.2, JRuby 9.3 and JRuby 9.4
|
10
|
+
|
11
|
+
- Refactors `apply_headers` in base and manticore implementation: When passing in an object to the initializer, `apply_headers` would mutate this object and in certain conditions, this would raise `RuntimeError` in JRuby 9.3 and `ConcurrencyError` in JRuby 9.4. This update clones the options object instead.
|
12
|
+
|
1
13
|
## 8.2.1
|
2
14
|
|
3
15
|
Tested versions of Ruby: (MRI) 2.7, 3.0, 3.1, 3.2, JRuby 9.3 and JRuby 9.4. Ruby 2.7's end of life is coming in a few days, so this'll probably be the last release to test for Ruby 2.7.
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# Elastic Transport
|
2
|
+
[](https://github.com/elastic/elastic-transport-ruby/actions/workflows/tests.yml)
|
2
3
|
[](https://github.com/elastic/elastic-transport-ruby/actions/workflows/tests.yml)
|
3
4
|
|
4
5
|
This gem provides a low-level Ruby client for connecting to an [Elastic](http://elastic.co) cluster. It powers both the [Elasticsearch client](https://github.com/elasticsearch/elasticsearch-ruby/) and the [Elastic Enterprise Search](https://github.com/elastic/enterprise-search-ruby/) client.
|
@@ -15,7 +16,7 @@ response = client.perform_request('GET', '_cluster/health')
|
|
15
16
|
|
16
17
|
**Refer to [the official documentation on Elastic Transport](https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/transport.html).**
|
17
18
|
|
18
|
-
**Refer to [Advanced Configuration](https://
|
19
|
+
**Refer to [Advanced Configuration](https://www.elastic.co/guide/en/elasticsearch/client/ruby-api/current/advanced-config.html) to read about more configuration options.**
|
19
20
|
|
20
21
|
## Compatibility
|
21
22
|
|
data/elastic-transport.gemspec
CHANGED
@@ -23,8 +23,8 @@ require 'elastic/transport/version'
|
|
23
23
|
Gem::Specification.new do |s|
|
24
24
|
s.name = "elastic-transport"
|
25
25
|
s.version = Elastic::Transport::VERSION
|
26
|
-
s.authors = ['
|
27
|
-
s.email = ['
|
26
|
+
s.authors = ['Elastic Client Library Maintainers']
|
27
|
+
s.email = ['client-libs@elastic.co']
|
28
28
|
s.summary = 'Low level Ruby client for Elastic services.'
|
29
29
|
s.homepage = 'https://github.com/elastic/elastic-transport-ruby'
|
30
30
|
s.license = 'Apache-2.0'
|
@@ -122,8 +122,7 @@ module Elastic
|
|
122
122
|
# @yield [faraday] Access and configure the `Faraday::Connection` instance directly with a block
|
123
123
|
#
|
124
124
|
def initialize(arguments = {}, &block)
|
125
|
-
@
|
126
|
-
@arguments = @options
|
125
|
+
@arguments = arguments.transform_keys(&:to_sym)
|
127
126
|
@arguments[:logger] ||= @arguments[:log] ? DEFAULT_LOGGER.call() : nil
|
128
127
|
@arguments[:tracer] ||= @arguments[:trace] ? DEFAULT_TRACER.call() : nil
|
129
128
|
@arguments[:reload_connections] ||= false
|
@@ -134,7 +133,6 @@ module Elastic
|
|
134
133
|
@arguments[:transport_options] ||= {}
|
135
134
|
@arguments[:http] ||= {}
|
136
135
|
@arguments[:enable_meta_header] = arguments.fetch(:enable_meta_header, true)
|
137
|
-
@options[:http] ||= {}
|
138
136
|
|
139
137
|
@hosts ||= __extract_hosts(@arguments[:hosts] ||
|
140
138
|
@arguments[:host] ||
|
@@ -236,7 +234,7 @@ module Elastic
|
|
236
234
|
end
|
237
235
|
|
238
236
|
host_list = hosts.map { |host| __parse_host(host) }
|
239
|
-
@
|
237
|
+
@arguments[:randomize_hosts] ? host_list.shuffle! : host_list
|
240
238
|
end
|
241
239
|
|
242
240
|
def __parse_host(host)
|
@@ -273,8 +271,8 @@ module Elastic
|
|
273
271
|
raise ArgumentError, "Please pass host as a String, URI or Hash -- #{host.class} given."
|
274
272
|
end
|
275
273
|
|
276
|
-
@
|
277
|
-
@
|
274
|
+
@arguments[:http][:user] ||= host_parts[:user]
|
275
|
+
@arguments[:http][:password] ||= host_parts[:password]
|
278
276
|
host_parts[:port] = host_parts[:port].to_i if host_parts[:port]
|
279
277
|
host_parts[:path].chomp!('/') if host_parts[:path]
|
280
278
|
host_parts
|
@@ -431,7 +431,7 @@ module Elastic
|
|
431
431
|
end
|
432
432
|
|
433
433
|
def apply_headers(client, options)
|
434
|
-
headers = options[:headers] || {}
|
434
|
+
headers = options[:headers].clone || {}
|
435
435
|
headers[CONTENT_TYPE_STR] = find_value(headers, CONTENT_TYPE_REGEX) || DEFAULT_CONTENT_TYPE
|
436
436
|
headers[USER_AGENT_STR] = find_value(headers, USER_AGENT_REGEX) || user_agent_header(client)
|
437
437
|
client.headers[ACCEPT_ENCODING] = GZIP if use_compression?
|
@@ -162,7 +162,7 @@ module Elastic
|
|
162
162
|
private
|
163
163
|
|
164
164
|
def apply_headers(options)
|
165
|
-
headers = options[:headers] || options.dig(:transport_options, :headers) || {}
|
165
|
+
headers = options[:headers].clone || options.dig(:transport_options, :headers).clone || {}
|
166
166
|
headers[CONTENT_TYPE_STR] = find_value(headers, CONTENT_TYPE_REGEX) || DEFAULT_CONTENT_TYPE
|
167
167
|
headers[USER_AGENT_STR] = find_value(headers, USER_AGENT_REGEX) || find_value(@request_options[:headers], USER_AGENT_REGEX) || user_agent_header
|
168
168
|
headers[ACCEPT_ENCODING] = GZIP if use_compression?
|
@@ -19,8 +19,7 @@ module Elastic
|
|
19
19
|
module Transport
|
20
20
|
module Transport
|
21
21
|
# Wraps the response from Elasticsearch.
|
22
|
-
# It provides `body`, `status` and `headers` methods
|
23
|
-
# access the keys directly.
|
22
|
+
# It provides `body`, `status` and `headers` methods
|
24
23
|
class Response
|
25
24
|
attr_reader :status, :body, :headers
|
26
25
|
|
@@ -29,7 +28,7 @@ module Elastic
|
|
29
28
|
# @param headers [Hash] Response headers
|
30
29
|
def initialize(status, body, headers = {})
|
31
30
|
@status, @body, @headers = status, body, headers
|
32
|
-
@body = body.force_encoding('UTF-8') if body.respond_to?(:force_encoding)
|
31
|
+
@body = body.force_encoding('UTF-8') if body.respond_to?(:force_encoding) && !body.frozen?
|
33
32
|
end
|
34
33
|
end
|
35
34
|
end
|
metadata
CHANGED
@@ -1,16 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic-transport
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.2.
|
4
|
+
version: 8.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
- Emily Stolfo
|
9
|
-
- Fernando Briano
|
7
|
+
- Elastic Client Library Maintainers
|
10
8
|
autorequire:
|
11
9
|
bindir: bin
|
12
10
|
cert_chain: []
|
13
|
-
date: 2023-
|
11
|
+
date: 2023-08-31 00:00:00.000000000 Z
|
14
12
|
dependencies:
|
15
13
|
- !ruby/object:Gem::Dependency
|
16
14
|
name: faraday
|
@@ -255,7 +253,7 @@ description: 'Low level Ruby client for Elastic. See the `elasticsearch` or `ela
|
|
255
253
|
|
256
254
|
'
|
257
255
|
email:
|
258
|
-
-
|
256
|
+
- client-libs@elastic.co
|
259
257
|
executables: []
|
260
258
|
extensions: []
|
261
259
|
extra_rdoc_files:
|
@@ -339,7 +337,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
339
337
|
- !ruby/object:Gem::Version
|
340
338
|
version: '0'
|
341
339
|
requirements: []
|
342
|
-
rubygems_version: 3.4.
|
340
|
+
rubygems_version: 3.4.13
|
343
341
|
signing_key:
|
344
342
|
specification_version: 4
|
345
343
|
summary: Low level Ruby client for Elastic services.
|