diff options
Diffstat (limited to 'utils/test/scripts/shared_utils.py')
-rw-r--r-- | utils/test/scripts/shared_utils.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/utils/test/scripts/shared_utils.py b/utils/test/scripts/shared_utils.py new file mode 100644 index 000000000..899f844ec --- /dev/null +++ b/utils/test/scripts/shared_utils.py @@ -0,0 +1,36 @@ +import urllib3 +import json +http = urllib3.PoolManager() + + +def delete_request(url, username, password, body=None): + headers = urllib3.util.make_headers(basic_auth=':'.join([username, password])) + http.request('DELETE', url, headers=headers, body=body) + + +def publish_json(json_ojb, username, password, output_destination): + json_dump = json.dumps(json_ojb) + if output_destination == 'stdout': + print json_dump + else: + headers = urllib3.util.make_headers(basic_auth=':'.join([username, password])) + http.request('POST', output_destination, headers=headers, body=json_dump) + + +def _get_nr_of_hits(elastic_json): + return elastic_json['hits']['total'] + + +def get_elastic_data(elastic_url, username, password, body, field='_source'): + # 1. get the number of results + headers = urllib3.util.make_headers(basic_auth=':'.join([username, password])) + elastic_json = json.loads(http.request('GET', elastic_url + '/_search?size=0', headers=headers, body=body).data) + 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 = [] + for hit in elastic_json['hits']['hits']: + elastic_data.append(hit[field]) + return elastic_data |