From 17466cf17b36bf6fcca00894bcedc8c88df25a4b Mon Sep 17 00:00:00 2001 From: xudan Date: Wed, 3 May 2017 06:11:51 +0000 Subject: 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 --- dovetail/conf/dovetail_config.yml | 3 ++- dovetail/run.py | 9 ++++++--- 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 -- cgit 1.2.3-korg