From: Eugene Nikanorov Date: Fri, 12 Sep 2014 05:05:39 +0000 (+0400) Subject: Properly handle empty before/after notifications in l2pop code X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=c5ae5ad2637a561ccbc7484045e99d8140822b8d;p=openstack-build%2Fneutron-build.git Properly handle empty before/after notifications in l2pop code Change-Id: I8644bb7cc2afb3b181397a478f96927990c0a4ca Closes-Bug: #1367881 --- diff --git a/neutron/agent/l2population_rpc.py b/neutron/agent/l2population_rpc.py index 93f6395dd..4a485c4ce 100644 --- a/neutron/agent/l2population_rpc.py +++ b/neutron/agent/l2population_rpc.py @@ -246,12 +246,12 @@ class L2populationRpcCallBackTunnelMixin(L2populationRpcCallBackMixin): if agent_ip == local_ip: continue - after = state.get('after') + after = state.get('after', []) for mac, ip in after: self.setup_entry_for_arp_reply(br, 'add', lvm.vlan, mac, ip) - before = state.get('before') + before = state.get('before', []) for mac, ip in before: self.setup_entry_for_arp_reply(br, 'remove', lvm.vlan, mac, ip) diff --git a/neutron/tests/unit/agent/test_l2population_rpc.py b/neutron/tests/unit/agent/test_l2population_rpc.py index 7b1e05344..563c53b19 100644 --- a/neutron/tests/unit/agent/test_l2population_rpc.py +++ b/neutron/tests/unit/agent/test_l2population_rpc.py @@ -234,3 +234,17 @@ class TestL2populationRpcCallBackTunnelMixin( upd_fdb_entry_val, self.local_ip, self.local_vlan_map1) self.assertFalse(m_setup_entry_for_arp_reply.call_count) + + def test_fdb_chg_ip_tun_empty_before_after(self): + upd_fdb_entry_val = { + self.lvms[0].net: { + self.local_ip: {}, + }, + } + m_setup_entry_for_arp_reply = mock.Mock() + self.fakeagent.setup_entry_for_arp_reply = m_setup_entry_for_arp_reply + # passing non-local ip + self.fakeagent.fdb_chg_ip_tun('context', self.fakebr, + upd_fdb_entry_val, "8.8.8.8", + self.local_vlan_map1) + self.assertFalse(m_setup_entry_for_arp_reply.call_count)