Fixed endpoint required parameters for DELETE

Problem: Received HTTP 500 Internal Server Error when using DELETE in query
	without specifying alarm definition id.

	Solution: Modified on_delete() so that if alarm definition id
	is not specified, query response will be HTTP 422 Unprocessible Entity.

Change-Id: Ie4518cb5a082211190f0364673944ecfca43948e
This commit is contained in:
Habeeb Mohammed 2017-06-13 11:24:19 -06:00
parent bd3b02cb62
commit fcd02568ef
2 changed files with 12 additions and 1 deletions

View File

@ -434,6 +434,13 @@ class TestAlarmDefinition(AlarmTestBase):
self.assertEqual(self.srmock.status, falcon.HTTP_422)
def test_alarm_definition_delete_no_id(self):
self.simulate_request("/v2.0/alarm-definitions/", headers={'X-Roles': 'admin', 'X-Tenant-Id': TENANT_ID},
method="DELETE")
self.assertEqual(self.srmock.status, falcon.HTTP_422)
def test_alarm_definition_patch(self):
self.alarm_def_repo_mock.return_value.get_alarm_definitions.return_value = []
description = u'Non-ASCII character: \u2603'

View File

@ -222,7 +222,11 @@ class AlarmDefinitions(alarm_definitions_api_v2.AlarmDefinitionsV2API,
res.status = falcon.HTTP_200
@resource.resource_try_catch_block
def on_delete(self, req, res, alarm_definition_id):
def on_delete(self, req, res, alarm_definition_id=None):
if not alarm_definition_id:
raise HTTPUnprocessableEntityError('Unprocessable Entity',
'Alarm definition ID not provided')
helpers.validate_authorization(req, self._default_authorized_roles)
self._alarm_definition_delete(req.project_id, alarm_definition_id)