From: Kaiwei Fan Date: Fri, 27 Sep 2013 06:49:15 +0000 (-0700) Subject: Reverse the order of interface update and DNAT rule config X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=5dcbddf516750e21359c859f8da0ab829f67d3f9;p=openstack-build%2Fneutron-build.git Reverse the order of interface update and DNAT rule config Configure DNAT rule first before adding floating ip address to interface so advanced service router will not receive packets by accident before DNAT rule configured. Verified that traffic goes to the VM the created floating ip associated with right after config. Change-Id: I415d1138511f41c209f1f2a9c2f12c2cfd3d16f0 Closes-Bug: #1229548 --- diff --git a/neutron/plugins/nicira/NeutronServicePlugin.py b/neutron/plugins/nicira/NeutronServicePlugin.py index 9e030469b..e5388717e 100644 --- a/neutron/plugins/nicira/NeutronServicePlugin.py +++ b/neutron/plugins/nicira/NeutronServicePlugin.py @@ -695,8 +695,8 @@ class NvpAdvancedPlugin(sr_db.ServiceRouter_mixin, router = self._get_router(context, router_id) # TODO(fank): do rollback on error, or have a dedicated thread # do sync work (rollback, re-configure, or make router down) - self._update_interface(context, router) self._update_nat_rules(context, router) + self._update_interface(context, router) return fip def update_floatingip(self, context, id, floatingip): @@ -707,8 +707,8 @@ class NvpAdvancedPlugin(sr_db.ServiceRouter_mixin, router = self._get_router(context, router_id) # TODO(fank): do rollback on error, or have a dedicated thread # do sync work (rollback, re-configure, or make router down) - self._update_interface(context, router) self._update_nat_rules(context, router) + self._update_interface(context, router) return fip def delete_floatingip(self, context, id):