summaryrefslogtreecommitdiff
path: root/swiftclient/client.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-12-10 00:19:00 +0000
committerGerrit Code Review <review@openstack.org>2013-12-10 00:19:00 +0000
commit1f3ab4b41a9448b350301e0483ce26d21e60744b (patch)
tree820806ce9981888f387a852e7b1dcee8124fd71f /swiftclient/client.py
parentb0f794800ce3545d2295caf79cb2d9badd4676dc (diff)
parentdbdbaa0321a709d67464ce777139af910f8b57af (diff)
downloadpython-swiftclient-1f3ab4b41a9448b350301e0483ce26d21e60744b.tar.gz
Merge "Skip sniffing and reseting if retry is disabled"
Diffstat (limited to 'swiftclient/client.py')
-rw-r--r--swiftclient/client.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/swiftclient/client.py b/swiftclient/client.py
index 8dbbaee..dbef2cc 100644
--- a/swiftclient/client.py
+++ b/swiftclient/client.py
@@ -1227,18 +1227,17 @@ class Connection(object):
'ability to reset contents for reupload.'
% (container, obj))
- if isinstance(contents, str):
- # if its a str then you can retry as much as you want
+ if isinstance(contents, str) or not contents:
+ # if its a str or None then you can retry as much as you want
reset_func = None
else:
reset_func = _default_reset
- tell = getattr(contents, 'tell', None)
- seek = getattr(contents, 'seek', None)
- if tell and seek:
- orig_pos = tell()
- reset_func = lambda *a, **k: seek(orig_pos)
- elif not contents:
- reset_func = lambda *a, **k: None
+ if self.retries > 0:
+ tell = getattr(contents, 'tell', None)
+ seek = getattr(contents, 'seek', None)
+ if tell and seek:
+ orig_pos = tell()
+ reset_func = lambda *a, **k: seek(orig_pos)
return self._retry(reset_func, put_object, container, obj, contents,
content_length=content_length, etag=etag,