summaryrefslogtreecommitdiffstats
path: root/storperf/db
diff options
context:
space:
mode:
Diffstat (limited to 'storperf/db')
-rw-r--r--storperf/db/job_db.py7
-rw-r--r--storperf/db/test_results_db.py56
2 files changed, 61 insertions, 2 deletions
diff --git a/storperf/db/job_db.py b/storperf/db/job_db.py
index 412c6bc..3d66be8 100644
--- a/storperf/db/job_db.py
+++ b/storperf/db/job_db.py
@@ -201,9 +201,12 @@ class JobDB(object):
return workload_executions
- def record_workload_params(self, job_id, params):
+ def record_workload_params(self, params):
"""
"""
+ if (self.job_id is None):
+ self.create_job_id()
+
with db_mutex:
db = sqlite3.connect(JobDB.db_name)
@@ -215,7 +218,7 @@ class JobDB(object):
param,
value)
values (?, ?, ?)""",
- (job_id,
+ (self.job_id,
param,
value,))
db.commit()
diff --git a/storperf/db/test_results_db.py b/storperf/db/test_results_db.py
new file mode 100644
index 0000000..8636e52
--- /dev/null
+++ b/storperf/db/test_results_db.py
@@ -0,0 +1,56 @@
+##############################################################################
+# Copyright (c) 2016 EMC and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import json
+import requests
+import os
+
+
+def get_installer_type(logger=None):
+ """
+ Get installer type (fuel, apex, joid, compass)
+ """
+ try:
+ installer = os.environ['INSTALLER_TYPE']
+ except KeyError:
+ if logger:
+ logger.error("Impossible to retrieve the installer type")
+ installer = "Unknown_installer"
+
+ return installer
+
+
+def push_results_to_db(db_url, project, case_name, logger, pod_name,
+ version, scenario, criteria, build_tag, payload):
+ """
+ POST results to the Result target DB
+ """
+ url = db_url + "/results"
+ installer = get_installer_type(logger)
+ params = {"project_name": project, "case_name": case_name,
+ "pod_name": pod_name, "installer": installer,
+ "version": version, "scenario": scenario, "criteria": criteria,
+ "build_tag": build_tag, "details": payload}
+
+ headers = {'Content-Type': 'application/json'}
+ try:
+ if logger:
+ logger.debug("Pushing results to %s" % (url))
+ r = requests.post(url, data=json.dumps(params), headers=headers)
+ if logger:
+ logger.debug(r)
+ logger.debug(r.status_code)
+ logger.debug(r.content)
+ return True
+ except Exception, e:
+ 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), e)
+ return False