From dbdbaa0321a709d67464ce777139af910f8b57af Mon Sep 17 00:00:00 2001 From: Yuan Zhou <yuan.zhou@intel.com> Date: Wed, 4 Sep 2013 15:20:08 +0800 Subject: [PATCH] Skip sniffing and reseting if retry is disabled Bypass sniffing entirely if retries has been disabled. Fix bug #1216981 Change-Id: I593bdc56ca139af5a7f2ca2783ef2de2a96c94fb Signed-off-by: Yuan Zhou <yuan.zhou@intel.com> --- swiftclient/client.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/swiftclient/client.py b/swiftclient/client.py index a95ce707..6a0cca87 100644 --- a/swiftclient/client.py +++ b/swiftclient/client.py @@ -1213,18 +1213,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,