X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=utils%2Ffunctest_utils.py;h=b83309e3a0dcf2689c30ac4bd906fb6a9d9f4c19;hb=2a383c7244dee510e60752b6d88fb5c68cded1ec;hp=437315241b61ac7830e614aff0fb0124df2a44b7;hpb=86195b92c29c2925529771d7a8014392e815f38c;p=functest.git diff --git a/utils/functest_utils.py b/utils/functest_utils.py index 437315241..b83309e3a 100644 --- a/utils/functest_utils.py +++ b/utils/functest_utils.py @@ -16,10 +16,10 @@ import os import os.path import re import shutil -import socket import subprocess import sys import urllib2 +import dns.resolver import functest.ci.tier_builder as tb from git import Repo @@ -169,9 +169,18 @@ def logger_test_results(logger, project, case_name, status, details): version = get_version(logger) build_tag = get_build_tag(logger) - logger.info("Pushing %(p)s/%(n)s results: TEST_DB_URL=%(db)s " - "pod_name=%(pod)s version=%(v)s scenario=%(s)s " - "criteria=%(c)s details=%(d)s" % { + logger.info("\n" + "****************************************\n" + "\t %(p)s/%(n)s results \n\n" + "****************************************\n" + "DB:\t%(db)s\n" + "pod:\t%(pod)s\n" + "version:\t%(v)s\n" + "scenario:\t%(s)s\n" + "status:\t%(c)s\n" + "build tag:\t%(b)s\n" + "details:\t%(d)s\n" + % { 'p': project, 'n': case_name, 'db': get_db_url(), @@ -210,12 +219,13 @@ def push_results_to_db(project, case_name, logger, r = requests.post(url, data=json.dumps(params), headers=headers) if logger: logger.debug(r) + r.raise_for_status() return True 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 + 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 @@ -226,13 +236,17 @@ def get_resolvconf_ns(): nameservers = [] rconf = open("/etc/resolv.conf", "r") line = rconf.readline() + resolver = dns.resolver.Resolver() while line: ip = re.search(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", line) - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) if ip: - result = sock.connect_ex((ip.group(), 53)) - if result == 0: - nameservers.append(ip.group()) + resolver.nameservers = [str(ip)] + try: + result = resolver.query('opnfv.org')[0] + if result != "": + nameservers.append(ip.group()) + except dns.exception.Timeout: + pass line = rconf.readline() return nameservers @@ -368,6 +382,19 @@ def check_success_rate(case_name, success_rate): return status +def merge_dicts(dict1, dict2): + for k in set(dict1.keys()).union(dict2.keys()): + if k in dict1 and k in dict2: + if isinstance(dict1[k], dict) and isinstance(dict2[k], dict): + yield (k, dict(merge_dicts(dict1[k], dict2[k]))) + else: + yield (k, dict2[k]) + elif k in dict1: + yield (k, dict1[k]) + else: + yield (k, dict2[k]) + + def check_test_result(test_name, ret, start_time, stop_time): def get_criteria_value(): return get_criteria_by_test(test_name).split('==')[1].strip()