From: Salvatore Orlando Date: Mon, 10 Mar 2014 20:42:58 +0000 (-0700) Subject: Optimize floating IP status update X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=31f051a0349a40fe629a7bb5ce0ea683aa28a659;p=openstack-build%2Fneutron-build.git Optimize floating IP status update Hopefully also avoid tracebacks due to nested transactions being rolled back Change-Id: I1e74fb8d90de09b53d330f499b93073f19a5b9bf Closes-Bug: #1290549 --- diff --git a/neutron/db/l3_db.py b/neutron/db/l3_db.py index 07b062723..e2ada9c0e 100644 --- a/neutron/db/l3_db.py +++ b/neutron/db/l3_db.py @@ -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)