Revision ec4e0acc
b/snf-cyclades-app/synnefo/logic/reconciliation.py | ||
---|---|---|
568 | 568 |
ip_pool.reserve(ip, external=True) |
569 | 569 |
ip_pool.save() |
570 | 570 |
self.log.info("F: Reserved IP '%s'", ip) |
571 |
if network.state != "ACTIVE": |
|
572 |
network = Network.objects.select_for_update().get(id=network.id) |
|
573 |
backend_mod.update_network_state(network) |
|
571 | 574 |
|
572 | 575 |
def reconcile_parted_network(self, network, backend): |
573 | 576 |
self.log.info("D: Missing DB entry for network %s in backend %s", |
... | ... | |
677 | 680 |
self.log.info("There is no available pool for bridges.") |
678 | 681 |
return |
679 | 682 |
|
683 |
# Since pool is locked, no new networks may be created |
|
680 | 684 |
used_bridges = set(networks.values_list('link', flat=True)) |
681 | 685 |
check_pool_consistent(pool=pool, pool_class=pools.BridgePool, |
682 | 686 |
used_values=used_bridges, fix=self.fix, |
... | ... | |
693 | 697 |
self.log.info("There is no available pool for MAC prefixes.") |
694 | 698 |
return |
695 | 699 |
|
700 |
# Since pool is locked, no new network may be created |
|
696 | 701 |
used_mac_prefixes = set(networks.values_list('mac_prefix', flat=True)) |
697 | 702 |
check_pool_consistent(pool=pool, pool_class=pools.MacPrefixPool, |
698 | 703 |
used_values=used_mac_prefixes, fix=self.fix, |
... | ... | |
705 | 710 |
check_unique_values(objects=nics, field="address", logger=self.log) |
706 | 711 |
|
707 | 712 |
for ip_pool in network.get_ip_pools(): |
713 |
# IP pool is now locked, so no new IPs may be created |
|
708 | 714 |
used_ips = ip_pool.pool_table.subnet\ |
709 | 715 |
.ips.exclude(address__isnull=True)\ |
710 | 716 |
.exclude(deleted=True)\ |
Also available in: Unified diff