diff --git a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py index 3fabd0fe6a..1eac636e2c 100755 --- a/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py +++ b/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py @@ -792,10 +792,8 @@ class LinuxBridgeNeutronAgentRPC(sg_rpc.SecurityGroupAgentRpcMixin): 'agent_type': constants.AGENT_TYPE_LINUXBRIDGE, 'start_flag': True} - self.init_firewall() - # Perform rpc initialization only once all other configuration - # is complete self.setup_rpc(interface_mappings.values()) + self.init_firewall() def _report_state(self): try: diff --git a/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py b/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py index d47986e016..cf2243e8a6 100644 --- a/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py +++ b/neutron/plugins/openvswitch/agent/ovs_neutron_agent.py @@ -200,6 +200,7 @@ class OVSNeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin, self.int_br_device_count = 0 self.int_br = ovs_lib.OVSBridge(integ_br, self.root_helper) + self.setup_rpc() self.setup_integration_br() self.setup_physical_bridges(bridge_mappings) self.local_vlan_map = {} @@ -223,11 +224,12 @@ class OVSNeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin, # Collect additional bridges to monitor self.ancillary_brs = self.setup_ancillary_bridges(integ_br, tun_br) + # Security group agent supprot + self.sg_agent = OVSSecurityGroupAgent(self.context, + self.plugin_rpc, + root_helper) # Initialize iteration counter self.iter_num = 0 - # Perform rpc initialization only once all other configuration - # is complete - self.setup_rpc() def _check_ovs_version(self): if constants.TYPE_VXLAN in self.tunnel_types: @@ -251,13 +253,9 @@ class OVSNeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin, self.topic = topics.AGENT self.plugin_rpc = OVSPluginApi(topics.PLUGIN) self.state_rpc = agent_rpc.PluginReportStateAPI(topics.PLUGIN) + # RPC network init self.context = context.get_admin_context_without_session() - # prepare sg_agent for Security group support - # before we enable RPC handler - self.sg_agent = OVSSecurityGroupAgent(self.context, - self.plugin_rpc, - self.root_helper) # Handle updates from service self.dispatcher = self.create_rpc_dispatcher() # Define the listening consumers for the agent diff --git a/neutron/tests/unit/openvswitch/test_ovs_tunnel.py b/neutron/tests/unit/openvswitch/test_ovs_tunnel.py index b3b219ae56..76bf083661 100644 --- a/neutron/tests/unit/openvswitch/test_ovs_tunnel.py +++ b/neutron/tests/unit/openvswitch/test_ovs_tunnel.py @@ -100,6 +100,7 @@ class TunnelTest(base.BaseTestCase): self.mock_int_bridge = self.ovs_bridges[self.INT_BRIDGE] self.mock_int_bridge.get_local_port_mac.return_value = '000000000001' self.mock_int_bridge_expected = [ + mock.call.get_local_port_mac(), mock.call.delete_port('patch-tun'), mock.call.remove_all_flows(), mock.call.add_flow(priority=1, actions='normal'), @@ -216,8 +217,6 @@ class TunnelTest(base.BaseTestCase): self.execute = mock.patch('neutron.agent.linux.utils.execute').start() self.execute_expected = [mock.call(['/sbin/udevadm', 'settle', '--timeout=10'])] - self.mock_int_bridge_expected += [ - mock.call.get_local_port_mac()] def _verify_mock_call(self, mock_obj, expected): mock_obj.assert_has_calls(expected)