Skip to content

Commit 743f878

Browse files
mhamzak008Zafer Genckaya
authored and
Zafer Genckaya
committed
Bug fix: can now disable retrying of the sdk. (See #21)
1 parent 7a7b94a commit 743f878

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

opsgenie_sdk/api_client.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,12 @@ def __init__(self, configuration=None, header_name=None, header_value=None,
7777
self.configuration = configuration
7878
self.pool_threads = pool_threads
7979

80-
self.retrying = tenacity.Retrying(stop=tenacity.stop_after_attempt(configuration.retry_count),
80+
self.retrying = tenacity.Retrying(stop=self.should_retry_stop,
8181
wait=tenacity.wait_random_exponential(multiplier=configuration.back_off,
8282
max=configuration.retry_max_delay,
8383
min=configuration.retry_delay),
84-
retry=(tenacity.retry_if_result(self.is_retry_enabled) and
85-
((tenacity.retry_if_exception_type(RetryableException)) |
86-
(tenacity.retry_if_exception_type(HTTPError)))))
84+
retry=(tenacity.retry_if_exception_type(RetryableException) |
85+
(tenacity.retry_if_exception_type(HTTPError))))
8786

8887
self.rest_client = rest.RESTClientObject(configuration, retrying=self.retrying)
8988
self.default_headers = {}
@@ -104,8 +103,11 @@ def __del__(self):
104103
self._pool.join()
105104
self._pool = None
106105

107-
def is_retry_enabled(self):
108-
return self.configuration.retry_enabled
106+
def should_retry_stop(self, retry_state):
107+
if self.configuration.retry_enabled and retry_state.attempt_number <= self.configuration.retry_count:
108+
return False
109+
110+
return True
109111

110112
@property
111113
def pool(self):

templates/api_client.mustache

+8-6
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,12 @@ class ApiClient(object):
7171
self.configuration = configuration
7272
self.pool_threads = pool_threads
7373

74-
self.retrying = tenacity.Retrying(stop=tenacity.stop_after_attempt(configuration.retry_count),
74+
self.retrying = tenacity.Retrying(stop=self.should_retry_stop,
7575
wait=tenacity.wait_random_exponential(multiplier=configuration.back_off,
7676
max=configuration.retry_max_delay,
7777
min=configuration.retry_delay),
78-
retry=(tenacity.retry_if_result(self.is_retry_enabled) and
79-
((tenacity.retry_if_exception_type(RetryableException)) |
80-
(tenacity.retry_if_exception_type(HTTPError)))))
78+
retry=(tenacity.retry_if_exception_type(RetryableException) |
79+
(tenacity.retry_if_exception_type(HTTPError))))
8180

8281
self.rest_client = rest.RESTClientObject(configuration, retrying=self.retrying)
8382
self.default_headers = {}
@@ -98,8 +97,11 @@ class ApiClient(object):
9897
self._pool.join()
9998
self._pool = None
10099

101-
def is_retry_enabled(self):
102-
return self.configuration.retry_enabled
100+
def should_retry_stop(self, retry_state):
101+
if self.configuration.retry_enabled and retry_state.attempt_number <= self.configuration.retry_count:
102+
return False
103+
104+
return True
103105

104106
@property
105107
def pool(self):

0 commit comments

Comments
 (0)