From: SerenaFeng Date: Mon, 22 Aug 2016 10:23:25 +0000 (+0800) Subject: refactor push_result_to_db print thing X-Git-Tag: 0.2~1258^2 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=2588e2af6c2b609ab08957268f8163954cd8eae1;p=functest-xtesting.git refactor push_result_to_db print thing when Exceptions happen, the print code is too difficult to understand and maintain, modify to make it clear jira: FUNCTEST-425 Change-Id: Ie12af989e711df3791167955642f2edf1164b146 Signed-off-by: SerenaFeng --- diff --git a/utils/functest_utils.py b/utils/functest_utils.py index 807a671a..4d5004cb 100644 --- a/utils/functest_utils.py +++ b/utils/functest_utils.py @@ -214,24 +214,51 @@ def push_results_to_db(project, case_name, logger, "build_tag": build_tag, "start_date": test_start, "stop_date": test_stop, "details": details} + error = None headers = {'Content-Type': 'application/json'} try: r = requests.post(url, data=json.dumps(params), headers=headers) if logger: logger.debug(r) r.raise_for_status() + except requests.RequestException as exc: + if 'r' in locals(): + error = ("Pushing Result to DB(%s) failed: %s" % + (r.url, r.content)) + else: + error = ("Pushing Result to DB(%s) failed: %s" % (url, exc)) + except Exception as e: + error = ("Error [push_results_to_db(" + "DB: '%(db)s', " + "project: '%(project)s', " + "case: '%(case)s', " + "pod: '%(pod)s', " + "version: '%(v)s', " + "scenario: '%(s)s', " + "criteria: '%(c)s', " + "build_tag: '%(t)s', " + "details: '%(d)s')]: " + "%(error)s" % + { + 'db': url, + 'project': project, + 'case': case_name, + 'pod': pod_name, + 'v': version, + 's': scenario, + 'c': criteria, + 't': build_tag, + 'd': details, + 'error': e + }) + finally: + if error: + if logger: + logger.error(error) + else: + print error + return False return True - except requests.RequestException: - if logger: - logger.error("Pushing Result to DB(%s) failed: %s" % - (r.url, r.content)) - return False - except Exception, e: - print("Error [push_results_to_db('%s', '%s', '%s', '%s'," - "'%s', '%s', '%s', '%s', '%s')]:" % - (url, project, case_name, pod_name, version, - scenario, criteria, build_tag, details)), e - return False def get_resolvconf_ns():