def _request(self, method, uri, path_params=None, flatten_params=True, **kwargs): if path_params: # Ensure path param is encoded. path_params = { key: quote(str(value), safe=u'') for key, value in path_params.items() } uri %= path_params # Custom nested object flattening if flatten_params and 'params' in kwargs: kwargs['params'] = self._flatten_param(kwargs['params']) full_uri = self._endpoint + uri response = self._session.request(method, full_uri, **kwargs) log_message = format_request(response) logging.info(log_message) if not 200 <= response.status_code <= 299: logging.error(log_message) return response
def wrapper(*args, **kwargs): total_retries = int(TenableIOClient._TOTAL_RETRIES) count = 0 sleep_ms = 0 if 'headers' not in kwargs or not kwargs['headers']: kwargs['headers'] = {} while count <= total_retries: # Set retry count header if count > 0: kwargs['headers'].update( {u'X-Tio-Retry-Count': str(count)}) count += 1 try: return f(*args, **kwargs) except TenableIORetryableApiException as exception: if count > total_retries: raise TenableIOApiException(exception.response) sleep_ms += count * int( TenableIOClient._RETRY_SLEEP_MILLISECONDS) sleep(sleep_ms / 1000.0) logging.warn(u'RETRY(%d/%d)AFTER(%dms):%s' % (count, total_retries, sleep_ms, format_request(exception.response)))
def _request(self, method, uri, path_params=None, **kwargs): if path_params: # Ensure path param is encoded. path_params = {key: quote(str(value), safe=u'') for key, value in path_params.items()} uri %= path_params full_uri = self._endpoint + uri response = requests.request(method, full_uri, headers=self._headers, **kwargs) log_message = format_request(response) logging.info(log_message) if not 200 <= response.status_code <= 299: logging.error(log_message) return response
def wrapper(*args, **kwargs): count = 0 retry = True sleep_ms = 0 while retry: retry = False try: return f(*args, **kwargs) except TenableIORetryableApiException as exception: count += 1 if count <= TenableIOClient.MAX_RETRIES: retry = True sleep_ms += count * TenableIOClient.RETRY_SLEEP_MILLISECONDS logging.warn(u'RETRY(%d/%d)AFTER(%dms):%s' % (count, TenableIOClient.MAX_RETRIES, sleep_ms, format_request(exception.response))) sleep(sleep_ms / 1000.0) else: raise TenableIOApiException(exception.response)