aboutsummaryrefslogtreecommitdiffstats
path: root/onap-client/onap_client/client/request.py
diff options
context:
space:
mode:
authorstark, steven <steven.stark@att.com>2020-11-17 12:02:50 -0800
committerstark, steven <steven.stark@att.com>2020-11-17 12:02:50 -0800
commite618989d37d8b786b5b0a9f2fa42bafa32475eed (patch)
treeadc989060dce1405908eb22b4c79f45974d21390 /onap-client/onap_client/client/request.py
parent8d35775b374116182a5262fa6249c989d3d7509e (diff)
[VVP] Add urllib3 retry to OC requestsguilin
Adding retry to OC for requests. - Retry limit is 3, back_off time is 2.5, 5, then 10 seconds for last retry. Fixing an issue w/ delete SI payload. Removing auto-generated X-Transaction-ID header from SDC requests. Issue-ID: VVP-487 Signed-off-by: stark, steven <steven.stark@att.com> Change-Id: I3eb2b3b65ce00307066867f65f2ef9a03f7d5524
Diffstat (limited to 'onap-client/onap_client/client/request.py')
-rw-r--r--onap-client/onap_client/client/request.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/onap-client/onap_client/client/request.py b/onap-client/onap_client/client/request.py
index 6563fb8..fa9bf15 100644
--- a/onap-client/onap_client/client/request.py
+++ b/onap-client/onap_client/client/request.py
@@ -45,6 +45,8 @@ import logging as logger
from onap_client.client.response import ResponseHandler
from onap_client.exceptions import FilesRequestFailure
from jinja2 import exceptions as jinja_exceptions
+from requests.adapters import HTTPAdapter
+from urllib3.util.retry import Retry
class RequestHandler:
@@ -112,7 +114,19 @@ class Request:
logger.info(debug_request)
def request(self, verify=True):
- return requests.request(**self.kwargs, verify=verify)
+ http = requests.Session()
+ retry_strategy = Retry(
+ total=3,
+ backoff_factor=5,
+ status_forcelist=[404, 429, 500, 501, 502, 503, 504],
+ method_whitelist=["HEAD", "GET", "PUT", "DELETE", "OPTIONS", "TRACE", "POST"],
+ raise_on_status=False
+ )
+ adapter = HTTPAdapter(max_retries=retry_strategy)
+ http.mount("https://", adapter)
+ http.mount("http://", adapter)
+
+ return http.request(**self.kwargs, verify=verify)
class APICatalogRequestObject: