summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2012-03-13 13:15:49 -0400
committerDan Prince <dprince@redhat.com>2012-03-13 13:15:49 -0400
commitf48f1bb72474e564f4f8b01da97730f612a868f9 (patch)
treee74128fae686c5f327f160e08de968c8129bac39
parent094985ea657f590936906829486829846a558f05 (diff)
downloadnova-f48f1bb72474e564f4f8b01da97730f612a868f9.tar.gz
nova-f48f1bb72474e564f4f8b01da97730f612a868f9.tar.xz
nova-f48f1bb72474e564f4f8b01da97730f612a868f9.zip
Make fixed_ip_disassociate_all_by_timeout work.
Fix an issue in the SQL api where fixed_ip_disassociate_all_by_timeout was getting an array of tuples instead of IDs from a model_query. This should resolves issues where fixed IPs don't get dissassociated via the network managers periodic task. Fixes LP Bug #953708. Change-Id: Iac485cdcda072ee248237e6c4a31113685f5b980
-rw-r--r--nova/db/sqlalchemy/api.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 2136dbd6d..851d0733c 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -1015,16 +1015,17 @@ def fixed_ip_disassociate_all_by_timeout(context, host, time):
host_filter = or_(and_(models.Instance.host == host,
models.Network.multi_host == True),
models.Network.host == host)
- fixed_ips = model_query(context, models.FixedIp.id, session=session,
+ fixed_ips = model_query(context, models.FixedIp, session=session,
read_deleted="yes").\
filter(models.FixedIp.updated_at < time).\
filter(models.FixedIp.instance_id != None).\
filter(models.FixedIp.allocated == False).\
filter(host_filter).\
all()
+ fixed_ip_ids = [fip.id for fip in fixed_ips]
result = model_query(context, models.FixedIp, session=session,
read_deleted="yes").\
- filter(models.FixedIp.id.in_(fixed_ips)).\
+ filter(models.FixedIp.id.in_(fixed_ip_ids)).\
update({'instance_id': None,
'leased': False,
'updated_at': utils.utcnow()},