Fixed HTTP error code for alarm-definitions
Problem: Received HTTP 422 Unprocessible Entity when alarm definition id is not specified in query instead of HTTP 400 Bad Request. Solution: Modified on_delete(), on_patch(), and on_put() to return HTTP 400 Bad Request. Change-Id: I668d1f7cd257abbdf5d5d6b78552a152bd67aa60
This commit is contained in:
parent
15578c254c
commit
6e81a61900
|
@ -422,7 +422,7 @@ class TestAlarmDefinition(AlarmTestBase):
|
|||
self.simulate_request("/v2.0/alarm-definitions/", headers={'X-Roles': 'admin', 'X-Tenant-Id': TENANT_ID},
|
||||
method="PATCH", body=json.dumps(alarm_def))
|
||||
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_422)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
def test_alarm_definition_update_no_id(self):
|
||||
alarm_def = {
|
||||
|
@ -432,14 +432,14 @@ class TestAlarmDefinition(AlarmTestBase):
|
|||
self.simulate_request("/v2.0/alarm-definitions/", headers={'X-Roles': 'admin', 'X-Tenant-Id': TENANT_ID},
|
||||
method="PUT", body=json.dumps(alarm_def))
|
||||
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_422)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
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)
|
||||
self.assertEqual(self.srmock.status, falcon.HTTP_400)
|
||||
|
||||
def test_alarm_definition_patch(self):
|
||||
self.alarm_def_repo_mock.return_value.get_alarm_definitions.return_value = []
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# (C) Copyright 2015,2016 Hewlett Packard Enterprise Development Company LP
|
||||
# (C) Copyright 2015,2016,2017 Hewlett Packard Enterprise Development Company LP
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
|
@ -18,3 +18,8 @@ from falcon.http_error import HTTPError
|
|||
class HTTPUnprocessableEntityError(HTTPError):
|
||||
def __init__(self, title, description, **kwargs):
|
||||
HTTPError.__init__(self, '422 Unprocessable Entity', title, description, **kwargs)
|
||||
|
||||
|
||||
class HTTPBadRequestError(HTTPError):
|
||||
def __init__(self, title, description, **kwargs):
|
||||
HTTPError.__init__(self, '400 Bad Request', title, description, **kwargs)
|
||||
|
|
|
@ -24,6 +24,7 @@ import pyparsing
|
|||
from monasca_api.api import alarm_definitions_api_v2
|
||||
from monasca_api.common.repositories import exceptions
|
||||
import monasca_api.expression_parser.alarm_expr_parser
|
||||
from monasca_api.v2.common.exceptions import HTTPBadRequestError
|
||||
from monasca_api.v2.common.exceptions import HTTPUnprocessableEntityError
|
||||
from monasca_api.v2.common.schemas import (
|
||||
alarm_definition_request_body_schema as schema_alarms)
|
||||
|
@ -134,8 +135,7 @@ class AlarmDefinitions(alarm_definitions_api_v2.AlarmDefinitionsV2API,
|
|||
def on_put(self, req, res, alarm_definition_id=None):
|
||||
|
||||
if not alarm_definition_id:
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity',
|
||||
'Alarm definition ID not provided')
|
||||
raise HTTPBadRequestError('Bad Request', 'Alarm definition ID not provided')
|
||||
|
||||
helpers.validate_authorization(req, self._default_authorized_roles)
|
||||
|
||||
|
@ -176,8 +176,7 @@ class AlarmDefinitions(alarm_definitions_api_v2.AlarmDefinitionsV2API,
|
|||
def on_patch(self, req, res, alarm_definition_id=None):
|
||||
|
||||
if not alarm_definition_id:
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity',
|
||||
'Alarm definition ID not provided')
|
||||
raise HTTPBadRequestError('Bad Request', 'Alarm definition ID not provided')
|
||||
|
||||
helpers.validate_authorization(req, self._default_authorized_roles)
|
||||
|
||||
|
@ -225,8 +224,7 @@ class AlarmDefinitions(alarm_definitions_api_v2.AlarmDefinitionsV2API,
|
|||
def on_delete(self, req, res, alarm_definition_id=None):
|
||||
|
||||
if not alarm_definition_id:
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity',
|
||||
'Alarm definition ID not provided')
|
||||
raise HTTPBadRequestError('Bad Request', 'Alarm definition ID not provided')
|
||||
|
||||
helpers.validate_authorization(req, self._default_authorized_roles)
|
||||
self._alarm_definition_delete(req.project_id, alarm_definition_id)
|
||||
|
|
Loading…
Reference in New Issue