Handling unexpected python error "NoneType object is not iterable"

The glance documentation states that None (empty image) is a valid
return value. We have to handle this outcome. Adding error handling
helps debugging this unhandled issue

Change-Id: If7c22ac4516f8c2a6ccd8bf6b6ed98409312b138
Closes-Bug: #1798147
(cherry picked from commit d3afc39467)
This commit is contained in:
Marc Methot 2018-10-16 12:37:28 -04:00 committed by Vlad Gusev
parent 343ebf5ba2
commit 805368e902
2 changed files with 8 additions and 0 deletions

View File

@ -727,6 +727,10 @@ class GlanceMetadataNotFound(NotFound):
message = _("Glance metadata for volume/snapshot %(id)s cannot be found.")
class ImageDownloadFailed(CinderException):
_msg_fmt = _("Failed to download image %(image_href)s, reason: %(reason)s")
class ExportFailure(Invalid):
message = _("Failed to export for volume: %(reason)s")

View File

@ -357,6 +357,10 @@ class GlanceImageService(object):
except Exception:
_reraise_translated_image_exception(image_id)
if image_chunks is None:
raise exception.ImageDownloadFailed(
image_href=context, reason=_('image contains no data.'))
if not data:
return image_chunks
else: