]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Reverse the order of interface update and DNAT rule config
authorKaiwei Fan <fank@vmware.com>
Fri, 27 Sep 2013 06:49:15 +0000 (23:49 -0700)
committerKaiwei Fan <fank@vmware.com>
Fri, 27 Sep 2013 06:57:07 +0000 (23:57 -0700)
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

neutron/plugins/nicira/NeutronServicePlugin.py

index 9e030469bf7875af4c0541d9b1ed6a4964543c64..e5388717e8db28a4427199450056482620dab6b6 100644 (file)
@@ -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):