From b1bd80bb087c37846edfd598d20eee5151788ddd Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Tue, 20 Dec 2011 17:24:13 -0500 Subject: Fix one last bug in os-console-output extension Actually fixes bug 907083 Change-Id: Ia57d316db0c79d7e78ef3225e77cd95589ac68de --- nova/api/openstack/v2/contrib/console_output.py | 8 +++++--- nova/tests/api/openstack/v2/contrib/test_console_output.py | 6 +++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/nova/api/openstack/v2/contrib/console_output.py b/nova/api/openstack/v2/contrib/console_output.py index 3d75d5d6b..9aae769a3 100644 --- a/nova/api/openstack/v2/contrib/console_output.py +++ b/nova/api/openstack/v2/contrib/console_output.py @@ -54,14 +54,16 @@ class Console_output(extensions.ExtensionDescriptor): raise webob.exc.HTTPBadRequest(_('Malformed request body')) try: - return self.compute_api.get_console_output(context, - instance, - length) + output = self.compute_api.get_console_output(context, + instance, + length) except exception.ApiError, e: raise webob.exc.HTTPBadRequest(explanation=e.message) except exception.NotAuthorized, e: raise webob.exc.HTTPUnauthorized() + return {'output': output} + def get_actions(self): """Return the actions the extension adds, as required by contract.""" actions = [extensions.ActionExtension("servers", "os-getConsoleOutput", diff --git a/nova/tests/api/openstack/v2/contrib/test_console_output.py b/nova/tests/api/openstack/v2/contrib/test_console_output.py index bfb734f80..0fae967eb 100644 --- a/nova/tests/api/openstack/v2/contrib/test_console_output.py +++ b/nova/tests/api/openstack/v2/contrib/test_console_output.py @@ -24,7 +24,7 @@ from nova.tests.api.openstack import fakes def fake_get_console_output(self, _context, _instance, tail_length): - fixture = [str(i) for i in range(10)] + fixture = [str(i) for i in range(5)] if tail_length is None: pass @@ -60,7 +60,9 @@ class ConsoleOutputExtensionTest(test.TestCase): req.headers["content-type"] = "application/json" res = req.get_response(fakes.wsgi_app()) + output = json.loads(res.body) self.assertEqual(res.status_int, 200) + self.assertEqual(output, {'output': '0\n1\n2\n3\n4'}) def test_get_console_output_with_tail(self): body = {'os-getConsoleOutput': {'length': 3}} @@ -69,7 +71,9 @@ class ConsoleOutputExtensionTest(test.TestCase): req.body = json.dumps(body) req.headers["content-type"] = "application/json" res = req.get_response(fakes.wsgi_app()) + output = json.loads(res.body) self.assertEqual(res.status_int, 200) + self.assertEqual(output, {'output': '2\n3\n4'}) def test_get_text_console_no_instance(self): self.stubs.Set(compute.API, 'get', fake_get_not_found) -- cgit