diff options
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/compute/contrib/console_output.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/nova/api/openstack/compute/contrib/console_output.py b/nova/api/openstack/compute/contrib/console_output.py index 7a16daec3..c29177a07 100644 --- a/nova/api/openstack/compute/contrib/console_output.py +++ b/nova/api/openstack/compute/contrib/console_output.py @@ -49,14 +49,22 @@ class ConsoleOutputController(wsgi.Controller): try: length = body['os-getConsoleOutput'].get('length') except (TypeError, KeyError): - raise webob.exc.HTTPBadRequest(_('Malformed request body')) + raise webob.exc.HTTPBadRequest(_('os-getConsoleOutput malformed or ' + 'missing from request body')) + + if length is not None: + try: + int(length) + except ValueError: + raise webob.exc.HTTPBadRequest(_('Length in request body must ' + 'be an integer value')) try: output = self.compute_api.get_console_output(context, instance, length) except exception.NotFound: - raise webob.exc.HTTPNotFound(_('Instance not found')) + raise webob.exc.HTTPNotFound(_('Unable to get console')) # XML output is not correctly escaped, so remove invalid characters remove_re = re.compile('[\x00-\x08\x0B-\x0C\x0E-\x1F]') @@ -64,7 +72,6 @@ class ConsoleOutputController(wsgi.Controller): return {'output': output} - class Console_output(extensions.ExtensionDescriptor): """Console log output support, with tailing ability.""" |
