Skip to content

Commit 600c2ea

Browse files
committed
[Client] Log warnings instead of using Kernel.warn
Closes #1508
1 parent 73eca4f commit 600c2ea

File tree

2 files changed

+7
-20
lines changed
  • elasticsearch-transport

2 files changed

+7
-20
lines changed

elasticsearch-transport/lib/elasticsearch/transport/transport/base.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ def perform_request(method, path, params = {}, body = nil, headers = nil, opts =
348348
end
349349

350350
__trace(method, path, params, connection_headers(connection), body, url, response, nil, 'N/A', duration) if tracer
351-
warnings(response.headers['warning']) if response.headers&.[]('warning')
351+
log_warn(response.headers['warning']) if response.headers&.[]('warning')
352352
Response.new response.status, json || response.body, response.headers
353353
ensure
354354
@last_request_at = Time.now
@@ -423,10 +423,6 @@ def user_agent_header(client)
423423
end
424424
end
425425

426-
def warnings(warning)
427-
warn("warning: #{warning}")
428-
end
429-
430426
def connection_headers(connection)
431427
if defined?(Elasticsearch::Transport::Transport::HTTP::Manticore) && self.class == Elasticsearch::Transport::Transport::HTTP::Manticore
432428
@request_options[:headers]

elasticsearch-transport/spec/elasticsearch/transport/client_spec.rb

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1466,28 +1466,19 @@
14661466
end
14671467

14681468
context 'when Elasticsearch response includes a warning header' do
1469+
let(:logger) { double('logger', warn: '', warn?: '', info?: '', info: '', debug?: '', debug: '') }
14691470
let(:client) do
1470-
Elasticsearch::Transport::Client.new(hosts: hosts)
1471+
Elasticsearch::Transport::Client.new(hosts: hosts, logger: logger)
14711472
end
14721473

14731474
let(:warning) { 'Elasticsearch warning: "deprecation warning"' }
14741475

14751476
it 'prints a warning' do
1476-
allow_any_instance_of(Elasticsearch::Transport::Transport::Response).to receive(:headers) do
1477-
{ 'warning' => warning }
1478-
end
1479-
1480-
begin
1481-
stderr = $stderr
1482-
fake_stderr = StringIO.new
1483-
$stderr = fake_stderr
1484-
1485-
client.perform_request('GET', '/')
1486-
fake_stderr.rewind
1487-
expect(fake_stderr.string).to eq("warning: #{warning}\n")
1488-
ensure
1489-
$stderr = stderr
1477+
expect_any_instance_of(Faraday::Connection).to receive(:run_request) do
1478+
Elasticsearch::Transport::Transport::Response.new(200, {}, { 'warning' => warning })
14901479
end
1480+
client.perform_request('GET', '/')
1481+
expect(logger).to have_received(:warn).with(warning)
14911482
end
14921483
end
14931484

0 commit comments

Comments
 (0)