Revision d7ff7f5a

b/snf-cyclades-app/synnefo/logic/backend.py
55 55

  
56 56
_reverse_tags = dict((v.split(':')[3], k) for k, v in _firewall_tags.items())
57 57

  
58
# Timeout in seconds for building NICs. After this period the NICs considered
59
# stale and removed from DB.
60
BUILDING_NIC_TIMEOUT = 180
58 61

  
59 62
NIC_FIELDS = ["state", "mac", "ipv4", "ipv6", "network", "firewall_profile"]
60 63

  
......
241 244
            # TODO: This is dangerous as the job may be stack in the queue, and
242 245
            # releasing the IP may lead to duplicate IP use.
243 246
            if nic.state != "BUILDING" or (nic.state == "BUILDING" and
244
               etime > nic.created + timedelta(minutes=5)):
247
               etime > nic.created + timedelta(seconds=BUILDING_NIC_TIMEOUT)):
245 248
                release_nic_address(nic)
246 249
                nic.delete()
247 250
            else:
b/snf-cyclades-app/synnefo/logic/reconciliation.py
61 61
import logging
62 62
import itertools
63 63
import bitarray
64
from datetime import datetime
64
from datetime import datetime, timedelta
65 65

  
66 66
from django.db import transaction
67 67
from synnefo.db.models import (Backend, VirtualMachine, Flavor,
......
285 285
                               server_id)
286 286

  
287 287
    def reconcile_unsynced_nics(self, server_id, db_server, gnt_server):
288
        db_nics = db_server.nics.order_by("index")
288
        building_time = (self.event_time -
289
                         timedelta(seconds=backend_mod.BUILDING_NIC_TIMEOUT))
290
        db_nics = db_server.nics.exclude(state="BUILDING",
291
                                         created__lte=building_time) \
292
                                .order_by("index")
289 293
        gnt_nics = gnt_server["nics"]
290 294
        gnt_nics_parsed = backend_mod.process_ganeti_nics(gnt_nics)
291 295
        nics_changed = len(db_nics) != len(gnt_nics)

Also available in: Unified diff