Revision e21ac0fa snf-cyclades-app/synnefo/logic/ips.py
b/snf-cyclades-app/synnefo/logic/ips.py | ||
---|---|---|
37 | 37 |
from django.db import transaction |
38 | 38 |
from synnefo import quotas |
39 | 39 |
from synnefo.db import pools |
40 |
from synnefo.db.models import (IPPoolTable, IPAddress) |
|
40 |
from synnefo.db.models import (IPPoolTable, IPAddress, Network)
|
|
41 | 41 |
log = logging.getLogger(__name__) |
42 | 42 |
|
43 | 43 |
|
... | ... | |
204 | 204 |
msg = "Floating IP '%s' is attached to instance." % floating_ip.id |
205 | 205 |
raise faults.Conflict(msg) |
206 | 206 |
|
207 |
# Lock network to prevent deadlock |
|
208 |
Network.objects.select_for_update().get(id=floating_ip.network_id) |
|
209 |
|
|
207 | 210 |
# Return the address of the floating IP back to pool |
208 | 211 |
floating_ip.release_address() |
209 | 212 |
# And mark the floating IP as deleted |
Also available in: Unified diff