summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxudan <xudan16@huawei.com>2017-05-03 06:11:51 +0000
committerxudan <xudan16@huawei.com>2017-05-04 02:40:07 +0000
commit17466cf17b36bf6fcca00894bcedc8c88df25a4b (patch)
tree4ae6f76863ce46b00125f4667213bf37d3586479
parentbae197167f137c478f8bb3268d9e047a6b6839b6 (diff)
Get results json data from database
JIRA: DOVETAIL-417 1. If report results with files, all results will be stored in local files. 2. If report to database, will get results from database and stored with file results.json Change-Id: Ic30037bd66cd37042f82b75fac2043a876e21c6f Signed-off-by: xudan <xudan16@huawei.com>
-rw-r--r--dovetail/conf/dovetail_config.yml3
-rwxr-xr-xdovetail/run.py9
-rw-r--r--dovetail/utils/dovetail_utils.py4
3 files changed, 11 insertions, 5 deletions
diff --git a/dovetail/conf/dovetail_config.yml b/dovetail/conf/dovetail_config.yml
index 332628a2..ec1f5254 100644
--- a/dovetail/conf/dovetail_config.yml
+++ b/dovetail/conf/dovetail_config.yml
@@ -1,7 +1,8 @@
---
-report_file: 'dovetail_report.txt'
+# report_file: 'dovetail_report.txt'
cli_file_name: 'cmd_config.yml'
report_dest: 'file'
+result_file: 'results.json'
# OPENSTACK Credential file
openrc: '/home/opnfv/dovetail/openrc.sh'
diff --git a/dovetail/run.py b/dovetail/run.py
index 4bea9b53..5b4dca8e 100755
--- a/dovetail/run.py
+++ b/dovetail/run.py
@@ -74,17 +74,20 @@ def check_tc_result(testcase, logger):
result_dir = dt_cfg.dovetail_config['result_dir']
validate_type = testcase.validate_type()
functest_result = dt_cfg.dovetail_config['functest']['result']['file_path']
+ dovetail_result = os.path.join(result_dir,
+ dt_cfg.dovetail_config['result_file'])
if dt_cfg.dovetail_config['report_dest'].startswith("http"):
if validate_type.lower() == 'yardstick':
logger.info("Results have been stored with file %s.",
os.path.join(result_dir,
testcase.validate_testcase() + '.out'))
else:
- if dt_utils.check_db_results(dt_cfg.dovetail_config['report_dest'],
+ if dt_utils.store_db_results(dt_cfg.dovetail_config['report_dest'],
dt_cfg.dovetail_config['build_tag'],
- testcase.name(),
+ testcase.name(), dovetail_result,
logger):
- logger.info("Results have been pushed to database.")
+ logger.info("Results have been pushed to database and stored "
+ "with local file %s.", dovetail_result)
else:
logger.error("Fail to push results to database.")
if dt_cfg.dovetail_config['report_dest'] == "file":
diff --git a/dovetail/utils/dovetail_utils.py b/dovetail/utils/dovetail_utils.py
index 83390e9d..e6a775f1 100644
--- a/dovetail/utils/dovetail_utils.py
+++ b/dovetail/utils/dovetail_utils.py
@@ -132,12 +132,14 @@ def get_ext_net_name(env_file, logger=None):
return None
-def check_db_results(db_url, build_tag, testcase, logger):
+def store_db_results(db_url, build_tag, testcase, dest_file, logger):
url = "%s?build_tag=%s-%s" % (db_url, build_tag, testcase)
logger.debug("Query to rest api: %s", url)
try:
data = json.load(urllib2.urlopen(url))
if data['results']:
+ with open(dest_file, 'a') as f:
+ f.write(json.dumps(data['results'][0]) + '\n')
return True
else:
return False