elasticsearch-transport 7.17.8 → 7.17.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e07e10bc048337e82efb7c1705c7758b4490b6a6306757d283d10b1648333abb
4
- data.tar.gz: 9ddf1e9eb94035f0629e16573a273730a5c9d51988677bd1f51061f30ca3697e
3
+ metadata.gz: aa58b200c57b9fffe2bd1f4d1b1665c7155e472168b25c46f39204d575c8851d
4
+ data.tar.gz: bd07e27115bf220d45fe68c116b7074257cdeb15b2abf1107c9f4956e9bbee47
5
5
  SHA512:
6
- metadata.gz: f6d33245469de43ed5e854c8ec0a6370bc61d1f85cfc824fe3ce07c04708e54c0db793f2c4b672ad62acd617d5dc0de0c9264690a3b90dbf1cf112e27b4f8919
7
- data.tar.gz: 570fa8a837f985eaea2a4664f399b68e432a91bc1f362469f72cd072157ff45b9c0e2584a8a420a2fe61d284b89a78ce35234770549fbd061e6964ce91ed7df8
6
+ metadata.gz: 41c06e083d55da44b859644eaa75f57bf25aec8c3ba6a9c7617487d9d62453a1ae06f8326c354711105544193bdc231de060d47ecff627277267fd8361f8285b
7
+ data.tar.gz: 0b47cc13fd1e3b4c0663256d547793efd7031ecb7888c200c5abbb40d8e7e0b8a49a3d5a614707f63cbf766644dca76ce102c77c24bb2d3fa701fb011e9c1fb1
@@ -87,14 +87,13 @@ module Elasticsearch
87
87
  # @return [Response]
88
88
  # @see Transport::Base#perform_request
89
89
  #
90
- def perform_request(method, path, params={}, body=nil, headers=nil, opts={})
90
+ def perform_request(method, path, params = {}, body = nil, headers = nil, opts = {})
91
91
  super do |connection, url|
92
92
  body = body ? __convert_to_json(body) : nil
93
- body, headers = compress_request(body, @request_options[:headers])
94
-
93
+ body, headers = compress_request(body, parse_headers(headers))
95
94
  params[:body] = body if body
96
95
  params[:headers] = headers if headers
97
- params = params.merge(@request_options)
96
+
98
97
  case method
99
98
  when 'GET'
100
99
  resp = connection.connection.get(url, params)
@@ -161,8 +160,14 @@ module Elasticsearch
161
160
 
162
161
  private
163
162
 
163
+ def parse_headers(headers)
164
+ request_headers = @request_options.fetch(:headers, {})
165
+ headers = request_headers.merge(headers || {})
166
+ headers.empty? ? nil : headers
167
+ end
168
+
164
169
  def apply_headers(options)
165
- headers = options[:headers] || options.dig(:transport_options, :headers) || {}
170
+ headers = options[:headers].clone || options.dig(:transport_options, :headers).clone || {}
166
171
  headers[CONTENT_TYPE_STR] = find_value(headers, CONTENT_TYPE_REGEX) || DEFAULT_CONTENT_TYPE
167
172
  headers[USER_AGENT_STR] = find_value(headers, USER_AGENT_REGEX) || find_value(@request_options[:headers], USER_AGENT_REGEX) || user_agent_header
168
173
  headers[ACCEPT_ENCODING] = GZIP if use_compression?
@@ -17,6 +17,6 @@
17
17
 
18
18
  module Elasticsearch
19
19
  module Transport
20
- VERSION = '7.17.8'.freeze
20
+ VERSION = '7.17.9'.freeze
21
21
  end
22
22
  end
@@ -53,7 +53,7 @@ if defined?(JRUBY_VERSION)
53
53
  expect(perform_request).to be_kind_of(Elasticsearch::Transport::Transport::Response)
54
54
  end
55
55
 
56
- it 'run body with preper params' do
56
+ it 'run body with proper params' do
57
57
  expect(
58
58
  client.transport.connections.first.connection
59
59
  ).to receive(:post).with('http://localhost:9200/', { body: body, headers: expected_headers }).and_return(response)
@@ -138,6 +138,24 @@ if defined?(JRUBY_VERSION)
138
138
  end
139
139
  end
140
140
  end
141
+
142
+ context 'headers' do
143
+ it 'sends custom headers' do
144
+ client = Elasticsearch::Transport::Client.new(
145
+ transport_class: described_class,
146
+ transport_options: { headers: { 'Elastic-Api-Version'=>'2023-10-31' } }
147
+ )
148
+ expect(
149
+ client.transport.connections.first.connection
150
+ ).to receive(:get).with(
151
+ 'http://localhost:9200/',
152
+ {
153
+ headers: expected_headers.merge({ 'Elastic-Api-Version'=>'2023-10-31' })
154
+ }
155
+ ).and_return(response)
156
+ client.perform_request('GET', '/', {}, nil, headers)
157
+ end
158
+ end
141
159
  end
142
160
  end
143
161
  end
@@ -111,7 +111,7 @@ if JRUBY
111
111
  {
112
112
  body: '{"foo":"bar"}',
113
113
  headers: {
114
- 'Content-Type' => 'application/json',
114
+ 'Content-Type' => 'application/x-ndjson',
115
115
  'User-Agent' => @transport.send(:user_agent_header)
116
116
  }
117
117
  }
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.17.8
4
+ version: 7.17.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karel Minarik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-05 00:00:00.000000000 Z
11
+ date: 2023-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json