]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Persist updated expiration time
authorStephen Gran <stephen.gran@guardian.co.uk>
Wed, 6 Feb 2013 14:57:57 +0000 (14:57 +0000)
committerStephen Gran <stephen.gran@guardian.co.uk>
Wed, 13 Feb 2013 19:03:53 +0000 (19:03 +0000)
Without creating a subtransaction, the database query wasn't actually
being run and the data was being lost.  This resulted in the case that
on termination of long running VMs, the VM IP address was immediately
available for reuse instead of being held as it should have been.

Fixes: bug #1116500
Change-Id: I7774273b8e799d945c27329e9da2dba34e39fdb8
Signed-off-by: Stephen Gran <stephen.gran@guardian.co.uk>
quantum/db/db_base_plugin_v2.py

index 80db8cff2886955cf7374966efd53a990945a0f2..8960629ee155295e9ceb71e01fc0b4e2c33b98bd 100644 (file)
@@ -394,8 +394,9 @@ class QuantumDbPluginV2(quantum_plugin_base_v2.QuantumPluginBaseV2):
         query = query.filter_by(network_id=network_id, ip_address=ip_address)
 
         try:
-            fixed_ip = query.one()
-            fixed_ip.expiration = expiration
+            with context.session.begin(subtransactions=True):
+                fixed_ip = query.one()
+                fixed_ip.expiration = expiration
         except exc.NoResultFound:
             LOG.debug(_("No fixed IP found that matches the network "
                         "%(network_id)s and ip address %(ip_address)s."),