Add connection timeout to the nechecker requests
Sometimes tests hang while performing requests to the netchecker. To prevent that 5 seconds connection timeout is added. Also @retry decorator is used for re-trying connection if it fails. Change-Id: Iea90a04fc713304fb98807488021be9971273280
This commit is contained in:
parent
418dbcb549
commit
0266c5a858
|
@ -155,3 +155,27 @@ def generate_keys():
|
||||||
|
|
||||||
def clean_dir(dirpath):
|
def clean_dir(dirpath):
|
||||||
shutil.rmtree(dirpath)
|
shutil.rmtree(dirpath)
|
||||||
|
|
||||||
|
|
||||||
|
def retry(tries_number=3, exception=Exception):
|
||||||
|
def _retry(func):
|
||||||
|
assert tries_number >= 1, 'ERROR! @retry is called with no tries!'
|
||||||
|
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
iter_number = 1
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
LOG.debug('Calling function "{0}" with args "{1}" and '
|
||||||
|
'kwargs "{2}". Try # {3}.'.format(func.__name__,
|
||||||
|
args,
|
||||||
|
kwargs,
|
||||||
|
iter_number))
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
except exception as e:
|
||||||
|
if iter_number > tries_number:
|
||||||
|
LOG.debug('Failed to execute function "{0}" with {1} '
|
||||||
|
'tries!'.format(func.__name__, tries_number))
|
||||||
|
raise e
|
||||||
|
iter_number += 1
|
||||||
|
return wrapper
|
||||||
|
return _retry
|
||||||
|
|
|
@ -22,6 +22,7 @@ from k8sclient.client import rest
|
||||||
|
|
||||||
import base_test
|
import base_test
|
||||||
from fuel_ccp_tests.helpers import ext
|
from fuel_ccp_tests.helpers import ext
|
||||||
|
from fuel_ccp_tests.helpers import utils
|
||||||
from fuel_ccp_tests import logger
|
from fuel_ccp_tests import logger
|
||||||
from fuel_ccp_tests import settings
|
from fuel_ccp_tests import settings
|
||||||
|
|
||||||
|
@ -94,10 +95,11 @@ class TestFuelCCPNetCheckerMixin:
|
||||||
k8s.wait_ds_ready(dsname=daemon_set_spec['metadata']['name'])
|
k8s.wait_ds_ready(dsname=daemon_set_spec['metadata']['name'])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@utils.retry(3, requests.exceptions.RequestException)
|
||||||
def get_netchecker_status(kube_host_ip, netchecker_pod_port=31081):
|
def get_netchecker_status(kube_host_ip, netchecker_pod_port=31081):
|
||||||
net_status_url = 'http://{0}:{1}/api/v1/connectivity_check'.format(
|
net_status_url = 'http://{0}:{1}/api/v1/connectivity_check'.format(
|
||||||
kube_host_ip, netchecker_pod_port)
|
kube_host_ip, netchecker_pod_port)
|
||||||
return requests.get(net_status_url)
|
return requests.get(net_status_url, timeout=5)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def wait_netchecker_running(kube_host_ip, timeout=120, interval=5):
|
def wait_netchecker_running(kube_host_ip, timeout=120, interval=5):
|
||||||
|
|
Loading…
Reference in New Issue