Bug 1340554 - Switch away from deprecated Elasticsearch count API

The count search type was deprecated in Elasticsearch 2.0.0 and has been
removed entirely in version 5+:
https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_50_search_changes.html

This switches to the `.count()` API instead:
https://elasticsearch-dsl.readthedocs.io/en/latest/api.html#elasticsearch_dsl.Search.count

This can be landed prior to the ES 5.x upgrade, since it's supported by
the ES 2.x API too.
This commit is contained in:
Ed Morley 2017-04-19 13:44:17 +01:00 коммит произвёл jgraham
Родитель 04945524a2
Коммит 9dad6fec61
2 изменённых файлов: 5 добавлений и 5 удалений

Просмотреть файл

@ -45,7 +45,7 @@ def test_cycle_all_data(test_repository, failure_classifications, sample_data,
assert JobLog.objects.count() == 0
# There should be nothing in elastic search after cycling
assert TestFailureLine.search().params(search_type="count").execute().hits.total == 0
assert TestFailureLine.search().count() == 0
def test_cycle_all_but_one_job(test_repository, failure_classifications, sample_data,
@ -116,7 +116,7 @@ def test_cycle_all_data_in_chunks(test_repository, failure_classifications, samp
create_failure_lines(Job.objects.get(id=1),
[(test_line, {})] * 7)
assert TestFailureLine.search().params(search_type="count").execute().hits.total > 0
assert TestFailureLine.search().count() > 0
call_command('cycle_data', sleep_time=0, days=1, chunk_size=3)
refresh_all()
@ -125,7 +125,7 @@ def test_cycle_all_data_in_chunks(test_repository, failure_classifications, samp
assert Job.objects.count() == 0
assert FailureLine.objects.count() == 0
assert JobDetail.objects.count() == 0
assert TestFailureLine.search().params(search_type="count").execute().hits.total == 0
assert TestFailureLine.search().count() == 0
def test_cycle_job_model_reference_data(test_repository, failure_classifications,

Просмотреть файл

@ -65,8 +65,8 @@ existing data is considered for matching failure lines."""
bulk_insert(es_lines)
min_id = rows[len(rows) - 1]["id"]
time.sleep(options['sleep'])
s = Search(doc_type=TestFailureLine).params(search_type="count")
self.stdout.write("Index contains %i documents" % s.execute().hits.total)
count = Search(doc_type=TestFailureLine).count()
self.stdout.write("Index contains %i documents" % count)
def failure_line_from_value(line):