summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-01-13 11:21:20 +0000
committerGerrit Code Review <review@openstack.org>2015-01-13 11:21:20 +0000
commit5a3e5cd3b4802e799da2fdc8ad50edf1f32d0831 (patch)
treeef48658d8b45d1afe8970fbf152934e3e3d87acf
parentb156680090fd4cba73834a63d42c7652a3375360 (diff)
parentae65ae547804b683c9c6175a652cd6eb09eb09f9 (diff)
downloadtooz-5a3e5cd3b4802e799da2fdc8ad50edf1f32d0831.tar.gz
Merge "Allow to pass arguments to retry()"
-rw-r--r--tooz/drivers/_retry.py8
-rw-r--r--tooz/drivers/memcached.py20
-rw-r--r--tooz/tests/drivers/test_retry.py2
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