Insert validation with request params for HTTP DELETE
When delete request is thrown with "request body", it returns 500. This commit fixes the return code from 500 to 400(BadRequest). Change-Id: Iadf1bc724f9bd1728d3f9d3c0da4f0675da97d30 Closes-Bug: #1519342
This commit is contained in:
parent
4f4a40689d
commit
fdecc62682
|
@ -526,6 +526,9 @@ class Controller(object):
|
|||
|
||||
def delete(self, request, id, **kwargs):
|
||||
"""Deletes the specified entity."""
|
||||
if request.body:
|
||||
msg = _('Request body is not supported in DELETE.')
|
||||
raise webob.exc.HTTPBadRequest(msg)
|
||||
self._notifier.info(request.context,
|
||||
self._resource + '.delete.start',
|
||||
{self._resource + '_id': id})
|
||||
|
|
|
@ -216,11 +216,11 @@ class NeutronDbPluginV2TestCase(testlib_api.WebTestCase):
|
|||
params=params, subresource=subresource)
|
||||
|
||||
def new_delete_request(self, resource, id, fmt=None, subresource=None,
|
||||
sub_id=None):
|
||||
sub_id=None, data=None):
|
||||
return self._req(
|
||||
'DELETE',
|
||||
resource,
|
||||
None,
|
||||
data,
|
||||
fmt,
|
||||
id=id,
|
||||
subresource=subresource,
|
||||
|
@ -846,6 +846,15 @@ class TestV2HTTPResponse(NeutronDbPluginV2TestCase):
|
|||
res = req.get_response(self.api)
|
||||
self.assertEqual(webob.exc.HTTPNoContent.code, res.status_int)
|
||||
|
||||
def test_delete_with_req_body_returns_400(self):
|
||||
res = self._create_network(self.fmt, 'net1', True)
|
||||
net = self.deserialize(self.fmt, res)
|
||||
data = {"network": {"id": net['network']['id']}}
|
||||
req = self.new_delete_request('networks', net['network']['id'],
|
||||
data=data)
|
||||
res = req.get_response(self.api)
|
||||
self.assertEqual(webob.exc.HTTPBadRequest.code, res.status_int)
|
||||
|
||||
def test_update_returns_200(self):
|
||||
with self.network() as net:
|
||||
req = self.new_update_request('networks',
|
||||
|
|
Loading…
Reference in New Issue