API: Mapping ConsoleTypeInvalid exception to HTTPBadRequest
We need to catch up ConsoleTypeInvalid in API layer to avoid 500 error in case we passed invalid console type (> v2.6). Closes-Bug: #1551104 Change-Id: I8be6dd1efd9057fb582713e0fe9fe0d626832fda
This commit is contained in:
@@ -178,7 +178,8 @@ class RemoteConsolesController(wsgi.Controller):
|
||||
raise webob.exc.HTTPNotFound(explanation=e.format_message())
|
||||
except exception.InstanceNotReady as e:
|
||||
raise webob.exc.HTTPConflict(explanation=e.format_message())
|
||||
except (exception.ConsoleTypeUnavailable,
|
||||
except (exception.ConsoleTypeInvalid,
|
||||
exception.ConsoleTypeUnavailable,
|
||||
exception.ImageSerialPortNumberInvalid,
|
||||
exception.ImageSerialPortNumberExceedFlavorValue,
|
||||
exception.SocketPortRangeExhaustedException) as e:
|
||||
|
||||
@@ -572,6 +572,16 @@ class ConsolesExtensionTestV26(test.NoDBTestCase):
|
||||
self.assertRaises(webob.exc.HTTPBadRequest, self.controller.create,
|
||||
self.req, fakes.FAKE_UUID, body=body)
|
||||
|
||||
@mock.patch.object(compute_api.API, 'get', return_value='fake_instance')
|
||||
def test_create_console_invalid_type(self, mock_get):
|
||||
mock_handler = mock.MagicMock()
|
||||
mock_handler.side_effect = (
|
||||
exception.ConsoleTypeInvalid(console_type='invalid_type'))
|
||||
self.controller.handlers['serial'] = mock_handler
|
||||
body = {'remote_console': {'protocol': 'serial', 'type': 'xvpvnc'}}
|
||||
self.assertRaises(webob.exc.HTTPBadRequest, self.controller.create,
|
||||
self.req, fakes.FAKE_UUID, body=body)
|
||||
|
||||
|
||||
class ConsolesExtensionTestV28(ConsolesExtensionTestV26):
|
||||
def setUp(self):
|
||||
|
||||
Reference in New Issue
Block a user