Skip to content

Commit 8181e23

Browse files
committed
Separate es-ruby client v8 availibility with a method.
1 parent 93b2887 commit 8181e23

File tree

1 file changed

+29
-25
lines changed

1 file changed

+29
-25
lines changed

spec/filters/elasticsearch_spec.rb

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,17 @@
6060
allow(plugin).to receive(:get_client).and_return(filter_client)
6161
allow(filter_client).to receive(:serverless?).and_return(true)
6262
allow(filter_client).to receive(:client).and_return(es_client)
63-
begin
64-
allow(es_client).to receive(:info)
65-
.with(a_hash_including(
66-
:headers => LogStash::Filters::ElasticsearchClient::DEFAULT_EAV_HEADER))
67-
.and_raise(Elasticsearch::Transport::Transport::Errors::BadRequest.new)
68-
rescue NameError # we get NameError: uninitialized constant Elasticsearch::Transport with 7.x
63+
64+
if elastic_ruby_v8_client_available?
6965
allow(es_client).to receive(:info)
7066
.with(a_hash_including(
7167
:headers => LogStash::Filters::ElasticsearchClient::DEFAULT_EAV_HEADER))
7268
.and_raise(Elastic::Transport::Transport::Errors::BadRequest.new)
69+
else
70+
allow(es_client).to receive(:info)
71+
.with(a_hash_including(
72+
:headers => LogStash::Filters::ElasticsearchClient::DEFAULT_EAV_HEADER))
73+
.and_raise(Elasticsearch::Transport::Transport::Errors::BadRequest.new)
7374
end
7475
end
7576

@@ -111,12 +112,10 @@
111112

112113
before(:each) do
113114
allow(LogStash::Filters::ElasticsearchClient).to receive(:new).and_return(client)
114-
begin
115-
require "elasticsearch/transport/transport/http/manticore"
116-
allow(client).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
117-
rescue LoadError
118-
require "elastic/transport/transport/http/manticore"
115+
if elastic_ruby_v8_client_available?
119116
allow(client).to receive(:es_transport_client_type).and_return('elastic_transport')
117+
else
118+
allow(client).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
120119
end
121120
allow(client).to receive(:search).and_return(response)
122121
allow(plugin).to receive(:test_connection!)
@@ -362,11 +361,10 @@
362361

363362
before do
364363
allow(plugin).to receive(:get_client).and_return(client_double)
365-
begin
366-
require "elasticsearch/transport/transport/http/manticore"
367-
allow(client_double).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
368-
rescue LoadError
364+
if elastic_ruby_v8_client_available?
369365
allow(client_double).to receive(:es_transport_client_type).and_return('elastic_transport')
366+
else
367+
allow(client_double).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
370368
end
371369
allow(client_double).to receive(:client).and_return(transport_double)
372370
end
@@ -527,12 +525,11 @@ def wait_receive_request
527525
# this spec is a safeguard to trigger an assessment of thread-safety should
528526
# we choose a different transport adapter in the future.
529527
transport_class = extract_transport(client).options.fetch(:transport_class)
530-
begin
531-
::Elasticsearch::Transport::Transport::HTTP::Manticore
532-
expect(transport_class).to equal ::Elasticsearch::Transport::Transport::HTTP::Manticore
533-
rescue NameError
528+
if elastic_ruby_v8_client_available?
534529
allow(client).to receive(:es_transport_client_type).and_return("elastic_transport")
535530
expect(transport_class).to equal ::Elastic::Transport::Transport::HTTP::Manticore
531+
else
532+
expect(transport_class).to equal ::Elasticsearch::Transport::Transport::HTTP::Manticore
536533
end
537534
end
538535

@@ -848,11 +845,10 @@ def wait_receive_request
848845

849846
before(:each) do
850847
allow(LogStash::Filters::ElasticsearchClient).to receive(:new).and_return(client)
851-
begin
852-
require "elasticsearch/transport/transport/http/manticore"
853-
allow(client).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
854-
rescue LoadError
848+
if elastic_ruby_v8_client_available?
855849
allow(client).to receive(:es_transport_client_type).and_return('elastic_transport')
850+
else
851+
allow(client).to receive(:es_transport_client_type).and_return('elasticsearch_transport')
856852
end
857853
allow(plugin).to receive(:test_connection!)
858854
allow(plugin).to receive(:setup_serverless)
@@ -868,11 +864,19 @@ def wait_receive_request
868864
end
869865
end
870866

871-
# @note can be removed once gem depends on elasticsearch >= 6.x
872-
def extract_transport(client) # on >7.x client.transport is a ES::Transport::Client
867+
def extract_transport(client)
868+
# on 7x: client.transport.transport
869+
# on >=8.x: client.transport
873870
client.transport.respond_to?(:transport) ? client.transport.transport : client.transport
874871
end
875872

873+
def elastic_ruby_v8_client_available?
874+
Elasticsearch::Transport
875+
false
876+
rescue NameError # NameError: uninitialized constant Elasticsearch::Transport if Elastic Ruby client is not available
877+
true
878+
end
879+
876880
class MockResponse
877881
attr_reader :code, :headers
878882

0 commit comments

Comments
 (0)