Merge "Externalize error messages in the API"
This commit is contained in:
commit
7e1ba511d7
@ -249,10 +249,12 @@ class ExtensionController(wsgi.Controller):
|
||||
return dict(extension=self._translate(ext))
|
||||
|
||||
def delete(self, request, id):
|
||||
raise webob.exc.HTTPNotFound()
|
||||
msg = _('Resource not found.')
|
||||
raise webob.exc.HTTPNotFound(msg)
|
||||
|
||||
def create(self, request):
|
||||
raise webob.exc.HTTPNotFound()
|
||||
msg = _('Resource not found.')
|
||||
raise webob.exc.HTTPNotFound(msg)
|
||||
|
||||
|
||||
class ExtensionMiddleware(wsgi.Middleware):
|
||||
|
@ -170,7 +170,8 @@ class Controller(object):
|
||||
try:
|
||||
resource = self._item(request, id, True)
|
||||
except exceptions.PolicyNotAuthorized:
|
||||
raise webob.exc.HTTPNotFound()
|
||||
msg = _('The resource could not be found.')
|
||||
raise webob.exc.HTTPNotFound(msg)
|
||||
body = kwargs.pop('body', None)
|
||||
# Explicit comparison with None to distinguish from {}
|
||||
if body is not None:
|
||||
@ -291,7 +292,8 @@ class Controller(object):
|
||||
except exceptions.PolicyNotAuthorized:
|
||||
# To avoid giving away information, pretend that it
|
||||
# doesn't exist
|
||||
raise webob.exc.HTTPNotFound()
|
||||
msg = _('The resource could not be found.')
|
||||
raise webob.exc.HTTPNotFound(msg)
|
||||
|
||||
def _emulate_bulk_create(self, obj_creator, request, body, parent_id=None):
|
||||
objs = []
|
||||
@ -423,7 +425,8 @@ class Controller(object):
|
||||
except exceptions.PolicyNotAuthorized:
|
||||
# To avoid giving away information, pretend that it
|
||||
# doesn't exist
|
||||
raise webob.exc.HTTPNotFound()
|
||||
msg = _('The resource could not be found.')
|
||||
raise webob.exc.HTTPNotFound(msg)
|
||||
|
||||
obj_deleter = getattr(self._plugin, action)
|
||||
obj_deleter(request.context, id, **kwargs)
|
||||
@ -473,7 +476,8 @@ class Controller(object):
|
||||
except exceptions.PolicyNotAuthorized:
|
||||
# To avoid giving away information, pretend that it
|
||||
# doesn't exist
|
||||
raise webob.exc.HTTPNotFound()
|
||||
msg = _('The resource could not be found.')
|
||||
raise webob.exc.HTTPNotFound(msg)
|
||||
|
||||
obj_updater = getattr(self._plugin, action)
|
||||
kwargs = {self._resource: body}
|
||||
|
@ -18,6 +18,7 @@
|
||||
import webob.dec
|
||||
|
||||
from neutron.api.views import versions as versions_view
|
||||
from neutron.openstack.common import gettextutils
|
||||
from neutron.openstack.common import log as logging
|
||||
from neutron import wsgi
|
||||
|
||||
@ -42,7 +43,10 @@ class Versions(object):
|
||||
]
|
||||
|
||||
if req.path != '/':
|
||||
return webob.exc.HTTPNotFound()
|
||||
language = req.best_match_language()
|
||||
msg = _('Unknown API version specified')
|
||||
msg = gettextutils.get_localized_message(msg, language)
|
||||
return webob.exc.HTTPNotFound(explanation=msg)
|
||||
|
||||
builder = versions_view.get_view_builder(req)
|
||||
versions = [builder.build(version) for version in version_objs]
|
||||
|
@ -66,7 +66,8 @@ class QuotaSetsController(wsgi.Controller):
|
||||
request.context, QUOTAS.resources, tenant_id)
|
||||
|
||||
def create(self, request, body=None):
|
||||
raise webob.exc.HTTPNotImplemented()
|
||||
msg = _('POST requests are not supported on this resource.')
|
||||
raise webob.exc.HTTPNotImplemented(msg)
|
||||
|
||||
def index(self, request):
|
||||
context = request.context
|
||||
|
@ -143,11 +143,13 @@ class ConfDriver(object):
|
||||
|
||||
@staticmethod
|
||||
def delete_tenant_quota(context, tenant_id):
|
||||
raise webob.exc.HTTPForbidden()
|
||||
msg = _('Access to this resource was denied.')
|
||||
raise webob.exc.HTTPForbidden(msg)
|
||||
|
||||
@staticmethod
|
||||
def update_quota_limit(context, tenant_id, resource, limit):
|
||||
raise webob.exc.HTTPForbidden()
|
||||
msg = _('Access to this resource was denied.')
|
||||
raise webob.exc.HTTPForbidden(msg)
|
||||
|
||||
|
||||
class BaseResource(object):
|
||||
|
@ -952,7 +952,7 @@ class Router(object):
|
||||
return self._router
|
||||
|
||||
@staticmethod
|
||||
@webob.dec.wsgify
|
||||
@webob.dec.wsgify(RequestClass=Request)
|
||||
def _dispatch(req):
|
||||
"""Dispatch a Request.
|
||||
|
||||
@ -962,7 +962,10 @@ class Router(object):
|
||||
"""
|
||||
match = req.environ['wsgiorg.routing_args'][1]
|
||||
if not match:
|
||||
return webob.exc.HTTPNotFound()
|
||||
language = req.best_match_language()
|
||||
msg = _('The resource could not be found.')
|
||||
msg = gettextutils.get_localized_message(msg, language)
|
||||
return webob.exc.HTTPNotFound(explanation=msg)
|
||||
app = match['controller']
|
||||
return app
|
||||
|
||||
@ -1167,7 +1170,8 @@ class Controller(object):
|
||||
try:
|
||||
return serializer.serialize(data, content_type)
|
||||
except exception.InvalidContentType:
|
||||
raise webob.exc.HTTPNotAcceptable()
|
||||
msg = _('The requested content type %s is invalid.') % content_type
|
||||
raise webob.exc.HTTPNotAcceptable(msg)
|
||||
|
||||
def _deserialize(self, data, content_type):
|
||||
"""Deserialize the request body to the specefied content type.
|
||||
|
Loading…
Reference in New Issue
Block a user