the state of the router and the Compute Nodes.
"""
- def dvr_update_router_addvm(self, context, port):
+ def dvr_handle_new_service_port(self, context, port):
+ """Handle new dvr service port creation.
+
+ When a new dvr service port is created, this function will
+ schedule a dvr router to new compute node if needed and notify
+ l3 agent on that node.
+ """
port_host = port[portbindings.HOST_ID]
l3_agent_on_host = (self.get_l3_agents(
context, filters={'host': [port_host]}) or [None])[0]
context, router_id, l3_agent_on_host['id']):
self.schedule_router(
context, router_id, candidates=[l3_agent_on_host])
- LOG.debug('DVR: dvr_update_router_addvm %s ', router_id)
+ LOG.debug('DVR: Handle new service_port on router: %s', router_id)
self.l3_rpc_notifier.routers_updated_on_host(
context, router_ids, port_host)
def check_ports_on_host_and_subnet(self, context, host,
port_id, subnet_id):
- """Check if there is any dvr serviceable port on the subnet_id."""
+ """Check if there are any dvr service ports on the subnet_id."""
filter_sub = {'fixed_ips': {'subnet_id': [subnet_id]}}
ports = self._core_plugin.get_ports(context, filters=filter_sub)
for port in ports:
l3plugin = manager.NeutronManager.get_service_plugins().get(
service_constants.L3_ROUTER_NAT)
context = kwargs['context']
- l3plugin.dvr_update_router_addvm(context, port)
+ l3plugin.dvr_handle_new_service_port(context, port)
l3plugin.dvr_vmarp_table_update(context, port, "add")
new_port[portbindings.HOST_ID]))
if (is_new_port_binding_changed and
n_utils.is_dvr_serviced(new_device_owner)):
- l3plugin.dvr_update_router_addvm(context, new_port)
+ l3plugin.dvr_handle_new_service_port(context, new_port)
l3plugin.dvr_vmarp_table_update(context, new_port, "add")
elif kwargs.get('mac_address_updated'):
l3plugin.dvr_vmarp_table_update(context, new_port, "add")
l3_dvrscheduler_db._notify_l3_agent_port_update(
'port', 'after_update', plugin, **kwargs)
self.assertFalse(l3plugin.dvr_vmarp_table_update.called)
- self.assertFalse(l3plugin.dvr_update_router_addvm.called)
+ self.assertFalse(
+ l3plugin.dvr_handle_new_service_port.called)
self.assertFalse(l3plugin.remove_router_from_l3_agent.called)
self.assertFalse(l3plugin.dvr_deletens_if_no_port.called)
'port', 'after_create', mock.ANY, **kwargs)
l3plugin.dvr_vmarp_table_update.assert_called_once_with(
self.adminContext, kwargs.get('port'), 'add')
- l3plugin.dvr_update_router_addvm.assert_called_once_with(
+ l3plugin.dvr_handle_new_service_port.assert_called_once_with(
self.adminContext, kwargs.get('port'))
def test__notify_l3_agent_new_port_no_action(self):
l3_dvrscheduler_db._notify_l3_agent_new_port(
'port', 'after_create', mock.ANY, **kwargs)
self.assertFalse(l3plugin.dvr_vmarp_table_update.called)
- self.assertFalse(l3plugin.dvr_update_router_addvm.called)
+ self.assertFalse(
+ l3plugin.dvr_handle_new_service_port.called)
def test__notify_l3_agent_update_port_no_action(self):
kwargs = {
'port', 'after_update', mock.ANY, **kwargs)
self.assertFalse(l3plugin.dvr_vmarp_table_update.called)
- self.assertFalse(l3plugin.dvr_update_router_addvm.called)
+ self.assertFalse(
+ l3plugin.dvr_handle_new_service_port.called)
self.assertFalse(l3plugin.remove_router_from_l3_agent.called)
self.assertFalse(l3plugin.dvr_deletens_if_no_port.called)
l3plugin.dvr_vmarp_table_update.assert_called_once_with(
self.adminContext, kwargs.get('port'), 'add')
- self.assertFalse(l3plugin.dvr_update_router_addvm.called)
+ self.assertFalse(l3plugin.dvr_handle_new_service_port.called)
def test__notify_l3_agent_update_port_with_port_binding_change(self):
kwargs = {
l3plugin.remove_router_from_l3_agent.assert_called_once_with(
self.adminContext, 'foo_agent', 'foo_id')
self.assertEqual(2, l3plugin.dvr_vmarp_table_update.call_count)
- l3plugin.dvr_update_router_addvm.assert_called_once_with(
+ l3plugin.dvr_handle_new_service_port.assert_called_once_with(
self.adminContext, kwargs.get('port'))
def test__notify_l3_agent_update_port_removing_routers(self):
l3plugin.dvr_vmarp_table_update.assert_called_once_with(
self.adminContext, mock.ANY, 'del')
- self.assertFalse(l3plugin.dvr_update_router_addvm.called)
+ self.assertFalse(
+ l3plugin.dvr_handle_new_service_port.called)
l3plugin.remove_router_from_l3_agent.assert_called_once_with(
self.adminContext, 'foo_agent', 'foo_id')
l3plugin.remove_router_from_l3_agent.assert_called_once_with(
self.adminContext, 'foo_agent', 'foo_id')
- def test_dvr_update_router_addvm(self):
+ def test_dvr_handle_new_service_port(self):
port = {
'id': 'port1',
'device_id': 'abcd',
mock.patch.object(
self.dut, 'get_l3_agents',
return_value=[agent_on_host]) as get_l3_agents:
- self.dut.dvr_update_router_addvm(self.adminContext, port)
+ self.dut.dvr_handle_new_service_port(
+ self.adminContext, port)
get_l3_agents.assert_called_once_with(
self.adminContext,