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):
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:
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 = []
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)
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}
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
]
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]
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
@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):
return self._router
@staticmethod
- @webob.dec.wsgify
+ @webob.dec.wsgify(RequestClass=Request)
def _dispatch(req):
"""Dispatch a Request.
"""
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
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.