]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Optimize floating IP status update
authorSalvatore Orlando <salv.orlando@gmail.com>
Mon, 10 Mar 2014 20:42:58 +0000 (13:42 -0700)
committerAaron Rosen <aaronorosen@gmail.com>
Wed, 12 Mar 2014 00:10:37 +0000 (17:10 -0700)
Hopefully also avoid tracebacks due to nested transactions
being rolled back

Change-Id: I1e74fb8d90de09b53d330f499b93073f19a5b9bf
Closes-Bug: #1290549

neutron/db/l3_db.py

index 07b062723d1daadac2af3ceba28164ed996945a1..e2ada9c0e53d67f8684d6f193366f7f5155d7f3d 100644 (file)
@@ -677,10 +677,9 @@ class L3_NAT_db_mixin(l3.RouterPluginBase):
 
     def update_floatingip_status(self, context, floatingip_id, status):
         """Update operational status for floating IP in neutron DB."""
-        # TODO(salv-orlando): Optimize avoiding fetch before update
-        with context.session.begin(subtransactions=True):
-            floatingip_db = self._get_floatingip(context, floatingip_id)
-            floatingip_db['status'] = status
+        fip_query = self._model_query(context, FloatingIP).filter(
+            FloatingIP.id == floatingip_id)
+        fip_query.update({'status': status}, synchronize_session=False)
 
     def delete_floatingip(self, context, id):
         floatingip = self._get_floatingip(context, id)