From ebc05b803615b78a14008136bb549a41013e6cd1 Mon Sep 17 00:00:00 2001 From: Eoghan Glynn Date: Thu, 19 Jul 2012 16:19:49 +0100 Subject: Allow NoMoreFloatingIps to bubble up to FaultWrapper Fixes LP 1026167. The fix for LP 1021721 caught the wrong exception in order to address floating IP quota over-run. NoMoreFloatingIps is raised when the floating range is exhausted, whereas FloatingIpLimitExceeded is raised on over-quota. Also the HTTPRequestEntityTooLarge exception raised is mapped to 500 Server Error due to the required retry-after header being left unset. We now allow the NoMoreFloatingIps to bubble up to the FaultWrapper middleware, where its mapped to a 404 status due to it extending the NotFound exception. Change-Id: Id35c487113059ec3053f2f9e9e7eca24854ac02c --- nova/api/openstack/compute/contrib/floating_ips.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'nova/api') diff --git a/nova/api/openstack/compute/contrib/floating_ips.py b/nova/api/openstack/compute/contrib/floating_ips.py index df25e4fd2..b6a6adc9e 100644 --- a/nova/api/openstack/compute/contrib/floating_ips.py +++ b/nova/api/openstack/compute/contrib/floating_ips.py @@ -169,12 +169,12 @@ class FloatingIPController(object): try: address = self.network_api.allocate_floating_ip(context, pool) ip = self.network_api.get_floating_ip_by_address(context, address) - except exception.NoMoreFloatingIps: + except exception.NoMoreFloatingIps, nmfi: if pool: - msg = _("No more floating ips in pool %s.") % pool + nmfi.message = _("No more floating ips in pool %s.") % pool else: - msg = _("No more floating ips available.") - raise webob.exc.HTTPRequestEntityTooLarge(explanation=msg) + nmfi.message = _("No more floating ips available.") + raise nmfi return _translate_floating_ip_view(ip) -- cgit