diff options
author | xudan <xudan16@huawei.com> | 2017-05-03 06:11:51 +0000 |
---|---|---|
committer | xudan <xudan16@huawei.com> | 2017-05-04 02:40:07 +0000 |
commit | 17466cf17b36bf6fcca00894bcedc8c88df25a4b (patch) | |
tree | 4ae6f76863ce46b00125f4667213bf37d3586479 | |
parent | bae197167f137c478f8bb3268d9e047a6b6839b6 (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.yml | 3 | ||||
-rwxr-xr-x | dovetail/run.py | 9 | ||||
-rw-r--r-- | dovetail/utils/dovetail_utils.py | 4 |
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 |