diff options
author | Dan Prince <dprince@redhat.com> | 2012-03-13 13:15:49 -0400 |
---|---|---|
committer | Dan Prince <dprince@redhat.com> | 2012-03-13 13:15:49 -0400 |
commit | f48f1bb72474e564f4f8b01da97730f612a868f9 (patch) | |
tree | e74128fae686c5f327f160e08de968c8129bac39 | |
parent | 094985ea657f590936906829486829846a558f05 (diff) | |
download | nova-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.py | 5 |
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()}, |