diff --git a/glance/api/v2/images.py b/glance/api/v2/images.py index a12da50063..f92b97cc4c 100644 --- a/glance/api/v2/images.py +++ b/glance/api/v2/images.py @@ -64,31 +64,26 @@ class ImagesController(object): image = image_factory.new_image(extra_properties=extra_properties, tags=tags, **image) image_repo.add(image) - except exception.DuplicateLocation as dup: - raise webob.exc.HTTPBadRequest(explanation=dup.msg) - except exception.Invalid as e: + except (exception.DuplicateLocation, + exception.Invalid) as e: raise webob.exc.HTTPBadRequest(explanation=e.msg) + except (exception.ReservedProperty, + exception.ReadonlyProperty) as e: + raise webob.exc.HTTPForbidden(explanation=e.msg) except exception.Forbidden as e: LOG.debug("User not permitted to create image") raise webob.exc.HTTPForbidden(explanation=e.msg) - except exception.InvalidParameterValue as e: - raise webob.exc.HTTPBadRequest(explanation=e.msg) except exception.LimitExceeded as e: LOG.warn(encodeutils.exception_to_unicode(e)) raise webob.exc.HTTPRequestEntityTooLarge( explanation=e.msg, request=req, content_type='text/plain') - except exception.Duplicate as dupex: - raise webob.exc.HTTPConflict(explanation=dupex.msg) - except exception.ReservedProperty as e: - raise webob.exc.HTTPForbidden(explanation=e.msg) - except exception.ReadonlyProperty as e: - raise webob.exc.HTTPForbidden(explanation=e.msg) - except TypeError as e: - LOG.debug(encodeutils.exception_to_unicode(e)) - raise webob.exc.HTTPBadRequest( - explanation=encodeutils.exception_to_unicode(e)) + except exception.Duplicate as e: + raise webob.exc.HTTPConflict(explanation=e.msg) except exception.NotAuthenticated as e: raise webob.exc.HTTPUnauthorized(explanation=e.msg) + except TypeError as e: + LOG.debug(encodeutils.exception_to_unicode(e)) + raise webob.exc.HTTPBadRequest(explanation=e) return image @@ -160,8 +155,6 @@ class ImagesController(object): except exception.Forbidden as e: LOG.debug("User not permitted to update image '%s'", image_id) raise webob.exc.HTTPForbidden(explanation=e.msg) - except exception.InvalidParameterValue as e: - raise webob.exc.HTTPBadRequest(explanation=e.msg) except exception.StorageQuotaFull as e: msg = (_("Denying attempt to upload image because it exceeds the" " quota: %s") % encodeutils.exception_to_unicode(e)) @@ -283,8 +276,8 @@ class ImagesController(object): image.locations = value if image.status == 'queued': image.status = 'active' - except (exception.BadStoreUri, exception.DuplicateLocation) as bse: - raise webob.exc.HTTPBadRequest(explanation=bse.msg) + except (exception.BadStoreUri, exception.DuplicateLocation) as e: + raise webob.exc.HTTPBadRequest(explanation=e.msg) except ValueError as ve: # update image status failed. raise webob.exc.HTTPBadRequest( explanation=encodeutils.exception_to_unicode(ve)) @@ -299,11 +292,11 @@ class ImagesController(object): image.locations.insert(pos, value) if image.status == 'queued': image.status = 'active' - except (exception.BadStoreUri, exception.DuplicateLocation) as bse: - raise webob.exc.HTTPBadRequest(explanation=bse.msg) - except ValueError as ve: # update image status failed. + except (exception.BadStoreUri, exception.DuplicateLocation) as e: + raise webob.exc.HTTPBadRequest(explanation=e.msg) + except ValueError as e: # update image status failed. raise webob.exc.HTTPBadRequest( - explanation=encodeutils.exception_to_unicode(ve)) + explanation=encodeutils.exception_to_unicode(e)) def _do_remove_locations(self, image, path_pos): pos = self._get_locations_op_pos(path_pos, diff --git a/glance/api/v3/artifacts.py b/glance/api/v3/artifacts.py index c9fcb21f80..49ff03df12 100644 --- a/glance/api/v3/artifacts.py +++ b/glance/api/v3/artifacts.py @@ -154,23 +154,18 @@ class ArtifactsController(object): # retrieve artifact from db return self._get_artifact_with_dependencies(artifact_repo, new_artifact.id) - except TypeError as e: + except (TypeError, + exception.ArtifactNotFound, + exception.Invalid, + exception.DuplicateLocation) as e: raise webob.exc.HTTPBadRequest(explanation=e) - except exception.ArtifactNotFound as e: - raise webob.exc.HTTPBadRequest(explanation=e.msg) - except exception.DuplicateLocation as dup: - raise webob.exc.HTTPBadRequest(explanation=dup.msg) except exception.Forbidden as e: raise webob.exc.HTTPForbidden(explanation=e.msg) - except exception.InvalidParameterValue as e: - raise webob.exc.HTTPBadRequest(explanation=e.msg) except exception.LimitExceeded as e: raise webob.exc.HTTPRequestEntityTooLarge( explanation=e.msg, request=req, content_type='text/plain') - except exception.Duplicate as dupex: - raise webob.exc.HTTPConflict(explanation=dupex.msg) - except exception.Invalid as e: - raise webob.exc.HTTPBadRequest(explanation=e.msg) + except exception.Duplicate as e: + raise webob.exc.HTTPConflict(explanation=e.msg) except exception.NotAuthenticated as e: raise webob.exc.HTTPUnauthorized(explanation=e.msg) @@ -219,9 +214,8 @@ class ArtifactsController(object): updated = self._do_update_op(updated, change) artifact_repo.save(updated) return self._get_artifact_with_dependencies(artifact_repo, id) - except (exception.InvalidArtifactPropertyValue, - exception.InvalidJsonPatchPath, - exception.InvalidParameterValue) as e: + except (exception.InvalidJsonPatchPath, + exception.Invalid) as e: raise webob.exc.HTTPBadRequest(explanation=e.msg) except exception.NotFound as e: raise webob.exc.HTTPNotFound(explanation=e.msg) @@ -232,8 +226,6 @@ class ArtifactsController(object): "the quota: %s") % encodeutils.exception_to_unicode(e)) raise webob.exc.HTTPRequestEntityTooLarge( explanation=msg, request=req, content_type='text/plain') - except exception.Invalid as e: - raise webob.exc.HTTPBadRequest(explanation=e.msg) except exception.LimitExceeded as e: raise webob.exc.HTTPRequestEntityTooLarge( explanation=e.msg, request=req, content_type='text/plain')