Merge "Handle client disconnect during image upload"

This commit is contained in:
Jenkins 2013-07-22 15:40:50 +00:00 committed by Gerrit Code Review
commit 093d442681
2 changed files with 18 additions and 0 deletions

View File

@ -193,6 +193,14 @@ def upload_data_to_store(req, image_meta, image_data, store, notifier):
LOG.exception(msg)
safe_kill(req, image_id)
except (ValueError, IOError) as e:
msg = _("Client disconnected before sending all data to backend")
LOG.debug(msg)
safe_kill(req, image_id)
raise webob.exc.HTTPBadRequest(explanation=msg,
content_type="text/plain",
request=req)
except Exception as e:
msg = _("Failed to upload image %s" % image_id)
LOG.exception(msg)

View File

@ -289,6 +289,16 @@ class TestUploadUtils(base.StoreClearingUnitTest):
webob.exc.HTTPError,
webob.exc.HTTPError)
def test_upload_data_to_store_client_disconnect(self):
self._test_upload_data_to_store_exception(
ValueError,
webob.exc.HTTPBadRequest)
def test_upload_data_to_store_client_disconnect_ioerror(self):
self._test_upload_data_to_store_exception(
IOError,
webob.exc.HTTPBadRequest)
def test_upload_data_to_store_exception(self):
self._test_upload_data_to_store_exception_with_notify(
Exception,