From: Eugene Nikanorov Date: Mon, 23 Mar 2015 03:51:06 +0000 (+0400) Subject: Fix handling of before/after notifications in linuxbridge agent X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=cd4d2f03e83c326f849a0b18a666a406087c94e7;p=openstack-build%2Fneutron-build.git Fix handling of before/after notifications in linuxbridge agent Avoid problem similar to described in bug #1367881 Change-Id: I76059469c20be9161743ba730e46da1789ded4a8 Closes-Bug: #1407887 Related-Bug: #1367881 --- diff --git a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py old mode 100755 new mode 100644 index 8794dddd4..50cab5dc1 --- a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py +++ b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py @@ -722,11 +722,11 @@ class LinuxBridgeRpcCallbacks(sg_rpc.SecurityGroupAgentRpcCallbackMixin, if agent_ip == self.agent.br_mgr.local_ip: continue - after = state.get('after') + after = state.get('after', []) for mac, ip in after: self.agent.br_mgr.add_fdb_ip_entry(mac, ip, interface) - before = state.get('before') + before = state.get('before', []) for mac, ip in before: self.agent.br_mgr.remove_fdb_ip_entry(mac, ip, interface) diff --git a/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py b/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py index c90317086..c80ee67e9 100644 --- a/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py +++ b/neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py @@ -1059,3 +1059,7 @@ class TestLinuxBridgeRpcCallbacks(base.BaseTestCase): check_exit_code=False) ] execute_fn.assert_has_calls(expected) + + def test_fdb_update_chg_ip_empty_lists(self): + fdb_entries = {'chg_ip': {'net_id': {'agent_ip': {}}}} + self.lb_rpc.fdb_update(None, fdb_entries)