From ced0a8742f31f1b597a3c76c7dcf72d62da2bbc8 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Tue, 13 Sep 2016 13:53:46 +0800 Subject: merge N days and whole database process and not publish existed data any way JIRA: FUNCTEST-473 Change-Id: I2631fa04b0922afda2746cfd6be6f35587d534ba Signed-off-by: SerenaFeng --- utils/test/scripts/shared_utils.py | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) (limited to 'utils/test/scripts/shared_utils.py') diff --git a/utils/test/scripts/shared_utils.py b/utils/test/scripts/shared_utils.py index 15c1af8a5..aa8a65d79 100644 --- a/utils/test/scripts/shared_utils.py +++ b/utils/test/scripts/shared_utils.py @@ -10,14 +10,14 @@ def delete_request(url, creds, body=None): http.request('DELETE', url, headers=headers, body=body) -def publish_json(json_ojb, creds, output_destination): +def publish_json(json_ojb, creds, to): json_dump = json.dumps(json_ojb) - if output_destination == 'stdout': + if to == 'stdout': print json_dump return 200, None else: headers = urllib3.make_headers(basic_auth=creds) - result = http.request('POST', output_destination, headers=headers, body=json_dump) + result = http.request('POST', to, headers=headers, body=json_dump) return result.status, result.data @@ -25,16 +25,39 @@ def _get_nr_of_hits(elastic_json): return elastic_json['hits']['total'] -def get_elastic_data(elastic_url, creds, body, field='_source'): +def get_elastic_docs(elastic_url, creds, body=None, field = '_source'): + # 1. get the number of results headers = urllib3.make_headers(basic_auth=creds) elastic_json = json.loads(http.request('GET', elastic_url + '/_search?size=0', headers=headers, body=body).data) + print elastic_json nr_of_hits = _get_nr_of_hits(elastic_json) # 2. get all results elastic_json = json.loads(http.request('GET', elastic_url + '/_search?size={}'.format(nr_of_hits), headers=headers, body=body).data) - elastic_data = [] + elastic_docs = [] for hit in elastic_json['hits']['hits']: - elastic_data.append(hit[field]) - return elastic_data + elastic_docs.append(hit[field]) + return elastic_docs + +def get_elastic_docs_by_days(elastic_url, creds, days): + if days == 0: + body = '''{ + "query": { + "match_all": {} + } + }''' + elif days > 0: + body = '''{{ + "query" : {{ + "range" : {{ + "start_date" : {{ + "gte" : "now-{}d" + }} + }} + }} + }}'''.format(days) + else: + raise Exception('Update days must be non-negative') + return get_elastic_docs(elastic_url, creds, body) -- cgit 1.2.3-korg