X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fcommon%2FhttpClient.py;h=5b78311441746d500d7d811b9e350f3a9eddb850;hb=51cf862dbca0718be394a30ab346821698d835d3;hp=6acd0303dc9db365790a03111f7e53cd0b554e1a;hpb=205729564104b309058ad011f1daf402a285d7b8;p=yardstick.git diff --git a/yardstick/common/httpClient.py b/yardstick/common/httpClient.py index 6acd0303d..5b7831144 100644 --- a/yardstick/common/httpClient.py +++ b/yardstick/common/httpClient.py @@ -6,9 +6,12 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -import json +from __future__ import absolute_import + import logging +import time +from oslo_serialization import jsonutils import requests logger = logging.getLogger(__name__) @@ -16,19 +19,24 @@ logger = logging.getLogger(__name__) class HttpClient(object): - def post(self, url, data): - data = json.dumps(data) + def post(self, url, data, timeout=0): + data = jsonutils.dump_as_bytes(data) headers = {'Content-Type': 'application/json'} - try: - response = requests.post(url, data=data, headers=headers) - result = response.json() - logger.debug('The result is: %s', result) - - return result - except Exception as e: - logger.debug('Failed: %s', e) - raise + t_end = time.time() + timeout + while True: + try: + response = requests.post(url, data=data, headers=headers) + response.raise_for_status() + result = response.json() + logger.debug('The result is: %s', result) + return result + except Exception: # pylint: disable=broad-except + if time.time() > t_end: + logger.exception('') + raise + time.sleep(1) def get(self, url): response = requests.get(url) + response.raise_for_status() return response.json()