X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fcommon%2FhttpClient.py;h=54f7be6708382fdc3507c426c460eeb009c8f8bc;hb=4529399c79b1e61ea37cb79e790adc130c98cf45;hp=b6959b400b5ee9c8842dade9619613614fdc0a07;hpb=322405412df26c8a0ee7f3a5aaa3b115950e97c8;p=yardstick.git diff --git a/yardstick/common/httpClient.py b/yardstick/common/httpClient.py index b6959b400..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,12 +19,22 @@ 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) - except Exception as e: - logger.debug('Failed: %s', e) + 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) + return response.json()