summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJake Dahn <jake@ansolabs.com>2011-08-05 14:37:44 -0700
committerJake Dahn <jake@ansolabs.com>2011-08-05 14:37:44 -0700
commit09772f5bf3140a6f4cbaace50ead8d25a874cbb0 (patch)
tree38d91e79e04aa97b70fcf5b1c2608d73249d9b88 /nova/api
parent429b42f9fdec768a4a63ed8c2d7a92f130f90f0d (diff)
downloadnova-09772f5bf3140a6f4cbaace50ead8d25a874cbb0.tar.gz
nova-09772f5bf3140a6f4cbaace50ead8d25a874cbb0.tar.xz
nova-09772f5bf3140a6f4cbaace50ead8d25a874cbb0.zip
If ip is deallocated from project, but attached to a fixed ip, it is now detached
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/contrib/floating_ips.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/nova/api/openstack/contrib/floating_ips.py b/nova/api/openstack/contrib/floating_ips.py
index 3d8049324..616388e80 100644
--- a/nova/api/openstack/contrib/floating_ips.py
+++ b/nova/api/openstack/contrib/floating_ips.py
@@ -97,8 +97,13 @@ class FloatingIPController(object):
def delete(self, req, id):
context = req.environ['nova.context']
-
ip = self.network_api.get_floating_ip(context, id)
+ try:
+ if 'fixed_ip' in ip:
+ self.disassociate(req, id, '')
+ except:
+ pass
+
self.network_api.release_floating_ip(context, address=ip)
return {'released': {