summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Burke <tim.burke@gmail.com>2018-01-26 14:14:18 -0800
committerTim Burke <tim.burke@gmail.com>2018-01-26 14:14:18 -0800
commit2901e1e9ef1932b0b3874e608422bbfdfbd1448a (patch)
treedf753c93d6e57daefd26a08d40be0450e562963e
parent2faea932870956583f83226886d33304ee1eee46 (diff)
downloadpython-swiftclient-2901e1e9ef1932b0b3874e608422bbfdfbd1448a.tar.gz
Treat 404 as success when deleting segments
Change-Id: I76be70ddb289bd4f1054a684a247279ab16ca34a
-rw-r--r--swiftclient/service.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/swiftclient/service.py b/swiftclient/service.py
index ed5e9e9..607c1ae 100644
--- a/swiftclient/service.py
+++ b/swiftclient/service.py
@@ -2471,17 +2471,18 @@ class SwiftService(object):
def _delete_segment(conn, container, obj, results_queue=None):
results_dict = {}
try:
- conn.delete_object(container, obj, response_dict=results_dict)
res = {'success': True}
+ conn.delete_object(container, obj, response_dict=results_dict)
except Exception as err:
- traceback, err_time = report_traceback()
- logger.exception(err)
- res = {
- 'success': False,
- 'error': err,
- 'traceback': traceback,
- 'error_timestamp': err_time
- }
+ if not isinstance(err, ClientException) or err.http_status != 404:
+ traceback, err_time = report_traceback()
+ logger.exception(err)
+ res = {
+ 'success': False,
+ 'error': err,
+ 'traceback': traceback,
+ 'error_timestamp': err_time
+ }
res.update({
'action': 'delete_segment',