From aa88bba67ca403dc29eb9fa1a61dcea4b3025029 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Mon, 29 Jul 2013 14:41:06 +0800 Subject: [PATCH] Add expected_errors for extension console_output v3 Partially implements bp v3-api-extension-versioning Change-Id: Ibb25c3e853f83c2dae35a5ba34e193a639b53ab1 --- .../api/openstack/compute/plugins/v3/console_output.py | 8 +++----- .../compute/plugins/v3/test_console_output.py | 10 +--------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/nova/api/openstack/compute/plugins/v3/console_output.py b/nova/api/openstack/compute/plugins/v3/console_output.py index 1166aced66b7..341b787e9199 100644 --- a/nova/api/openstack/compute/plugins/v3/console_output.py +++ b/nova/api/openstack/compute/plugins/v3/console_output.py @@ -33,8 +33,8 @@ class ConsoleOutputController(wsgi.Controller): super(ConsoleOutputController, self).__init__(*args, **kwargs) self.compute_api = compute.API() + @extensions.expected_errors((400, 404, 409)) @wsgi.action('get_console_output') - @wsgi.response(200) def get_console_output(self, req, id, body): """Get text console output.""" context = req.environ['nova.context'] @@ -42,8 +42,8 @@ class ConsoleOutputController(wsgi.Controller): try: instance = self.compute_api.get(context, id) - except exception.NotFound: - raise webob.exc.HTTPNotFound(_('Instance not found')) + except exception.InstanceNotFound as e: + raise webob.exc.HTTPNotFound(explanation=e.format_message()) try: length = body['get_console_output'].get('length') @@ -66,8 +66,6 @@ class ConsoleOutputController(wsgi.Controller): output = self.compute_api.get_console_output(context, instance, length) - except exception.NotFound: - raise webob.exc.HTTPNotFound(_('Unable to get console')) except exception.InstanceNotReady as e: raise webob.exc.HTTPConflict(explanation=e.format_message()) diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_console_output.py b/nova/tests/api/openstack/compute/plugins/v3/test_console_output.py index 82ab36d8ea4b..77421ad6cd55 100644 --- a/nova/tests/api/openstack/compute/plugins/v3/test_console_output.py +++ b/nova/tests/api/openstack/compute/plugins/v3/test_console_output.py @@ -49,7 +49,7 @@ def fake_get(self, context, instance_uuid): def fake_get_not_found(*args, **kwargs): - raise exception.NotFound() + raise exception.InstanceNotFound(instance_id='') class ConsoleOutputExtensionTest(test.TestCase): @@ -117,14 +117,6 @@ class ConsoleOutputExtensionTest(test.TestCase): res = req.get_response(self.app) self.assertEqual(res.status_int, 404) - def test_get_text_console_no_instance_on_get_output(self): - self.stubs.Set(compute_api.API, - 'get_console_output', - fake_get_not_found) - req = self._create_request(length_dict={}) - res = req.get_response(self.app) - self.assertEqual(res.status_int, 404) - def test_get_text_console_bad_body(self): body = {} req = fakes.HTTPRequestV3.blank('/v3/servers/1/action')