Revision 40576cf5 snf-cyclades-app/synnefo/logic/backend.py
b/snf-cyclades-app/synnefo/logic/backend.py | ||
---|---|---|
241 | 241 |
""" |
242 | 242 |
ganeti_nics = process_ganeti_nics(nics) |
243 | 243 |
db_nics = dict([(nic.id, nic) |
244 |
for nic in vm.nics.prefetch_related("ips__subnet")]) |
|
244 |
for nic in vm.nics.select_related("network") |
|
245 |
.prefetch_related("ips")]) |
|
245 | 246 |
|
246 | 247 |
for nic_name in set(db_nics.keys()) | set(ganeti_nics.keys()): |
247 | 248 |
db_nic = db_nics.get(nic_name) |
... | ... | |
266 | 267 |
|
267 | 268 |
# Special case where the IPv4 address has changed, because you |
268 | 269 |
# need to release the old IPv4 address and reserve the new one |
269 |
ipv4_address = ganeti_nic["ipv4_address"] |
|
270 |
if db_nic.ipv4_address != ipv4_address: |
|
270 |
gnt_ipv4_address = ganeti_nic["ipv4_address"] |
|
271 |
db_ipv4_address = db_nic.ipv4_address |
|
272 |
if db_ipv4_address != gnt_ipv4_address: |
|
271 | 273 |
change_address_of_port(db_nic, vm.userid, |
272 |
old_address=db_nic.ipv4_address,
|
|
273 |
new_address=ipv4_address, |
|
274 |
old_address=db_ipv4_address, |
|
275 |
new_address=gnt_ipv4_address,
|
|
274 | 276 |
version=4) |
275 | 277 |
|
276 |
ipv6_address = ganeti_nic["ipv6_address"] |
|
277 |
if db_nic.ipv6_address != ipv6_address: |
|
278 |
gnt_ipv6_address = ganeti_nic["ipv6_address"] |
|
279 |
db_ipv6_address = db_nic.ipv6_address |
|
280 |
if db_ipv6_address != gnt_ipv6_address: |
|
278 | 281 |
change_address_of_port(db_nic, vm.userid, |
279 |
old_address=db_nic.ipv6_address,
|
|
280 |
new_address=ipv6_address, |
|
282 |
old_address=db_ipv6_address, |
|
283 |
new_address=gnt_ipv6_address,
|
|
281 | 284 |
version=6) |
282 | 285 |
|
283 | 286 |
vm.backendtime = etime |
Also available in: Unified diff