X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fcommon%2FhttpClient.py;h=54f7be6708382fdc3507c426c460eeb009c8f8bc;hb=5f88afccf6ee9336f4e333830255f6320266a2a4;hp=6acd0303dc9db365790a03111f7e53cd0b554e1a;hpb=63e75aad3b01de4fc20468d5dd9cdb9b15c5e11e;p=yardstick.git diff --git a/yardstick/common/httpClient.py b/yardstick/common/httpClient.py index 6acd0303d..54f7be670 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,18 +19,21 @@ 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) + result = response.json() + logger.debug('The result is: %s', result) + return result + except Exception: + if time.time() > t_end: + logger.exception('') + raise + time.sleep(1) def get(self, url): response = requests.get(url)