From 01bad48306bfa00f234dd09ab30a05e9b35b01b2 Mon Sep 17 00:00:00 2001 From: mbeierl Date: Thu, 28 Sep 2017 10:58:01 -0400 Subject: Fix Test Results Updates the key/values that are sent to testresults db. Fixes the PASS/FAIL to ignore _warm_up job. Change-Id: I8af292cd764637cd12cbdb5a2a3e114fbeda5665 Signed-off-by: mbeierl JIRA: STORPERF-216 --- ci/verify-build.sh | 2 ++ docker/local-docker-compose.yaml | 2 -- .../storperf-master/storperf/db/test_results_db.py | 11 ++++---- .../storperf/utilities/data_handler.py | 20 +++++++++------ .../tests/utilities_tests/data_handler_test.py | 29 ++++++++++++++++++++++ 5 files changed, 49 insertions(+), 15 deletions(-) diff --git a/ci/verify-build.sh b/ci/verify-build.sh index 9911566..0477e17 100755 --- a/ci/verify-build.sh +++ b/ci/verify-build.sh @@ -55,6 +55,8 @@ function check_for_life() { FAILURES=0 +set +e + check_for_life storperf-httpfrontend "/" FAILURES=$((FAILURES + $?)) diff --git a/docker/local-docker-compose.yaml b/docker/local-docker-compose.yaml index fa956ea..6daa6e2 100644 --- a/docker/local-docker-compose.yaml +++ b/docker/local-docker-compose.yaml @@ -44,8 +44,6 @@ services: context: storperf-graphite args: ARCH: ${ARCH} - volumes: - - ${CARBON_DIR}:/opt/graphite/storage/whisper storperf-httpfrontend: container_name: "storperf-httpfrontend" diff --git a/docker/storperf-master/storperf/db/test_results_db.py b/docker/storperf-master/storperf/db/test_results_db.py index 9c87e32..8e9c5ef 100644 --- a/docker/storperf-master/storperf/db/test_results_db.py +++ b/docker/storperf-master/storperf/db/test_results_db.py @@ -17,10 +17,10 @@ def push_results_to_db(db_url, details, logger): """ url = db_url + "/results" - params = details.copy() - params.pop('details') + params = details["report"] - logger.info("popped params= %s" % params) + if logger: + logger.info("popped params= %s" % params) headers = {'Content-Type': 'application/json'} try: @@ -35,6 +35,7 @@ def push_results_to_db(db_url, details, logger): logger.debug(r.content) return json.loads(r.content) except Exception: - logger.exception("Error [push_results_to_db('%s', '%s')]:" % - (db_url, params)) + if logger: + logger.exception("Error [push_results_to_db('%s', '%s')]:" % + (db_url, params)) return None diff --git a/docker/storperf-master/storperf/utilities/data_handler.py b/docker/storperf-master/storperf/utilities/data_handler.py index f5bf387..8a69180 100644 --- a/docker/storperf-master/storperf/utilities/data_handler.py +++ b/docker/storperf-master/storperf/utilities/data_handler.py @@ -129,16 +129,9 @@ class DataHandler(object): def _push_to_db(self, executor): executor.metadata['duration'] = executor.end_time - executor.start_time - steady_state = True - for _, value in executor.metadata['details']['steady_state'].items(): - steady_state = steady_state and value - executor.metadata['timestart'] = executor.start_time - if steady_state: - criteria = 'PASS' - else: - criteria = 'FAIL' + criteria = self._determine_criteria(executor.metadata) executor.metadata['criteria'] = criteria executor.metadata['start_date'] = \ @@ -160,3 +153,14 @@ class DataHandler(object): executor.result_url = response['href'] except Exception: self.logger.exception("Error pushing results into Database") + + def _determine_criteria(self, metadata): + steady_state = True + for workload, value in metadata['details']['steady_state'].items(): + if not workload.startswith("_"): + steady_state = steady_state and value + + if steady_state: + return "PASS" + else: + return "FAIL" diff --git a/docker/storperf-master/tests/utilities_tests/data_handler_test.py b/docker/storperf-master/tests/utilities_tests/data_handler_test.py index d83bf1b..8c7deb5 100644 --- a/docker/storperf-master/tests/utilities_tests/data_handler_test.py +++ b/docker/storperf-master/tests/utilities_tests/data_handler_test.py @@ -306,3 +306,32 @@ class DataHandlerTest(unittest.TestCase): self.assertEqual('2017-09-04 21:20:00', self.db_results[1]['stop_date'], 'End time') + + def test_pass_criteria(self): + metadata = { + "details": { + "steady_state": { + "_warm_up.queue-depth.8.block-size.16384": False, + "rw.queue-depth.4.block-size.16384": True + } + }, + } + criteria = self.data_handler._determine_criteria(metadata) + self.assertEqual('PASS', + criteria, + 'PASS') + + def test_fail_criteria(self): + metadata = { + "details": { + "steady_state": { + "_warm_up.queue-depth.8.block-size.16384": False, + "rw.queue-depth.4.block-size.16384": True, + "rw.queue-depth.8.block-size.16384": False + } + }, + } + criteria = self.data_handler._determine_criteria(metadata) + self.assertEqual('FAIL', + criteria, + 'FAIL') -- cgit 1.2.3-korg