summaryrefslogtreecommitdiffstats
path: root/docker/storperf-master/storperf/utilities/data_handler.py
diff options
context:
space:
mode:
authormbeierl <mark.beierl@dell.com>2017-08-28 09:43:31 -0400
committermbeierl <mark.beierl@dell.com>2017-08-28 19:09:24 -0400
commitb4421c8b61c183d57ef4acc6874cc8e02c65d633 (patch)
tree74e45639ee21d4c5c4e998e9d4dd50378dd651e8 /docker/storperf-master/storperf/utilities/data_handler.py
parent6848d519dfa7c8aec38ab6d084df3d08196c0ad3 (diff)
Standardize Output
Re-arrange the JSON output so that it matches the format that gets sent and retrieved from the testresults db. Change-Id: I9f15e553e94b27b9e5a36f4984789c5e710feac4 JIRA: STORPERF-200 Signed-off-by: mbeierl <mark.beierl@dell.com>
Diffstat (limited to 'docker/storperf-master/storperf/utilities/data_handler.py')
-rw-r--r--docker/storperf-master/storperf/utilities/data_handler.py75
1 files changed, 25 insertions, 50 deletions
diff --git a/docker/storperf-master/storperf/utilities/data_handler.py b/docker/storperf-master/storperf/utilities/data_handler.py
index 44b1f6b..471c295 100644
--- a/docker/storperf-master/storperf/utilities/data_handler.py
+++ b/docker/storperf-master/storperf/utilities/data_handler.py
@@ -15,7 +15,6 @@ from storperf.db import test_results_db
from storperf.db.graphite_db import GraphiteDB
from storperf.db.job_db import JobDB
from storperf.utilities import data_treatment as DataTreatment
-from storperf.utilities import dictionary
from storperf.utilities import math as math
from storperf.utilities import steady_state as SteadyState
@@ -36,8 +35,6 @@ class DataHandler(object):
self._push_to_db(executor)
else:
workload = '.'.join(executor.current_workload.split('.')[1:6])
- if 'metrics' not in executor.metadata:
- executor.metadata['metrics'] = {}
steady_state = True
metrics = {}
@@ -67,19 +64,21 @@ class DataHandler(object):
metrics[metric][io_type]['average'] = average
metrics_key = '%s.%s.%s' % (workload, io_type, metric)
- executor.metadata['metrics'][metrics_key] = average
+ executor.metadata['details']['metrics'][metrics_key] = \
+ average
if not steady:
steady_state = False
- if 'report_data' not in executor.metadata:
- executor.metadata['report_data'] = {}
+ if 'report_data' not in executor.metadata['details']:
+ executor.metadata['details']['report_data'] = {}
- if 'steady_state' not in executor.metadata:
- executor.metadata['steady_state'] = {}
+ if 'steady_state' not in executor.metadata['details']:
+ executor.metadata['details']['steady_state'] = {}
- executor.metadata['report_data'][workload] = metrics
- executor.metadata['steady_state'][workload] = steady_state
+ executor.metadata['details']['report_data'][workload] = metrics
+ executor.metadata['details']['steady_state'][workload] = \
+ steady_state
workload_name = executor.current_workload.split('.')[1]
@@ -128,60 +127,36 @@ class DataHandler(object):
return SteadyState.steady_state(data_series)
def _push_to_db(self, executor):
- 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
+ executor.metadata['duration'] = executor.end_time - executor.start_time
steady_state = True
- for _, value in executor.metadata['steady_state'].items():
+ for _, value in executor.metadata['details']['steady_state'].items():
steady_state = steady_state and value
- payload['timestart'] = executor.start_time
- payload['duration'] = duration
+ executor.metadata['timestart'] = executor.start_time
if steady_state:
criteria = 'PASS'
else:
criteria = 'FAIL'
+ executor.metadata['criteria'] = criteria
- start_time = time.strftime('%Y-%m-%d %H:%M:%S',
- time.gmtime(executor.start_time))
+ executor.metadata['start_time'] = \
+ time.strftime('%Y-%m-%d %H:%M:%S',
+ time.gmtime(executor.start_time))
- end_time = time.strftime('%Y-%m-%d %H:%M:%S',
- time.gmtime(executor.end_time))
+ executor.metadata['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:
- response = test_results_db.push_results_to_db(test_db,
- "storperf",
- test_case,
- start_time,
- end_time,
- self.logger,
- pod_name,
- version,
- scenario,
- criteria,
- build_tag,
- payload)
+ response = test_results_db.push_results_to_db(
+ test_db,
+ executor.metadata,
+ self.logger)
executor.result_url = response['href']
- except Exception as e:
- self.logger.exception("Error pushing results into Database",
- e)
+ except Exception:
+ self.logger.exception("Error pushing results into Database")