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