Fix Test Results 85/43485/3
authormbeierl <mark.beierl@dell.com>
Thu, 28 Sep 2017 14:58:01 +0000 (10:58 -0400)
committermbeierl <mark.beierl@dell.com>
Thu, 28 Sep 2017 15:13:49 +0000 (11:13 -0400)
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 <mark.beierl@dell.com>
JIRA: STORPERF-216

ci/verify-build.sh
docker/local-docker-compose.yaml
docker/storperf-master/storperf/db/test_results_db.py
docker/storperf-master/storperf/utilities/data_handler.py
docker/storperf-master/tests/utilities_tests/data_handler_test.py

index 9911566..0477e17 100755 (executable)
@@ -55,6 +55,8 @@ function check_for_life() {
 
 FAILURES=0
 
+set +e
+
 check_for_life storperf-httpfrontend "/"
 FAILURES=$((FAILURES + $?))
 
index fa956ea..6daa6e2 100644 (file)
@@ -44,8 +44,6 @@ services:
             context: storperf-graphite
             args:
                 ARCH: ${ARCH}
-        volumes:
-            - ${CARBON_DIR}:/opt/graphite/storage/whisper
 
     storperf-httpfrontend:
         container_name: "storperf-httpfrontend"
index 9c87e32..8e9c5ef 100644 (file)
@@ -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
index f5bf387..8a69180 100644 (file)
@@ -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"
index d83bf1b..8c7deb5 100644 (file)
@@ -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')