diff options
Diffstat (limited to 'storperf')
-rw-r--r-- | storperf/db/test_results_db.py | 10 | ||||
-rw-r--r-- | storperf/utilities/data_handler.py | 71 |
2 files changed, 47 insertions, 34 deletions
diff --git a/storperf/db/test_results_db.py b/storperf/db/test_results_db.py index 75cb05d..bb328db 100644 --- a/storperf/db/test_results_db.py +++ b/storperf/db/test_results_db.py @@ -9,7 +9,6 @@ import json import os - import requests @@ -29,17 +28,18 @@ def get_installer_type(logger=None): def push_results_to_db(db_url, project, case_name, test_start, test_stop, logger, pod_name, - version, scenario, criteria, build_tag, payload): + version, scenario, criteria, build_tag, details): """ POST results to the Result target DB """ url = db_url + "/results" installer = get_installer_type(logger) + params = {"project_name": project, "case_name": case_name, - "start_date": test_start, "stop_date": test_stop, "pod_name": pod_name, "installer": installer, "version": version, "scenario": scenario, "criteria": criteria, - "build_tag": build_tag, "details": payload} + "build_tag": build_tag, "start_date": test_start, + "stop_date": test_stop, "details": details} headers = {'Content-Type': 'application/json'} try: @@ -56,5 +56,5 @@ def push_results_to_db(db_url, project, case_name, logger.error("Error [push_results_to_db('%s', '%s', '%s', " + "'%s', '%s', '%s', '%s', '%s', '%s')]:" % (db_url, project, case_name, pod_name, version, - scenario, criteria, build_tag, payload[:512]), e) + scenario, criteria, build_tag, details[:512]), e) return False diff --git a/storperf/utilities/data_handler.py b/storperf/utilities/data_handler.py index 2d4194a..2f79054 100644 --- a/storperf/utilities/data_handler.py +++ b/storperf/utilities/data_handler.py @@ -124,42 +124,55 @@ class DataHandler(object): return SteadyState.steady_state(data_series) def _push_to_db(self, executor): - test_db = os.environ.get('TEST_DB_URL') - if test_db is not None: - pod_name = dictionary.get_key_from_dict(executor.metadata, - 'pod_name', - 'Unknown') - version = dictionary.get_key_from_dict(executor.metadata, - 'version', - 'Unknown') - scenario = dictionary.get_key_from_dict(executor.metadata, - 'scenario_name', - 'Unknown') - build_tag = dictionary.get_key_from_dict(executor.metadata, - 'build_tag', - 'Unknown') - duration = executor.end_time - executor.start_time + pod_name = dictionary.get_key_from_dict(executor.metadata, + 'pod_name', + 'Unknown') + version = dictionary.get_key_from_dict(executor.metadata, + 'version', + 'Unknown') + scenario = dictionary.get_key_from_dict(executor.metadata, + 'scenario_name', + 'Unknown') + build_tag = dictionary.get_key_from_dict(executor.metadata, + 'build_tag', + 'Unknown') + test_case = dictionary.get_key_from_dict(executor.metadata, + 'test_case', + 'Unknown') + duration = executor.end_time - executor.start_time + + payload = executor.metadata + + steady_state = True + for _, value in executor.metadata['steady_state'].items(): + steady_state = steady_state and value + + payload['timestart'] = executor.start_time + payload['duration'] = duration + graphite_db = GraphiteDB() + payload['metrics'] = graphite_db.fetch_averages( + executor.job_db.job_id) + if steady_state: + criteria = 'PASS' + else: + criteria = 'FAIL' - self.logger.info("Pushing results to %s" % (test_db)) + start_time = time.strftime('%Y-%m-%d %H:%M:%S', + time.gmtime(executor.start_time)) - payload = executor.metadata - payload['timestart'] = executor.start_time - payload['duration'] = duration - payload['status'] = 'OK' - graphite_db = GraphiteDB() - payload['metrics'] = graphite_db.fetch_averages( - executor.job_db.job_id) - criteria = {} - criteria['block_sizes'] = executor.block_sizes - criteria['queue_depths'] = executor.queue_depths + end_time = time.strftime('%Y-%m-%d %H:%M:%S', + time.gmtime(executor.end_time)) + test_db = os.environ.get('TEST_DB_URL') + if test_db is not None: + self.logger.info("Pushing results to %s" % (test_db)) try: test_results_db.push_results_to_db(test_db, "storperf", - "Latency Test", - executor.start_time, - executor.end_time, + test_case, + start_time, + end_time, self.logger, pod_name, version, |