diff --git a/nova/api/openstack/compute/contrib/admin_actions.py b/nova/api/openstack/compute/contrib/admin_actions.py index 9ead1d1ef393..03c42ac973ac 100644 --- a/nova/api/openstack/compute/contrib/admin_actions.py +++ b/nova/api/openstack/compute/contrib/admin_actions.py @@ -219,11 +219,7 @@ class AdminActionsController(wsgi.Controller): """ context = req.environ["nova.context"] authorize(context, 'createBackup') - - try: - entity = body["createBackup"] - except (KeyError, TypeError): - raise exc.HTTPBadRequest(_("Malformed request body")) + entity = body["createBackup"] try: image_name = entity["name"] diff --git a/nova/api/openstack/compute/plugins/v3/admin_actions.py b/nova/api/openstack/compute/plugins/v3/admin_actions.py index 2089dff242ae..a83e159dda53 100644 --- a/nova/api/openstack/compute/plugins/v3/admin_actions.py +++ b/nova/api/openstack/compute/plugins/v3/admin_actions.py @@ -210,11 +210,7 @@ class AdminActionsController(wsgi.Controller): """ context = req.environ["nova.context"] authorize(context, 'create_backup') - - try: - entity = body["create_backup"] - except (KeyError, TypeError): - raise exc.HTTPBadRequest(_("Malformed request body")) + entity = body["create_backup"] try: image_name = entity["name"] diff --git a/nova/tests/api/openstack/compute/contrib/test_admin_actions.py b/nova/tests/api/openstack/compute/contrib/test_admin_actions.py index 30a0767a9b50..373bf283a38d 100644 --- a/nova/tests/api/openstack/compute/contrib/test_admin_actions.py +++ b/nova/tests/api/openstack/compute/contrib/test_admin_actions.py @@ -433,6 +433,17 @@ class CreateBackupTests(CommonMixin, test.NoDBTestCase): self._test_non_existing_instance('createBackup', body_map=body_map) + def test_create_backup_with_invalid_createBackup(self): + body = { + 'createBackupup': { + 'name': 'Backup 1', + 'backup_type': 'daily', + 'rotation': 1, + }, + } + res = self._make_request(self._make_url('fake'), body) + self.assertEqual(400, res.status_int) + class ResetStateTests(test.NoDBTestCase): def setUp(self): diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_admin_actions.py b/nova/tests/api/openstack/compute/plugins/v3/test_admin_actions.py index 972ebe0b5f90..2431837dd15a 100644 --- a/nova/tests/api/openstack/compute/plugins/v3/test_admin_actions.py +++ b/nova/tests/api/openstack/compute/plugins/v3/test_admin_actions.py @@ -490,6 +490,17 @@ class CreateBackupTests(CommonMixin, test.NoDBTestCase): self._test_non_existing_instance('create_backup', body_map=body_map) + def test_create_backup_with_invalid_create_backup(self): + body = { + 'create_backupup': { + 'name': 'Backup 1', + 'backup_type': 'daily', + 'rotation': 1, + }, + } + res = self._make_request(self._make_url('fake'), body) + self.assertEqual(400, res.status_int) + class ResetStateTests(test.NoDBTestCase): def setUp(self):