Logical Service Nodes (LSN) are those that provide dhcp
and metadata services to networks when the NSX plugin is
used without the openstack dhcp and metadata proxy
agents. External networks do not work with Neutron's
dhcp and metadata services, therefore there is no need
to provision a LSN in this case.
Added UT to avoid regression.
Closes-bug: #
1316795
Change-Id: I3dab0c9cbecdd9296466c991d02d590d6bd5bd49
(cherry picked from commit
af020da544ac4cf21b293d23710545ee5cdcdfa4)
% {"action": action, "resource": network})
if action == 'create_network':
network_id = network['id']
+ if network.get(external_net.EXTERNAL):
+ LOG.info(_("Network %s is external: no LSN to create"), network_id)
+ return
plugin.lsn_manager.lsn_create(context, network_id)
elif action == 'delete_network':
# NOTE(armando-migliaccio): on delete_network, network
self.plugin.lsn_manager.lsn_create.assert_called_once_with(
mock.ANY, network['id'])
+ def test_handle_create_network_router_external(self):
+ network = {'id': 'foo_network_id', 'router:external': True}
+ nsx.handle_network_dhcp_access(
+ self.plugin, mock.ANY, network, 'create_network')
+ self.assertFalse(self.plugin.lsn_manager.lsn_create.call_count)
+
def test_handle_delete_network(self):
network_id = 'foo_network_id'
self.plugin.lsn_manager.lsn_delete_by_network.return_value = (