summaryrefslogtreecommitdiffstats
path: root/storperf/utilities/data_handler.py
diff options
context:
space:
mode:
authormbeierl <mark.beierl@dell.com>2017-01-20 16:05:24 -0500
committermbeierl <mark.beierl@dell.com>2017-01-20 16:05:24 -0500
commit29cab6cd9d6e669c74a1dd6960aba8250f539c2f (patch)
tree2f45b65cb23ea50aca6543df1c7cf6fa9eec0fd6 /storperf/utilities/data_handler.py
parent37773383c0ea27a934b9e97788e07276cbaaadcf (diff)
Fix multiple workload runs
Change reporting so that multiple workloads in one job execution can be reported instead of overwriting the previous value. Change the daily job to use a single, multiple workload run. Change-Id: I8e350350ae13d2272b584af7a60ad269de160587 JIRA: STORPERF-98 Signed-off-by: mbeierl <mark.beierl@dell.com>
Diffstat (limited to 'storperf/utilities/data_handler.py')
-rw-r--r--storperf/utilities/data_handler.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/storperf/utilities/data_handler.py b/storperf/utilities/data_handler.py
index ebc1bfd..0aae3b1 100644
--- a/storperf/utilities/data_handler.py
+++ b/storperf/utilities/data_handler.py
@@ -17,6 +17,7 @@ from storperf.utilities import math as math
from storperf.utilities import steady_state as SteadyState
from time import sleep
import time
+import json
class DataHandler(object):
@@ -61,13 +62,21 @@ class DataHandler(object):
if not steady:
steady_state = False
- executor.metadata['report_data'] = metrics
- executor.metadata['steady_state'] = steady_state
+ workload = '.'.join(executor.current_workload.split('.')[1:6])
+
+ if 'report_data' not in executor.metadata:
+ executor.metadata['report_data'] = {}
+
+ if 'steady_state' not in executor.metadata:
+ executor.metadata['steady_state'] = {}
+
+ executor.metadata['report_data'][workload] = metrics
+ executor.metadata['steady_state'][workload] = steady_state
workload_name = executor.current_workload.split('.')[1]
if steady_state and not workload_name.startswith('_'):
- executor.terminate()
+ executor.terminate_current_run()
def _lookup_prior_data(self, executor, metric, io_type):
workload = executor.current_workload
@@ -112,7 +121,7 @@ class DataHandler(object):
duration = latest_timestamp - earliest_timestamp
if (duration < 60 * self.samples):
self.logger.debug("Only %s minutes of samples, ignoring" %
- (duration / 60,))
+ ((duration / 60 + 1),))
return False
return SteadyState.steady_state(data_series)
@@ -160,6 +169,6 @@ class DataHandler(object):
scenario,
criteria,
build_tag,
- payload)
+ json.dumps(payload))
except:
self.logger.exception("Error pushing results into Database")