Handle Elasticsearch errors better during DLQ integration tests

Give more time for Elasticsearch to start up, and retry after
503 responses

Fixes #8175
This commit is contained in:
Rob Bavey 2017-09-07 17:39:39 -04:00
parent efe06e329c
commit 0ad70ff5b4

View file

@ -43,14 +43,20 @@ describe "Test Dead Letter Queue" do
es_service = @fixture.get_service("elasticsearch")
es_client = es_service.get_client
# Wait for es client to come up
sleep(15)
sleep(20)
# test if all data was indexed by ES, but first refresh manually
es_client.indices.refresh
logstash_service.wait_for_logstash
try(75) do
result = es_client.search(index: 'logstash-*', size: 0, q: '*')
expect(result["hits"]["total"]).to eq(1000)
try(60) do
begin
result = es_client.search(index: 'logstash-*', size: 0, q: '*')
hits = result["hits"]["total"]
rescue Elasticsearch::Transport::Transport::Errors::ServiceUnavailable => e
puts "Elasticsearch unavailable #{e.inspect}"
hits = 0
end
expect(hits).to eq(1000)
end
result = es_client.search(index: 'logstash-*', size: 1, q: '*')