Merge "Quota violations should not cause a stacktrace in the logs"

This commit is contained in:
Jenkins
2013-12-10 18:54:38 +00:00
committed by Gerrit Code Review
6 changed files with 18 additions and 2 deletions

View File

@@ -137,6 +137,10 @@ class AdminActionsController(wsgi.Controller):
try:
instance = self.compute_api.get(context, id, want_objects=True)
self.compute_api.resize(req.environ['nova.context'], instance)
except exception.QuotaError as error:
raise exc.HTTPRequestEntityTooLarge(
explanation=error.format_message(),
headers={'Retry-After': 0})
except exception.InstanceIsLocked as e:
raise exc.HTTPConflict(explanation=e.format_message())
except exception.InstanceInvalidState as state_error:

View File

@@ -124,6 +124,10 @@ class AdminActionsController(wsgi.Controller):
try:
instance = self.compute_api.get(context, id, want_objects=True)
self.compute_api.resize(req.environ['nova.context'], instance)
except exception.QuotaError as error:
raise exc.HTTPRequestEntityTooLarge(
explanation=error.format_message(),
headers={'Retry-After': 0})
except exception.InstanceIsLocked as e:
raise exc.HTTPConflict(explanation=e.format_message())
except exception.InstanceInvalidState as state_error:

View File

@@ -1004,6 +1004,10 @@ class ServersController(wsgi.Controller):
try:
self.compute_api.resize(context, instance, flavor_id, **kwargs)
except exception.QuotaError as error:
raise exc.HTTPRequestEntityTooLarge(
explanation=error.format_message(),
headers={'Retry-After': 0})
except exception.FlavorNotFound:
msg = _("Unable to locate requested flavor.")
raise exc.HTTPBadRequest(explanation=msg)

View File

@@ -1136,6 +1136,10 @@ class Controller(wsgi.Controller):
try:
self.compute_api.resize(context, instance, flavor_id, **kwargs)
except exception.QuotaError as error:
raise exc.HTTPRequestEntityTooLarge(
explanation=error.format_message(),
headers={'Retry-After': 0})
except exception.FlavorNotFound:
msg = _("Unable to locate requested flavor.")
raise exc.HTTPBadRequest(explanation=msg)

View File

@@ -567,7 +567,7 @@ class ServerActionsControllerTest(test.TestCase):
self.stubs.Set(compute_api.API, 'resize', fake_resize)
req = fakes.HTTPRequestV3.blank(self.url)
self.assertRaises(exception.TooManyInstances,
self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
self.controller._action_resize,
req, FAKE_UUID, body)

View File

@@ -685,7 +685,7 @@ class ServerActionsControllerTest(test.TestCase):
self.stubs.Set(compute_api.API, 'resize', fake_resize)
req = fakes.HTTPRequest.blank(self.url)
self.assertRaises(exception.TooManyInstances,
self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
self.controller._action_resize,
req, FAKE_UUID, body)