Fix response format 'total' for v2 dataframes API
Based on [1], the response for v2 dataframes is {"total": 3}. However, for Elasticsearch search response [2], the "hits.total" in the response body is {"value": 3, "relation": "eq"}, which does not match the API response schema. [1]: https://docs.openstack.org/cloudkitty/latest/api-reference/v2/index.html?expanded=get-dataframes-from-the-storage-backend-detail#response-example [2]: https://www.elastic.co/guide/en/elasticsearch/reference/8.3/search-your-data.html Story: 2010219 Task: 45967 Change-Id: Ie2c8fd1b146138efc085d7c844afd27b7e10f3f3 Co-Authored-By: Rafael Weingärtner <rafael@apache.org> Signed-off-by: Ning Yao <yaoning@unitedstack.com>
This commit is contained in:
parent
f9d2ff341b
commit
3ba19ed1c7
@ -308,7 +308,14 @@ class ElasticsearchClient(object):
|
||||
|
||||
scroll_id = resp['_scroll_id']
|
||||
self._scroll_ids.add(scroll_id)
|
||||
total = resp['hits']['total']
|
||||
total_hits = resp['hits']['total']
|
||||
|
||||
if isinstance(total_hits, dict):
|
||||
LOG.debug("Total hits [%s] is a dict. Therefore, we only extract "
|
||||
"the 'value' attribute as the total option.", total_hits)
|
||||
total_hits = total_hits.get("value")
|
||||
|
||||
total = total_hits
|
||||
chunk = resp['hits']['hits']
|
||||
|
||||
output = chunk[offset:offset+limit if paginate else len(chunk)]
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
Fix response format ``total`` for v2 dataframes API. The response for v2
|
||||
dataframes is ``{"total": 3}``. However, for Elasticsearch search response,
|
||||
the ``"hits.total"`` in the response body is ``{"value": 3, "relation":
|
||||
"eq"}``, which does not match the API response schema.
|
Loading…
Reference in New Issue
Block a user