http = urllib3.PoolManager()
-def delete_request(url, creds, body=None):
+def _request(method, url, creds=None, body=None):
headers = urllib3.make_headers(basic_auth=creds)
- http.request('DELETE', url, headers=headers, body=body)
+ return http.request(method, url, headers=headers, body=body)
-def publish_json(json_ojb, creds, to):
- json_dump = json.dumps(json_ojb)
+def _post(url, creds=None, body=None):
+ return _request('POST', url, creds=creds, body=body)
+
+
+def _get(url, creds=None, body=None):
+ return json.loads(_request('GET', url, creds=creds, body=body).data)
+
+
+def delete_docs(url, creds=None, body=None):
+ return _request('DELETE', url, creds=creds, body=body)
+
+
+def publish_docs(docs, creds, to):
+ json_docs = json.dumps(docs)
if to == 'stdout':
- print json_dump
+ print json_docs
return 200, None
else:
- headers = urllib3.make_headers(basic_auth=creds)
- result = http.request('POST', to, headers=headers, body=json_dump)
+ result = _post(to, creds=creds, body=json_docs)
return result.status, result.data
-def _get_nr_of_hits(elastic_json):
- return elastic_json['hits']['total']
+def _get_docs_nr(url, creds=None, body=None):
+ res_data = _get('{}/_search?size=0'.format(url), creds=creds, body=body)
+ print type(res_data), res_data
+ return res_data['hits']['total']
-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)
+def get_docs(url, creds=None, body=None, field='_source'):
- # 2. get all results
- elastic_json = json.loads(http.request('GET', elastic_url + '/_search?size={}'.format(nr_of_hits), headers=headers, body=body).data)
+ docs_nr = _get_docs_nr(url, creds=creds, body=body)
+ res_data = _get('{}/_search?size={}'.format(url, docs_nr),
+ creds=creds, body=body)
- elastic_docs = []
- for hit in elastic_json['hits']['hits']:
- elastic_docs.append(hit[field])
- return elastic_docs
+ docs = []
+ for hit in res_data['hits']['hits']:
+ docs.append(hit[field])
+ return docs
def get_elastic_docs_by_days(elastic_url, creds, days):
}}'''.format(days)
else:
raise Exception('Update days must be non-negative')
- return get_elastic_docs(elastic_url, creds, body)
+ return get_docs(elastic_url, creds, body)
import argparse
from jinja2 import PackageLoader, Environment
-from common import logger_utils, elastic_access
+from common import elastic_access
+from common import logger_utils
from conf import testcases
from conf.config import APIConfig
url = urlparse.urljoin(base_elastic_url, '/.kibana/visualization/{}'.format(visualization.id))
logger.debug("publishing visualization '{}'".format(url))
# logger.error("_publish_visualization: %s" % visualization)
- elastic_access.publish_json(visualization, es_creds, url)
+ elastic_access.publish_docs(visualization, es_creds, url)
def _construct_panels(self):
size_x = 6
def _publish(self):
url = urlparse.urljoin(base_elastic_url, '/.kibana/dashboard/{}'.format(self.id))
logger.debug("publishing dashboard '{}'".format(url))
- elastic_access.publish_json(self, es_creds, url)
+ elastic_access.publish_docs(self, es_creds, url)
def publish(self):
self._publish_visualizations()
}
})
- elastic_data = elastic_access.get_elastic_docs(urlparse.urljoin(base_elastic_url, '/test_results/mongo2elastic'),
+ elastic_data = elastic_access.get_docs(urlparse.urljoin(base_elastic_url, '/test_results/mongo2elastic'),
es_creds, query_json)
pods_and_scenarios = {}