]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
DVR: Optimize getting arp entry info
authorDongcan Ye <hellochosen@gmail.com>
Tue, 12 Jan 2016 12:42:01 +0000 (20:42 +0800)
committerDongcan Ye <hellochosen@gmail.com>
Mon, 18 Jan 2016 04:59:35 +0000 (12:59 +0800)
Grab duplicated code in add_arp_entry and del_arp_entry.

Change-Id: I579d66ec734627dec08df6fba750a3e237600a5c

neutron/agent/l3/dvr.py

index 6045d02224b62dc8b5dc0bc01c709e950b6fc2fd..bb4c1a43a5857c829440a0a96bb2ba0fa920c317 100644 (file)
@@ -49,8 +49,7 @@ class AgentMixin(object):
     def get_ports_by_subnet(self, subnet_id):
         return self.plugin_rpc.get_ports_by_subnet(self.context, subnet_id)
 
-    def add_arp_entry(self, context, payload):
-        """Add arp entry into router namespace.  Called from RPC."""
+    def _update_arp_entry(self, context, payload, action):
         router_id = payload['router_id']
         ri = self.router_info.get(router_id)
         if not ri:
@@ -60,20 +59,16 @@ class AgentMixin(object):
         ip = arp_table['ip_address']
         mac = arp_table['mac_address']
         subnet_id = arp_table['subnet_id']
-        ri._update_arp_entry(ip, mac, subnet_id, 'add')
+
+        ri._update_arp_entry(ip, mac, subnet_id, action)
+
+    def add_arp_entry(self, context, payload):
+        """Add arp entry into router namespace.  Called from RPC."""
+        self._update_arp_entry(context, payload, 'add')
 
     def del_arp_entry(self, context, payload):
         """Delete arp entry from router namespace.  Called from RPC."""
-        router_id = payload['router_id']
-        ri = self.router_info.get(router_id)
-        if not ri:
-            return
-
-        arp_table = payload['arp_table']
-        ip = arp_table['ip_address']
-        mac = arp_table['mac_address']
-        subnet_id = arp_table['subnet_id']
-        ri._update_arp_entry(ip, mac, subnet_id, 'delete')
+        self._update_arp_entry(context, payload, 'delete')
 
     def fipnamespace_delete_on_ext_net(self, context, ext_net_id):
         """Delete fip namespace after external network removed."""