diff --git a/nova/api/openstack/compute/plugins/v3/servers.py b/nova/api/openstack/compute/plugins/v3/servers.py index ac78ee1e8ff3..100955694186 100644 --- a/nova/api/openstack/compute/plugins/v3/servers.py +++ b/nova/api/openstack/compute/plugins/v3/servers.py @@ -429,7 +429,7 @@ class ServersController(wsgi.Controller): req.cache_db_instance(instance) return self._view_builder.show(req, instance) - @extensions.expected_errors((400, 409, 413)) + @extensions.expected_errors((400, 403, 409, 413)) @wsgi.response(202) @validation.schema(schema_server_create) def create(self, req, body): @@ -509,7 +509,7 @@ class ServersController(wsgi.Controller): **create_kwargs) except (exception.QuotaError, exception.PortLimitExceeded) as error: - raise exc.HTTPRequestEntityTooLarge( + raise exc.HTTPForbidden( explanation=error.format_message(), headers={'Retry-After': 0}) except exception.InvalidMetadataSize as error: @@ -728,7 +728,7 @@ class ServersController(wsgi.Controller): try: self.compute_api.resize(context, instance, flavor_id, **kwargs) except exception.QuotaError as error: - raise exc.HTTPRequestEntityTooLarge( + raise exc.HTTPForbidden( explanation=error.format_message(), headers={'Retry-After': 0}) except exception.FlavorNotFound: @@ -810,7 +810,7 @@ class ServersController(wsgi.Controller): return common.get_id_from_href(flavor_ref) - @extensions.expected_errors((400, 401, 404, 409, 413)) + @extensions.expected_errors((400, 401, 403, 404, 409)) @wsgi.response(202) @wsgi.action('resize') def _action_resize(self, req, id, body): diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index c5cc30b0a678..9cb0fce03505 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -957,7 +957,7 @@ class Controller(wsgi.Controller): legacy_bdm=legacy_bdm) except (exception.QuotaError, exception.PortLimitExceeded) as error: - raise exc.HTTPRequestEntityTooLarge( + raise exc.HTTPForbidden( explanation=error.format_message(), headers={'Retry-After': 0}) except exception.InvalidMetadataSize as error: @@ -1166,7 +1166,7 @@ class Controller(wsgi.Controller): try: self.compute_api.resize(context, instance, flavor_id, **kwargs) except exception.QuotaError as error: - raise exc.HTTPRequestEntityTooLarge( + raise exc.HTTPForbidden( explanation=error.format_message(), headers={'Retry-After': 0}) except exception.FlavorNotFound: diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_server_actions.py b/nova/tests/api/openstack/compute/plugins/v3/test_server_actions.py index d4bd9369ed4f..7b1e98638c5f 100644 --- a/nova/tests/api/openstack/compute/plugins/v3/test_server_actions.py +++ b/nova/tests/api/openstack/compute/plugins/v3/test_server_actions.py @@ -676,7 +676,7 @@ class ServerActionsControllerTest(test.TestCase): self.stubs.Set(compute_api.API, 'resize', fake_resize) req = fakes.HTTPRequestV3.blank(self.url) - self.assertRaises(webob.exc.HTTPRequestEntityTooLarge, + self.assertRaises(webob.exc.HTTPForbidden, self.controller._action_resize, req, FAKE_UUID, body) diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_servers.py b/nova/tests/api/openstack/compute/plugins/v3/test_servers.py index b46c37a9d289..ff3436babdce 100644 --- a/nova/tests/api/openstack/compute/plugins/v3/test_servers.py +++ b/nova/tests/api/openstack/compute/plugins/v3/test_servers.py @@ -2267,7 +2267,7 @@ class ServersControllerCreateTest(test.TestCase): self.body['server']['image_ref'] = image_href self.body['server']['metadata']['vote'] = 'fiddletown' self.req.body = jsonutils.dumps(self.body) - self.assertRaises(webob.exc.HTTPRequestEntityTooLarge, + self.assertRaises(webob.exc.HTTPForbidden, self.controller.create, self.req, body=self.body) def test_create_instance_metadata_key_too_long(self): @@ -2431,7 +2431,7 @@ class ServersControllerCreateTest(test.TestCase): try: self.controller.create(self.req, body=self.body).obj['server'] self.fail('expected quota to be exceeded') - except webob.exc.HTTPRequestEntityTooLarge as e: + except webob.exc.HTTPForbidden as e: self.assertEqual(e.explanation, expected_msg) def test_create_instance_above_quota_instances(self): diff --git a/nova/tests/api/openstack/compute/test_server_actions.py b/nova/tests/api/openstack/compute/test_server_actions.py index ec4268629866..628a5af424ea 100644 --- a/nova/tests/api/openstack/compute/test_server_actions.py +++ b/nova/tests/api/openstack/compute/test_server_actions.py @@ -861,7 +861,7 @@ class ServerActionsControllerTest(test.TestCase): self.stubs.Set(compute_api.API, 'resize', fake_resize) req = fakes.HTTPRequest.blank(self.url) - self.assertRaises(webob.exc.HTTPRequestEntityTooLarge, + self.assertRaises(webob.exc.HTTPForbidden, self.controller._action_resize, req, FAKE_UUID, body) diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py index 0edab4760a6a..090315cf3ad6 100644 --- a/nova/tests/api/openstack/compute/test_servers.py +++ b/nova/tests/api/openstack/compute/test_servers.py @@ -2317,7 +2317,7 @@ class ServersControllerCreateTest(test.TestCase): self.body['server']['imageRef'] = image_href self.body['server']['metadata']['vote'] = 'fiddletown' self.req.body = jsonutils.dumps(self.body) - self.assertRaises(webob.exc.HTTPRequestEntityTooLarge, + self.assertRaises(webob.exc.HTTPForbidden, self.controller.create, self.req, self.body) def test_create_instance_metadata_key_too_long(self): @@ -3263,7 +3263,7 @@ class ServersControllerCreateTest(test.TestCase): try: self.controller.create(self.req, self.body).obj['server'] self.fail('expected quota to be exceeded') - except webob.exc.HTTPRequestEntityTooLarge as e: + except webob.exc.HTTPForbidden as e: self.assertEqual(e.explanation, expected_msg) def test_create_instance_above_quota_instances(self):