summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@yahoo.com>2010-09-12 18:06:59 -0700
committerVishvananda Ishaya <vishvananda@yahoo.com>2010-09-12 18:06:59 -0700
commit3f9118b2ae025cd707642b179fe58459dd39dbc3 (patch)
tree774462420117d4d13fdb5a2c9147b82b2f93275e
parentcb2a28d82210e43a221a8fa8f2a03a7dbd6e8779 (diff)
downloadnova-3f9118b2ae025cd707642b179fe58459dd39dbc3.tar.gz
nova-3f9118b2ae025cd707642b179fe58459dd39dbc3.tar.xz
nova-3f9118b2ae025cd707642b179fe58459dd39dbc3.zip
set leased = 0 as well on disassociate update
-rw-r--r--nova/db/sqlalchemy/api.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index ca5e12f95..b4b68fa02 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -252,16 +252,17 @@ def fixed_ip_disassociate_all_by_timeout(_context, host, time):
# table. It would be great if we can coax sqlalchemy into
# generating this update for us without having to update
# each fixed_ip individually.
- result = session.execute('UPDATE fixed_ips SET instance_id = NULL '
+ result = session.execute('UPDATE fixed_ips SET instance_id = NULL, '
+ 'leased = 0 '
'WHERE id IN (SELECT x.id FROM '
- '(SELECT fixed_ips.id FROM fixed_ips '
- 'INNER JOIN networks '
- 'ON fixed_ips.network_id = '
- 'networks.id '
- 'WHERE networks.host = :host '
- 'AND fixed_ip.updated_at < :time '
- 'AND fixed_ip.instance_id IS NOT NULL'
- 'AND fixed_ip.allocated = 0) as x) ',
+ '(SELECT fixed_ips.id FROM fixed_ips '
+ 'INNER JOIN networks '
+ 'ON fixed_ips.network_id = '
+ 'networks.id '
+ 'WHERE networks.host = :host '
+ 'AND fixed_ip.updated_at < :time '
+ 'AND fixed_ip.instance_id IS NOT NULL'
+ 'AND fixed_ip.allocated = 0) as x) ',
{'host': host,
'time': time.isoformat()})
return result.rowcount