diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-01-13 11:21:20 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-01-13 11:21:20 +0000 |
commit | 5a3e5cd3b4802e799da2fdc8ad50edf1f32d0831 (patch) | |
tree | ef48658d8b45d1afe8970fbf152934e3e3d87acf | |
parent | b156680090fd4cba73834a63d42c7652a3375360 (diff) | |
parent | ae65ae547804b683c9c6175a652cd6eb09eb09f9 (diff) | |
download | tooz-5a3e5cd3b4802e799da2fdc8ad50edf1f32d0831.tar.gz |
Merge "Allow to pass arguments to retry()"
-rw-r--r-- | tooz/drivers/_retry.py | 8 | ||||
-rw-r--r-- | tooz/drivers/memcached.py | 20 | ||||
-rw-r--r-- | tooz/tests/drivers/test_retry.py | 2 |
3 files changed, 16 insertions, 14 deletions
diff --git a/tooz/drivers/_retry.py b/tooz/drivers/_retry.py index 3747996..2852995 100644 --- a/tooz/drivers/_retry.py +++ b/tooz/drivers/_retry.py @@ -33,8 +33,12 @@ RETRYING_KWARGS = dict( ) -def retry(f): - return retrying.retry(**RETRYING_KWARGS)(f) +def retry(**kwargs): + def _retry(f): + k = RETRYING_KWARGS.copy() + k.update(kwargs) + return retrying.retry(**k)(f) + return _retry Retrying = retrying.Retrying diff --git a/tooz/drivers/memcached.py b/tooz/drivers/memcached.py index ce1ddd9..7d26df5 100644 --- a/tooz/drivers/memcached.py +++ b/tooz/drivers/memcached.py @@ -41,8 +41,8 @@ class MemcachedLock(locking.Lock): self.coord = coord self.timeout = timeout - @_retry.retry def acquire(self, blocking=True): + @_retry.retry(stop_max_delay=blocking) def _acquire(): if self.coord.client.add( self.name, @@ -54,9 +54,7 @@ class MemcachedLock(locking.Lock): if blocking is False: return False raise _retry.Retry - kwargs = _retry.RETRYING_KWARGS.copy() - kwargs['stop_max_delay'] = blocking - return _retry.Retrying(**kwargs).call(_acquire) + return _acquire() def release(self): if self.coord.client.delete(self.name, noreply=False): @@ -156,7 +154,7 @@ class MemcachedDriver(coordination.CoordinationDriver): def _encode_group_leader(self, group_id): return self._GROUP_LEADER_PREFIX + group_id - @_retry.retry + @_retry.retry() def _add_group_to_group_list(self, group_id): """Add group to the group list. @@ -176,7 +174,7 @@ class MemcachedDriver(coordination.CoordinationDriver): # Someone updated the group list before us, try again! raise _retry.Retry - @_retry.retry + @_retry.retry() def _remove_from_group_list(self, group_id): """Remove group from the group list. @@ -208,7 +206,7 @@ class MemcachedDriver(coordination.CoordinationDriver): def join_group(self, group_id, capabilities=b""): encoded_group = self._encode_group_id(group_id) - @_retry.retry + @_retry.retry() def _join_group(): group_members, cas = self.client.gets(encoded_group) if group_members is None: @@ -229,7 +227,7 @@ class MemcachedDriver(coordination.CoordinationDriver): def leave_group(self, group_id): encoded_group = self._encode_group_id(group_id) - @_retry.retry + @_retry.retry() def _leave_group(): group_members, cas = self.client.gets(encoded_group) if group_members is None: @@ -250,7 +248,7 @@ class MemcachedDriver(coordination.CoordinationDriver): def delete_group(self, group_id): encoded_group = self._encode_group_id(group_id) - @_retry.retry + @_retry.retry() def _delete_group(): group_members, cas = self.client.gets(encoded_group) if group_members is None: @@ -266,7 +264,7 @@ class MemcachedDriver(coordination.CoordinationDriver): return MemcachedFutureResult(self._executor.submit(_delete_group)) - @_retry.retry + @_retry.retry() def _get_members(self, group_id): encoded_group = self._encode_group_id(group_id) group_members, cas = self.client.gets(encoded_group) @@ -302,7 +300,7 @@ class MemcachedDriver(coordination.CoordinationDriver): def update_capabilities(self, group_id, capabilities): encoded_group = self._encode_group_id(group_id) - @_retry.retry + @_retry.retry() def _update_capabilities(): group_members, cas = self.client.gets(encoded_group) if group_members is None: diff --git a/tooz/tests/drivers/test_retry.py b/tooz/tests/drivers/test_retry.py index ab5bc16..7b917cb 100644 --- a/tooz/tests/drivers/test_retry.py +++ b/tooz/tests/drivers/test_retry.py @@ -26,7 +26,7 @@ class TestRetry(testcase.TestCase): def test_retry(self): self.i = 1 - @_retry.retry + @_retry.retry() def x(add_that): if self.i == 1: self.i += add_that |